From 0ef3316819ae367712ba4021ae4da87fd987d88a Mon Sep 17 00:00:00 2001 From: Xoffroad <65235705+Xoffroad@users.noreply.github.com> Date: Tue, 14 Apr 2026 11:03:20 +0200 Subject: [PATCH 1/9] Qcells active battery control (#3244) * adding active battery control for qcells and new field for overload security * remove field for max_power and use max_charge_power and max_discharge_power instead * Apply suggestion from @seaspotter Co-authored-by: SeaSpotter * Apply suggestions from code review Co-authored-by: SeaSpotter * Update packages/modules/devices/qcells/qcells/bat.py Co-authored-by: SeaSpotter * Indentation corrected * remove whitespaces --------- Co-authored-by: SeaSpotter --- packages/modules/devices/qcells/qcells/bat.py | 70 ++++++++++++++++++- 1 file changed, 69 insertions(+), 1 deletion(-) diff --git a/packages/modules/devices/qcells/qcells/bat.py b/packages/modules/devices/qcells/qcells/bat.py index 3a68bd58cd..2697076f35 100644 --- a/packages/modules/devices/qcells/qcells/bat.py +++ b/packages/modules/devices/qcells/qcells/bat.py @@ -1,5 +1,6 @@ #!/usr/bin/env python3 -from typing import TypedDict, Any +import logging +from typing import TypedDict, Any, Optional from modules.common.abstract_device import AbstractBat from modules.common.component_state import BatState @@ -11,6 +12,25 @@ from modules.common.utils.peak_filter import PeakFilter from modules.common.component_type import ComponentType +log = logging.getLogger(__name__) + +# Solax/QCells Mode 8 Remote Control Registers (Holding Registers) +# Speichersteuerung via "Individual Setting - Duration Mode" +# Unterstuetzte Hardware: QCells Q.VOLT HYB-G3-3P (Solax Gen4), +# Solax Gen4/Gen5/Gen6 Hybrid und AC Wechselrichter. +REMOTE_CONTROL_MODE_REG = 0xA0 # U16: 0=Disabled, 8=Individual Duration +REMOTE_CONTROL_SET_TYPE_REG = 0xA1 # U16: 1=Set +REMOTE_CONTROL_PV_LIMIT_REG = 0xA2 # U32: PV Power Limit in Watt (keine Begrenzung = 30000) +REMOTE_CONTROL_PUSH_POWER_REG = 0xA4 # S32: Battery Push Power (+Entladung, -Ladung) +REMOTE_CONTROL_DURATION_REG = 0xA6 # U16: Dauer in Sekunden +REMOTE_CONTROL_TIMEOUT_REG = 0xA7 # U16: Timeout in Sekunden + +MODE_8_INDIVIDUAL_DURATION = 8 +SET_TYPE_SET = 1 +PV_LIMIT_NO_CURTAILMENT = 30000 +REMOTE_CONTROL_DURATION = 300 +REMOTE_CONTROL_TIMEOUT = 300 + class KwargsDict(TypedDict): modbus_id: int @@ -28,6 +48,7 @@ def initialize(self) -> None: self.store = get_bat_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) self.peak_filter = PeakFilter(ComponentType.BAT, self.component_config.id, self.fault_state) + self.last_mode: Optional[str] = 'Undefined' def update(self) -> None: power = self.client.read_input_registers(0x0016, ModbusDataType.INT_16, unit=self.__modbus_id) @@ -46,5 +67,52 @@ def update(self) -> None: ) self.store.set(bat_state) + def set_power_limit(self, power_limit: Optional[int]) -> None: + unit = self.__modbus_id + log.debug(f"QCells set_power_limit: power_limit={power_limit}, " + f"last_mode={self.last_mode}") + + if power_limit is None: + log.debug("Keine Batteriesteuerung, Selbstregelung durch Wechselrichter") + if self.last_mode is not None: + with self.client: + self.client.write_register( + REMOTE_CONTROL_MODE_REG, 0, data_type=ModbusDataType.UINT_16, unit=unit) + self.last_mode = None + else: + log.debug("Aktive Batteriesteuerung aktiv") + if self.last_mode != 'limited': + self.last_mode = 'limited' + + # Berechne power value: 0 = stop, != 0 = multipliziere mit -1 + power_value = 0 if power_limit == 0 else int(power_limit) * -1 + + self._write_mode8(power_value, unit=unit) + + def _write_mode8(self, power_value: int, unit: int) -> None: + """Schreibt die Mode 8 Remote Control Register (0xA0-0xA7).""" + with self.client: + self.client.write_register( + REMOTE_CONTROL_MODE_REG, MODE_8_INDIVIDUAL_DURATION, + data_type=ModbusDataType.UINT_16, unit=unit) + self.client.write_register( + REMOTE_CONTROL_SET_TYPE_REG, SET_TYPE_SET, + data_type=ModbusDataType.UINT_16, unit=unit) + self.client.write_register( + REMOTE_CONTROL_PV_LIMIT_REG, PV_LIMIT_NO_CURTAILMENT, + data_type=ModbusDataType.UINT_32, unit=unit) + self.client.write_register( + REMOTE_CONTROL_PUSH_POWER_REG, power_value, + data_type=ModbusDataType.INT_32, unit=unit) + self.client.write_register( + REMOTE_CONTROL_DURATION_REG, REMOTE_CONTROL_DURATION, + data_type=ModbusDataType.UINT_16, unit=unit) + self.client.write_register( + REMOTE_CONTROL_TIMEOUT_REG, REMOTE_CONTROL_TIMEOUT, + data_type=ModbusDataType.UINT_16, unit=unit) + + def power_limit_controllable(self) -> bool: + return True + component_descriptor = ComponentDescriptor(configuration_factory=QCellsBatSetup) From 25bfc969c1fc43b2a7dfe85585ddd0cdb1a383a7 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Tue, 14 Apr 2026 11:10:29 +0200 Subject: [PATCH 2/9] build UI --- ...ActiveBatControlConfiguration-DEBiR6H9.js} | 2 +- ...eLog--8Mbs6Fl.js => ChargeLog-Bgx1bSon.js} | 2 +- ...js => ChargePointInstallation-C3IshOKk.js} | 4 +- .../{Chart-CnTslwyz.js => Chart-q4SmWErO.js} | 2 +- ...vjjg.js => CloudConfiguration-Cu4M2u7m.js} | 2 +- ...BquAussF.js => DataManagement-FAi2cjUn.js} | 4 +- ...L2wl.js => DebugConfiguration-D4jVRy6l.js} | 2 +- ...sk.js => DisplayConfiguration-BEaqDSWf.js} | 4 +- .../{Error-CzwVgK-o.js => Error-BZ1TitTh.js} | 2 +- ...=> GeneralChargeConfiguration-tvikf7OT.js} | 4 +- ...jg.js => GeneralConfiguration-CMMYSFfh.js} | 4 +- .../assets/HardwareInstallation-BsQdwN_Y.js | 2 - .../assets/HardwareInstallation-caZ0sA9z.js | 2 + ...> IdentificationConfiguration-NvHT7cba.js} | 2 +- ...A1tpOL.js => InstallAssistant-D7lW6Pyr.js} | 4 +- ...E.js => InstallAssistantStep0-DfZRc1of.js} | 2 +- ...T.js => InstallAssistantStep1-CfAxuVn6.js} | 2 +- ....js => InstallAssistantStep10-Dr52sUyf.js} | 2 +- ...u.js => InstallAssistantStep2-BKDBrkQe.js} | 2 +- ....js => InstallAssistantStep20-Ci-UHX10.js} | 2 +- ...h.js => InstallAssistantStep3-B3u9R9nB.js} | 2 +- ...s.js => InstallAssistantStep4-fJZIPmZy.js} | 2 +- ...j.js => InstallAssistantStep5-BZyeEizn.js} | 2 +- ...R.js => InstallAssistantStep6-D0cpR0xQ.js} | 2 +- ...l.js => InstallAssistantStep7-ipX38vw1.js} | 2 +- ...O.js => InstallAssistantStep8-CMR8ijwj.js} | 2 +- ...D.js => InstallAssistantStep9-DAbMQ63I.js} | 2 +- ... InstallAssistantStepTemplate-DrvBpF-0.js} | 2 +- ...Tbf922R.js => IoConfiguration-vfX10CsO.js} | 4 +- ...-g7-88rjM.js => LegalSettings-DO80lenG.js} | 2 +- ...> LoadManagementConfiguration-DVcGfr2E.js} | 2 +- ...js => MqttBridgeConfiguration-hMk_UUpV.js} | 2 +- ...H-SthiO.js => OpenwbIoPattern-DAvfzRSb.js} | 2 +- ...u.js => OpenwbIoSinglePattern-C4hsIwwW.js} | 2 +- ...rijU.js => OpenwbSortableList-BORHS8nd.js} | 2 +- ...o.js => SecurityConfiguration-BMtEoSIk.js} | 2 +- ...{Status-Cq-cUxwl.js => Status-DYns2lPM.js} | 2 +- ...upport-DdqSn3pe.js => Support-LbG1Bt3q.js} | 2 +- ...=> SurplusChargeConfiguration-Mmn_2MTQ.js} | 2 +- ...kFh.js => SystemConfiguration-BYwqt7v1.js} | 2 +- ...-ClVKOJRu.js => SystemVersion-DQAfG1DR.js} | 2 +- ...e-D73y9Rra.js => TestingStore-D88H008a.js} | 2 +- ...jm.js => VehicleConfiguration-TZSwJptx.js} | 4 +- ...d-WdmGjWfz.js => backup_cloud-C1Vw5Mh4.js} | 2 +- ...d-DKNVh2TZ.js => backup_cloud-ChCyb_mM.js} | 2 +- ...d-CmIeHWl8.js => backup_cloud-Dr6eBKwO.js} | 2 +- ...d-BfD5oaKU.js => backup_cloud-mhyMQPm9.js} | 2 +- .../{bat-CsaXkLHe.js => bat--jkW4uM1.js} | 2 +- .../{bat-BN1YEpvE.js => bat-26IrZ19X.js} | 2 +- .../{bat-CmZvy5m2.js => bat-B0JSSnLj.js} | 2 +- .../{bat-bkNSH294.js => bat-B0T6AimZ.js} | 2 +- .../{bat-ClxDcwKU.js => bat-B4mETs5R.js} | 2 +- .../{bat-CptO1Moh.js => bat-BCGKgQxP.js} | 2 +- .../{bat-CgA4A-DW.js => bat-BERY8z9f.js} | 2 +- .../{bat-BIrS6-PU.js => bat-BVitR6eQ.js} | 2 +- .../{bat-9pc5iQFT.js => bat-BbH2OvqQ.js} | 2 +- .../{bat-B0kr7NLZ.js => bat-ByCHTSc9.js} | 2 +- .../{bat-7JGzH8pd.js => bat-CE8ZvzxW.js} | 2 +- .../{bat-2R_F_kER.js => bat-CQPOUTj3.js} | 2 +- .../{bat-ByOTOieU.js => bat-Cn1EQGgB.js} | 2 +- .../{bat-C6I23djd.js => bat-CnxJ24UF.js} | 2 +- .../{bat-CgGWSHMY.js => bat-DAoCRKqd.js} | 2 +- .../{bat-b37DCPfB.js => bat-DZNpCoR7.js} | 2 +- .../{bat-pjXdDuo7.js => bat-Dbv3vNU1.js} | 2 +- .../{bat-DKtRkxSv.js => bat-DgzuvGkr.js} | 2 +- web/settings/assets/bat-DlQIYeS5.js | 1 + .../{bat-BQ8zXmoc.js => bat-DrOtsCLh.js} | 2 +- .../{bat-BRarMF4I.js => bat-DtUSWouQ.js} | 2 +- .../{bat-DRknG4fw.js => bat-Dw1dp4yk.js} | 2 +- .../{bat-BmVnIsK3.js => bat-DwRFcEFG.js} | 2 +- .../{bat-C0s6O7-0.js => bat-EML-jKM6.js} | 2 +- .../{bat-CWRAY-SG.js => bat-XK6ruyYp.js} | 2 +- .../{bat-D4M2B5kd.js => bat-_7mtDj_h.js} | 2 +- .../{bat-Bq_karx4.js => bat-eF5oA3Oa.js} | 2 +- .../{bat-B8ywWV_I.js => bat-g-gN6DNl.js} | 2 +- .../{bat-D37RLtNO.js => bat-jEZsteDp.js} | 2 +- ...zH7Jpe.js => bat_smart_energy-CXDoZsZR.js} | 2 +- ...nt-D0jx9kkN.js => chargePoint-BsAFaJWO.js} | 2 +- ...nt-CJYrp8Wq.js => chargePoint-BxYclOKe.js} | 2 +- ...nt-B7gT4Y_a.js => chargePoint-CLglsVkD.js} | 2 +- ...nt-EU5FmrMq.js => chargePoint-Cu68pCda.js} | 2 +- ...nt-BvH8hDwH.js => chargePoint-DHvT86qo.js} | 2 +- ...nt-DAf52UOu.js => chargePoint-f_Y7TEQC.js} | 2 +- ...nt-Xc8TRgTt.js => chargePoint-mAO4xa7T.js} | 2 +- ...mands-BWnrMgVR.js => commands-CZXUCdhE.js} | 2 +- ...mands-Cm8ubOtl.js => commands-Dy4aruCr.js} | 2 +- ...44l.js => consumption_counter-Bdpmpdwz.js} | 2 +- ...ounter-D2hwzdNC.js => counter--_w9piHB.js} | 2 +- ...ounter-BIWzcwR0.js => counter-0uEca16j.js} | 2 +- ...ounter-7w48jp2T.js => counter-6OwhKOcX.js} | 2 +- ...ounter-BIrt9Gpi.js => counter-B4eDF7ya.js} | 2 +- ...ounter-BJR0si-b.js => counter-BCEBVxHj.js} | 2 +- ...ounter-DgvkQXQL.js => counter-BHm4u10N.js} | 2 +- ...ounter-DGVFh31G.js => counter-BLXfQQ6R.js} | 2 +- ...ounter-DBa42c5b.js => counter-BT5q5wk9.js} | 2 +- ...ounter-BtWEtGR4.js => counter-BlNNf5pm.js} | 2 +- ...ounter-qhWGTyvQ.js => counter-CC6Wx6xY.js} | 2 +- ...ounter-CLQGKxf9.js => counter-CEU7NcUL.js} | 2 +- ...ounter-wZOjez1P.js => counter-CPpOsUI8.js} | 2 +- ...ounter-BaEuP6KK.js => counter-CRWkZPyn.js} | 2 +- ...ounter-CgTgRAdg.js => counter-CTI3HQV5.js} | 2 +- ...ounter-DjAjHmkw.js => counter-CXEiOT31.js} | 2 +- ...ounter-CGyjt9cy.js => counter-CZ_dQPx3.js} | 2 +- ...ounter-CTm4GPYN.js => counter-CecO70YK.js} | 2 +- ...ounter-DmfgTjlt.js => counter-CelzGZK-.js} | 2 +- ...ounter-DoHxJYIa.js => counter-Ckg8eTmY.js} | 2 +- ...ounter-vfGAGxPT.js => counter-CrJU9pQp.js} | 2 +- ...ounter-5pxQAacz.js => counter-CsLEIGLq.js} | 2 +- ...ounter-tXy6FaDb.js => counter-CuyIQkwJ.js} | 2 +- ...ounter-Djlwa9Bh.js => counter-CyFXwCq_.js} | 2 +- ...ounter-BK2vVSqM.js => counter-CyagC1co.js} | 2 +- ...ounter-Uah7XeY0.js => counter-D0K3UCGT.js} | 2 +- ...ounter-Vg4B6aCH.js => counter-D7_oD-KG.js} | 2 +- ...ounter-3vED9-83.js => counter-DB0QI8WO.js} | 2 +- ...ounter-BWJaZ8Em.js => counter-DEQJUFuW.js} | 2 +- ...ounter-DQqlicig.js => counter-DNHoKahk.js} | 2 +- ...ounter-CvGKgUX3.js => counter-DW8E1juF.js} | 2 +- ...ounter-BjmUAD29.js => counter-DaNvZOHB.js} | 2 +- ...ounter-DP3HnvjD.js => counter-DmRpgOsE.js} | 2 +- ...ounter-BAPZU0r9.js => counter-DtJWRRZK.js} | 2 +- ...ounter-BCluWY83.js => counter-DwjPMM-K.js} | 2 +- ...ounter-DMohbFiU.js => counter-DyQR5TFM.js} | 2 +- ...ounter-DnDfTViH.js => counter-Jn3S4DeN.js} | 2 +- ...ounter-bKGHqli_.js => counter-QsKjzQAu.js} | 2 +- ...ounter-By6rXji5.js => counter-hPhZIn1G.js} | 2 +- ...NE7.js => counter_consumption-D5PXSIy2.js} | 2 +- ...H_Y8.js => counter_maxstorage-Dfob-vfT.js} | 2 +- ..._sm-Dr8SNBvC.js => counter_sm-C8EnC_ax.js} | 2 +- ...{device-C9SjhtIi.js => device-0LygQjSp.js} | 2 +- ...{device-B7cffUIf.js => device-0TBG9Kdm.js} | 2 +- ...{device-C6CeoSzW.js => device-2ydQEeHL.js} | 2 +- ...{device-W6_kwen7.js => device-3d8A9kvB.js} | 2 +- ...{device-BKr8ZHKi.js => device-64nbgpYC.js} | 2 +- ...{device-BPkP7kTF.js => device-8genQHND.js} | 2 +- ...{device-B4KoucpX.js => device-B-Mmd5Ze.js} | 2 +- ...{device-B6cd6sbt.js => device-B0uzBvUm.js} | 2 +- ...{device-CSEKL3kY.js => device-B1gW7XBg.js} | 2 +- ...{device-UTh7kxrR.js => device-B3RxzTPC.js} | 2 +- ...{device-B_aGjQ2l.js => device-B4WlrUah.js} | 2 +- ...{device-D9TXMIH0.js => device-B6NzT0C2.js} | 2 +- ...{device-CuyMfOZ0.js => device-B6xK4kG_.js} | 2 +- ...{device-jMvVzRzh.js => device-B7DCatpp.js} | 2 +- ...{device-Db5wbl5h.js => device-B8HOK5np.js} | 2 +- ...{device-BFYx_CN0.js => device-B9Y-E4ZO.js} | 2 +- ...{device-CzgpdtMj.js => device-BJt2AdWR.js} | 2 +- ...{device-DsgmCF5n.js => device-BPTQIU5L.js} | 2 +- ...{device-B4IBKY6X.js => device-BPisqhc7.js} | 2 +- ...{device-C3EDMzY3.js => device-BSlk0jml.js} | 2 +- ...{device-DYhfIW3A.js => device-BSo6UKEK.js} | 2 +- ...{device-8WbkORGd.js => device-BYcmVGRd.js} | 2 +- ...{device-oqbvqB5h.js => device-BdmFfYpU.js} | 2 +- ...{device-KmMBXMFM.js => device-BiPl0Xry.js} | 2 +- ...{device-D-pRIYiM.js => device-BjgcGLL9.js} | 2 +- ...{device-6Kda_LQU.js => device-BkT_aSiu.js} | 2 +- ...{device-z2yHS3IO.js => device-BnrlrcLl.js} | 2 +- ...{device-CdKxLpnp.js => device-BpIfpmVY.js} | 2 +- ...{device-DhhSP7do.js => device-BsGQfX6W.js} | 2 +- ...{device-CAxd5L90.js => device-ByIPJ75u.js} | 2 +- ...{device-BXojBGt2.js => device-Bz8u2WPE.js} | 2 +- ...{device-CkEwxrYs.js => device-C-avdMqj.js} | 2 +- ...{device-BII9Q7B9.js => device-C3SynQKw.js} | 2 +- ...{device-C0roOLlE.js => device-C4M0XOfA.js} | 2 +- ...{device-BLW9LjzN.js => device-C8-xjyT6.js} | 2 +- ...{device-DqUpYhaq.js => device-C9aR_ErT.js} | 2 +- ...{device-Hp2tEOlj.js => device-CHaeFEyt.js} | 2 +- ...{device-DVo4zylj.js => device-CJ3OjUU2.js} | 2 +- ...{device-hdWFSlG-.js => device-CJ5CONRY.js} | 2 +- ...{device-BIDbmP4X.js => device-CJ9ee9IO.js} | 2 +- ...{device-CI2OAM8n.js => device-CJt9s3lV.js} | 2 +- ...{device-CU-cwVGC.js => device-CKqZ-eL3.js} | 2 +- ...{device-GRny4mHm.js => device-CLljSgUf.js} | 2 +- ...{device-DdsXAHVY.js => device-CMS4ZH9M.js} | 2 +- ...{device-Bb9MADhj.js => device-CMt4xRX4.js} | 2 +- ...{device-BfCWTNEM.js => device-CcmT-XYr.js} | 2 +- ...{device-DYhwZZkT.js => device-Ce-zEVZN.js} | 2 +- ...{device-Sf2PbazK.js => device-Cg5a2DJ_.js} | 2 +- ...{device-QT8T_qSL.js => device-CgG28OWw.js} | 2 +- ...{device-1R4SV5Is.js => device-CiFemq5S.js} | 2 +- ...{device-DmGIHkAD.js => device-CiV4hgD_.js} | 2 +- ...{device-C-iAJJ-o.js => device-CmVz3KZr.js} | 2 +- ...{device-DfZ_0fKf.js => device-CqqnDv7m.js} | 2 +- ...{device-Z-QAbNy2.js => device-Cu0yn-TS.js} | 2 +- ...{device-B3ABOYFM.js => device-Cv-hQ-5K.js} | 2 +- ...{device-DUDQimZY.js => device-Cv_jSwrm.js} | 2 +- ...{device-Y3OiwDhZ.js => device-D4Gw0lZJ.js} | 2 +- ...{device-BZ_nIgl8.js => device-DE8Sn0RG.js} | 2 +- ...{device-BqYI4kY3.js => device-DHMJ0YEs.js} | 2 +- ...{device-BtiaNiEm.js => device-DJivvwYM.js} | 2 +- ...{device-B_9GoR_C.js => device-DSXRbJXc.js} | 2 +- ...{device-B6CeiU8G.js => device-DSzaLUMX.js} | 2 +- ...{device-CaA6R4P6.js => device-DXOtDi9V.js} | 2 +- ...{device-D7oGPfwz.js => device-DYUFbFFV.js} | 2 +- ...{device-B-FM1FI2.js => device-DaUzDfJC.js} | 2 +- ...{device-7nie8LYK.js => device-DajujJNO.js} | 2 +- ...{device-DH3Gi3n1.js => device-DdYCjXX-.js} | 2 +- ...{device-R9tnmWUQ.js => device-DdrUDEK_.js} | 2 +- ...{device-Bdq6veVj.js => device-DfKVgx7A.js} | 2 +- ...{device-BW7XDo1J.js => device-DhOZN3TO.js} | 2 +- ...{device-CjHCk_76.js => device-Djcanbbk.js} | 2 +- ...{device-eQnrxHxL.js => device-DoYhIPYo.js} | 2 +- ...{device-r6j0r7A3.js => device-Dqxkpm4s.js} | 2 +- ...{device-zzcTsTtg.js => device-DsVDr5dU.js} | 2 +- ...{device-_jQ1Q-kw.js => device-DxhmA9hW.js} | 2 +- ...{device-Bu9XgqYP.js => device-DzDhZ3zK.js} | 2 +- ...{device-BQvmc-9M.js => device-GL-gGFSm.js} | 2 +- ...{device-DQEBMJF9.js => device-MHTiTYZF.js} | 2 +- ...{device-By6KThCl.js => device-N5GdJSbQ.js} | 2 +- ...{device-F6XhS-t5.js => device-Pg4epvz-.js} | 2 +- ...{device-DKuTl1vv.js => device-TuHf60ob.js} | 2 +- ...{device-FdkK1iVn.js => device-Xoa0qNQw.js} | 2 +- ...{device-DbK7jIMj.js => device-dqP8cZ7r.js} | 2 +- ...{device-BBC5ID1s.js => device-rzxKRkPl.js} | 2 +- ...{device-Nalxzfta.js => device-vwuASijr.js} | 2 +- ...e-CcEyZTR4.js => displayTheme-D2mZh2_2.js} | 2 +- ...e-C1tK2DiA.js => displayTheme-DSCxcdhW.js} | 2 +- ...MSOOf.js => external_inverter-yhBlc68v.js} | 2 +- ...btEphLP.js => flexible_tariff-B7GMl0Rk.js} | 2 +- ...Wf9GT1d.js => flexible_tariff-BXSuQZLV.js} | 2 +- ...TpYrhmT.js => flexible_tariff-BmnVQBW5.js} | 2 +- ...qMzly43.js => flexible_tariff-CTd9X6xC.js} | 2 +- ...NNa5OV-.js => flexible_tariff-CYFz2wtm.js} | 2 +- ...1LP0FYy.js => flexible_tariff-D2I_bbD1.js} | 2 +- ...AHUZdp_.js => flexible_tariff-DBcMB1Nb.js} | 2 +- ...miVaPpv.js => flexible_tariff-DTKfP5xv.js} | 2 +- ...Q3pyAsQ.js => flexible_tariff-Dd4agfmV.js} | 2 +- ...72Cumcb.js => flexible_tariff-DguwaAtd.js} | 2 +- ...lg38UZN.js => flexible_tariff-w7-xLoOe.js} | 2 +- ...d_fee-BxlzNkwq.js => grid_fee-BoQDv0Kx.js} | 2 +- .../{index-BBXHIMfY.js => index-CyH1Au4V.js} | 4 +- ...erter-Bkl9DTPR.js => inverter-5EBX0iZo.js} | 2 +- ...erter-C4YILAPZ.js => inverter-7soLwDob.js} | 2 +- ...erter-DbMRw6Cx.js => inverter-9sFbkMow.js} | 2 +- web/settings/assets/inverter-B88OrxMD.js | 1 + web/settings/assets/inverter-BB887ZYt.js | 1 + ...erter-Ct8TMqML.js => inverter-BI2ZqzaW.js} | 2 +- ...erter-COE-nKvP.js => inverter-BLcG2ney.js} | 2 +- ...erter-n4m3hQuV.js => inverter-BaOo9WeK.js} | 2 +- ...erter-CLRVWTl7.js => inverter-Bk86qHNm.js} | 2 +- ...erter-B_FABlgc.js => inverter-BpKMExBm.js} | 2 +- ...erter-DWNFmb91.js => inverter-BvYIme5g.js} | 2 +- ...erter-ByRR74u7.js => inverter-Bwj64g5e.js} | 2 +- ...erter-Crbr6-4Z.js => inverter-CB0x6P9A.js} | 2 +- ...erter-GRT_uJiI.js => inverter-CMmTSLWH.js} | 2 +- ...erter-DApWASl8.js => inverter-CN_ruNlm.js} | 2 +- ...erter-NWk4UIGH.js => inverter-CZxBgkMq.js} | 2 +- ...erter-DIp3-cnM.js => inverter-CgUUQeXE.js} | 2 +- ...erter-CnZlUSck.js => inverter-CkuUw0Yu.js} | 2 +- ...erter-DVr22Egy.js => inverter-CopsarJJ.js} | 2 +- ...erter-0iQRw2xt.js => inverter-D7eVv_21.js} | 2 +- ...erter-CxoMP6Jb.js => inverter-DL8Ty732.js} | 2 +- ...erter-CUJI2Fyz.js => inverter-DLWFTpaZ.js} | 2 +- ...erter-BBWU2rw5.js => inverter-Da945LLX.js} | 2 +- ...erter-CzXwYkHv.js => inverter-Dd8Zt71F.js} | 2 +- web/settings/assets/inverter-DehorSAv.js | 1 - ...erter-Da-G6Y0c.js => inverter-DhjTWscc.js} | 2 +- ...erter-DV4a4maw.js => inverter-Dl-vr0bC.js} | 2 +- ...erter-BFDThOJR.js => inverter-DrtnNh9-.js} | 2 +- web/settings/assets/inverter-Hxi7PnqE.js | 1 - ...erter-B-0L9XYq.js => inverter-YdmHIKyl.js} | 2 +- ...erter-DsD3wquS.js => inverter-YmiFDBbL.js} | 2 +- ...erter-CC2Mvp5q.js => inverter-f4xqdlX6.js} | 2 +- ...erter-BTshuvks.js => inverter-lozsDiob.js} | 2 +- ...erter-DiRXgTFp.js => inverter-m3LVq5tF.js} | 2 +- ...erter-Dsj7QrSL.js => inverter-yrrMEiBw.js} | 2 +- ...erter-O85bqWQC.js => inverter-zzkwTxc_.js} | 2 +- ...eYk.js => inverter_maxstorage-Da9O-iNa.js} | 2 +- ... => inverter_production_meter-BhLy0jS8.js} | 2 +- ...Cim3.js => inverter_secondary-Cke98mZd.js} | 2 +- ...tion-CP47oj7W.js => io_action-BlGNVQOy.js} | 2 +- ...tion-BcRa5w4h.js => io_action-CNib3IIZ.js} | 2 +- ...tion-CCDa41WP.js => io_action-CcAuqDqD.js} | 2 +- ...tion-BIaRo3Nw.js => io_action-XIjORj2n.js} | 2 +- ...vice-Bu2TTklo.js => io_device-1ouhD8vS.js} | 2 +- ...vice-CMcMfpQL.js => io_device-B-Ykhm08.js} | 2 +- ...vice-CSfBx0gv.js => io_device-BFTcDSy5.js} | 2 +- ...ing-DmGi8iaj.js => monitoring-BMLL0nfh.js} | 2 +- ...ehicle-u7nEjbHE.js => vehicle-7u_dqMEp.js} | 2 +- ...ehicle-CQZ24B5Z.js => vehicle-9Vh-TxGa.js} | 2 +- ...ehicle-BIXm9LJK.js => vehicle-B0tJYS46.js} | 2 +- ...ehicle-fQvTZi_E.js => vehicle-BJ8Vq-80.js} | 2 +- ...ehicle-mVzWIbRB.js => vehicle-BgWejNBx.js} | 2 +- ...ehicle-BfwB5CmK.js => vehicle-BjW8elSd.js} | 2 +- ...ehicle-DNvSQzxJ.js => vehicle-Bo3E1wuI.js} | 2 +- ...ehicle-Cac3-Kjm.js => vehicle-Bwnke49F.js} | 2 +- ...ehicle-DOhfCjDp.js => vehicle-BxcO7fDO.js} | 2 +- ...ehicle-CPj_pr_x.js => vehicle-C4xon1Al.js} | 2 +- ...ehicle-C8HZVIPP.js => vehicle-CPjkbES5.js} | 2 +- ...ehicle-BPW3tNQi.js => vehicle-CYTzHFS6.js} | 2 +- ...ehicle-B75xZfr2.js => vehicle-CeWm61bY.js} | 2 +- ...ehicle-C8g_PIkP.js => vehicle-CiPbB9w2.js} | 2 +- ...ehicle-CzbURT4N.js => vehicle-CoVie7os.js} | 2 +- ...ehicle-4ooF7u3O.js => vehicle-Qsp1JuH6.js} | 2 +- ...ehicle-Byenkt0o.js => vehicle-TwRWpbVJ.js} | 2 +- ...ehicle-DqI_P0GO.js => vehicle-bxge8VZs.js} | 2 +- ...ehicle-C4ht6hjr.js => vehicle-mz1O0JRs.js} | 2 +- ...ehicle-SqSIcJkM.js => vehicle-uzGGKIpS.js} | 2 +- ...ehicle-CIkD544B.js => vehicle-wE-5x93X.js} | 2 +- ...{vendor-JxinjXxC.js => vendor-Bo8v-nQD.js} | 96 +++++++++---------- web/settings/assets/vendor-axios-CL9DOa3h.js | 9 -- web/settings/assets/vendor-axios-DdFvNBv9.js | 6 ++ ...TEOGLM.js => vendor-bootstrap-BQqw8g0w.js} | 2 +- ...CfpTrYqu.js => vendor-chartjs-0RUe1kvq.js} | 2 +- ...IYBi.js => vendor-fortawesome-CBc-2W7w.js} | 2 +- ...Theme-BOkimBx9.js => webTheme-CUZsmlbL.js} | 2 +- ...Theme-dYPxGIXZ.js => webTheme-D6gb9Bne.js} | 2 +- ...Theme-Zd9UenAJ.js => webTheme-DQBJkymH.js} | 2 +- web/settings/index.html | 10 +- 307 files changed, 369 insertions(+), 371 deletions(-) rename web/settings/assets/{ActiveBatControlConfiguration-CcFt4tiZ.js => ActiveBatControlConfiguration-DEBiR6H9.js} (98%) rename web/settings/assets/{ChargeLog--8Mbs6Fl.js => ChargeLog-Bgx1bSon.js} (98%) rename web/settings/assets/{ChargePointInstallation-CN2wQ7QE.js => ChargePointInstallation-C3IshOKk.js} (95%) rename web/settings/assets/{Chart-CnTslwyz.js => Chart-q4SmWErO.js} (98%) rename web/settings/assets/{CloudConfiguration-CQRDvjjg.js => CloudConfiguration-Cu4M2u7m.js} (96%) rename web/settings/assets/{DataManagement-BquAussF.js => DataManagement-FAi2cjUn.js} (97%) rename web/settings/assets/{DebugConfiguration-GU58L2wl.js => DebugConfiguration-D4jVRy6l.js} (96%) rename web/settings/assets/{DisplayConfiguration-CBLfIXsk.js => DisplayConfiguration-BEaqDSWf.js} (94%) rename web/settings/assets/{Error-CzwVgK-o.js => Error-BZ1TitTh.js} (88%) rename web/settings/assets/{GeneralChargeConfiguration-JQcEANi8.js => GeneralChargeConfiguration-tvikf7OT.js} (91%) rename web/settings/assets/{GeneralConfiguration-D9XW5ejg.js => GeneralConfiguration-CMMYSFfh.js} (96%) delete mode 100644 web/settings/assets/HardwareInstallation-BsQdwN_Y.js create mode 100644 web/settings/assets/HardwareInstallation-caZ0sA9z.js rename web/settings/assets/{IdentificationConfiguration-BapSq8DD.js => IdentificationConfiguration-NvHT7cba.js} (96%) rename web/settings/assets/{InstallAssistant-AdA1tpOL.js => InstallAssistant-D7lW6Pyr.js} (54%) rename web/settings/assets/{InstallAssistantStep0-BEHCt2pE.js => InstallAssistantStep0-DfZRc1of.js} (87%) rename web/settings/assets/{InstallAssistantStep1-DD1OK8kT.js => InstallAssistantStep1-CfAxuVn6.js} (78%) rename web/settings/assets/{InstallAssistantStep10-C3aQ9rwj.js => InstallAssistantStep10-Dr52sUyf.js} (78%) rename web/settings/assets/{InstallAssistantStep2-DdXrpkfu.js => InstallAssistantStep2-BKDBrkQe.js} (79%) rename web/settings/assets/{InstallAssistantStep20-Dd2k6G1i.js => InstallAssistantStep20-Ci-UHX10.js} (80%) rename web/settings/assets/{InstallAssistantStep3-heZ7Rvkh.js => InstallAssistantStep3-B3u9R9nB.js} (81%) rename web/settings/assets/{InstallAssistantStep4-DOUSLsts.js => InstallAssistantStep4-fJZIPmZy.js} (82%) rename web/settings/assets/{InstallAssistantStep5-CW0634-j.js => InstallAssistantStep5-BZyeEizn.js} (84%) rename web/settings/assets/{InstallAssistantStep6-CSFMizsR.js => InstallAssistantStep6-D0cpR0xQ.js} (86%) rename web/settings/assets/{InstallAssistantStep7-CzfQtKIl.js => InstallAssistantStep7-ipX38vw1.js} (85%) rename web/settings/assets/{InstallAssistantStep8-DFYWVFiO.js => InstallAssistantStep8-CMR8ijwj.js} (85%) rename web/settings/assets/{InstallAssistantStep9-DP8jJHvD.js => InstallAssistantStep9-DAbMQ63I.js} (81%) rename web/settings/assets/{InstallAssistantStepTemplate-BTH3zfoW.js => InstallAssistantStepTemplate-DrvBpF-0.js} (87%) rename web/settings/assets/{IoConfiguration-cTbf922R.js => IoConfiguration-vfX10CsO.js} (92%) rename web/settings/assets/{LegalSettings-g7-88rjM.js => LegalSettings-DO80lenG.js} (92%) rename web/settings/assets/{LoadManagementConfiguration-BH64OBxz.js => LoadManagementConfiguration-DVcGfr2E.js} (97%) rename web/settings/assets/{MqttBridgeConfiguration-DM8X-gxb.js => MqttBridgeConfiguration-hMk_UUpV.js} (97%) rename web/settings/assets/{OpenwbIoPattern-DH-SthiO.js => OpenwbIoPattern-DAvfzRSb.js} (98%) rename web/settings/assets/{OpenwbIoSinglePattern-B9zMWKVu.js => OpenwbIoSinglePattern-C4hsIwwW.js} (97%) rename web/settings/assets/{OpenwbSortableList-BnacrijU.js => OpenwbSortableList-BORHS8nd.js} (93%) rename web/settings/assets/{SecurityConfiguration-7o6Gg3lo.js => SecurityConfiguration-BMtEoSIk.js} (99%) rename web/settings/assets/{Status-Cq-cUxwl.js => Status-DYns2lPM.js} (99%) rename web/settings/assets/{Support-DdqSn3pe.js => Support-LbG1Bt3q.js} (96%) rename web/settings/assets/{SurplusChargeConfiguration-C7J2uSph.js => SurplusChargeConfiguration-Mmn_2MTQ.js} (97%) rename web/settings/assets/{SystemConfiguration-BZnhVkFh.js => SystemConfiguration-BYwqt7v1.js} (98%) rename web/settings/assets/{SystemVersion-ClVKOJRu.js => SystemVersion-DQAfG1DR.js} (81%) rename web/settings/assets/{TestingStore-D73y9Rra.js => TestingStore-D88H008a.js} (96%) rename web/settings/assets/{VehicleConfiguration--T3YyIjm.js => VehicleConfiguration-TZSwJptx.js} (96%) rename web/settings/assets/{backup_cloud-WdmGjWfz.js => backup_cloud-C1Vw5Mh4.js} (84%) rename web/settings/assets/{backup_cloud-DKNVh2TZ.js => backup_cloud-ChCyb_mM.js} (91%) rename web/settings/assets/{backup_cloud-CmIeHWl8.js => backup_cloud-Dr6eBKwO.js} (87%) rename web/settings/assets/{backup_cloud-BfD5oaKU.js => backup_cloud-mhyMQPm9.js} (74%) rename web/settings/assets/{bat-CsaXkLHe.js => bat--jkW4uM1.js} (68%) rename web/settings/assets/{bat-BN1YEpvE.js => bat-26IrZ19X.js} (91%) rename web/settings/assets/{bat-CmZvy5m2.js => bat-B0JSSnLj.js} (69%) rename web/settings/assets/{bat-bkNSH294.js => bat-B0T6AimZ.js} (72%) rename web/settings/assets/{bat-ClxDcwKU.js => bat-B4mETs5R.js} (65%) rename web/settings/assets/{bat-CptO1Moh.js => bat-BCGKgQxP.js} (76%) rename web/settings/assets/{bat-CgA4A-DW.js => bat-BERY8z9f.js} (65%) rename web/settings/assets/{bat-BIrS6-PU.js => bat-BVitR6eQ.js} (72%) rename web/settings/assets/{bat-9pc5iQFT.js => bat-BbH2OvqQ.js} (68%) rename web/settings/assets/{bat-B0kr7NLZ.js => bat-ByCHTSc9.js} (85%) rename web/settings/assets/{bat-7JGzH8pd.js => bat-CE8ZvzxW.js} (78%) rename web/settings/assets/{bat-2R_F_kER.js => bat-CQPOUTj3.js} (77%) rename web/settings/assets/{bat-ByOTOieU.js => bat-Cn1EQGgB.js} (69%) rename web/settings/assets/{bat-C6I23djd.js => bat-CnxJ24UF.js} (67%) rename web/settings/assets/{bat-CgGWSHMY.js => bat-DAoCRKqd.js} (68%) rename web/settings/assets/{bat-b37DCPfB.js => bat-DZNpCoR7.js} (73%) rename web/settings/assets/{bat-pjXdDuo7.js => bat-Dbv3vNU1.js} (68%) rename web/settings/assets/{bat-DKtRkxSv.js => bat-DgzuvGkr.js} (94%) create mode 100644 web/settings/assets/bat-DlQIYeS5.js rename web/settings/assets/{bat-BQ8zXmoc.js => bat-DrOtsCLh.js} (78%) rename web/settings/assets/{bat-BRarMF4I.js => bat-DtUSWouQ.js} (73%) rename web/settings/assets/{bat-DRknG4fw.js => bat-Dw1dp4yk.js} (68%) rename web/settings/assets/{bat-BmVnIsK3.js => bat-DwRFcEFG.js} (68%) rename web/settings/assets/{bat-C0s6O7-0.js => bat-EML-jKM6.js} (69%) rename web/settings/assets/{bat-CWRAY-SG.js => bat-XK6ruyYp.js} (95%) rename web/settings/assets/{bat-D4M2B5kd.js => bat-_7mtDj_h.js} (77%) rename web/settings/assets/{bat-Bq_karx4.js => bat-eF5oA3Oa.js} (68%) rename web/settings/assets/{bat-B8ywWV_I.js => bat-g-gN6DNl.js} (68%) rename web/settings/assets/{bat-D37RLtNO.js => bat-jEZsteDp.js} (69%) rename web/settings/assets/{bat_smart_energy-CPzH7Jpe.js => bat_smart_energy-CXDoZsZR.js} (70%) rename web/settings/assets/{chargePoint-D0jx9kkN.js => chargePoint-BsAFaJWO.js} (77%) rename web/settings/assets/{chargePoint-CJYrp8Wq.js => chargePoint-BxYclOKe.js} (96%) rename web/settings/assets/{chargePoint-B7gT4Y_a.js => chargePoint-CLglsVkD.js} (58%) rename web/settings/assets/{chargePoint-EU5FmrMq.js => chargePoint-Cu68pCda.js} (83%) rename web/settings/assets/{chargePoint-BvH8hDwH.js => chargePoint-DHvT86qo.js} (71%) rename web/settings/assets/{chargePoint-DAf52UOu.js => chargePoint-f_Y7TEQC.js} (77%) rename web/settings/assets/{chargePoint-Xc8TRgTt.js => chargePoint-mAO4xa7T.js} (77%) rename web/settings/assets/{commands-BWnrMgVR.js => commands-CZXUCdhE.js} (86%) rename web/settings/assets/{commands-Cm8ubOtl.js => commands-Dy4aruCr.js} (88%) rename web/settings/assets/{consumption_counter-BpJxB44l.js => consumption_counter-Bdpmpdwz.js} (82%) rename web/settings/assets/{counter-D2hwzdNC.js => counter--_w9piHB.js} (69%) rename web/settings/assets/{counter-BIWzcwR0.js => counter-0uEca16j.js} (78%) rename web/settings/assets/{counter-7w48jp2T.js => counter-6OwhKOcX.js} (75%) rename web/settings/assets/{counter-BIrt9Gpi.js => counter-B4eDF7ya.js} (76%) rename web/settings/assets/{counter-BJR0si-b.js => counter-BCEBVxHj.js} (72%) rename web/settings/assets/{counter-DgvkQXQL.js => counter-BHm4u10N.js} (75%) rename web/settings/assets/{counter-DGVFh31G.js => counter-BLXfQQ6R.js} (67%) rename web/settings/assets/{counter-DBa42c5b.js => counter-BT5q5wk9.js} (94%) rename web/settings/assets/{counter-BtWEtGR4.js => counter-BlNNf5pm.js} (95%) rename web/settings/assets/{counter-qhWGTyvQ.js => counter-CC6Wx6xY.js} (69%) rename web/settings/assets/{counter-CLQGKxf9.js => counter-CEU7NcUL.js} (68%) rename web/settings/assets/{counter-wZOjez1P.js => counter-CPpOsUI8.js} (81%) rename web/settings/assets/{counter-BaEuP6KK.js => counter-CRWkZPyn.js} (68%) rename web/settings/assets/{counter-CgTgRAdg.js => counter-CTI3HQV5.js} (80%) rename web/settings/assets/{counter-DjAjHmkw.js => counter-CXEiOT31.js} (70%) rename web/settings/assets/{counter-CGyjt9cy.js => counter-CZ_dQPx3.js} (63%) rename web/settings/assets/{counter-CTm4GPYN.js => counter-CecO70YK.js} (68%) rename web/settings/assets/{counter-DmfgTjlt.js => counter-CelzGZK-.js} (73%) rename web/settings/assets/{counter-DoHxJYIa.js => counter-Ckg8eTmY.js} (71%) rename web/settings/assets/{counter-vfGAGxPT.js => counter-CrJU9pQp.js} (78%) rename web/settings/assets/{counter-5pxQAacz.js => counter-CsLEIGLq.js} (84%) rename web/settings/assets/{counter-tXy6FaDb.js => counter-CuyIQkwJ.js} (61%) rename web/settings/assets/{counter-Djlwa9Bh.js => counter-CyFXwCq_.js} (75%) rename web/settings/assets/{counter-BK2vVSqM.js => counter-CyagC1co.js} (58%) rename web/settings/assets/{counter-Uah7XeY0.js => counter-D0K3UCGT.js} (63%) rename web/settings/assets/{counter-Vg4B6aCH.js => counter-D7_oD-KG.js} (67%) rename web/settings/assets/{counter-3vED9-83.js => counter-DB0QI8WO.js} (68%) rename web/settings/assets/{counter-BWJaZ8Em.js => counter-DEQJUFuW.js} (64%) rename web/settings/assets/{counter-DQqlicig.js => counter-DNHoKahk.js} (81%) rename web/settings/assets/{counter-CvGKgUX3.js => counter-DW8E1juF.js} (70%) rename web/settings/assets/{counter-BjmUAD29.js => counter-DaNvZOHB.js} (95%) rename web/settings/assets/{counter-DP3HnvjD.js => counter-DmRpgOsE.js} (81%) rename web/settings/assets/{counter-BAPZU0r9.js => counter-DtJWRRZK.js} (70%) rename web/settings/assets/{counter-BCluWY83.js => counter-DwjPMM-K.js} (68%) rename web/settings/assets/{counter-DMohbFiU.js => counter-DyQR5TFM.js} (71%) rename web/settings/assets/{counter-DnDfTViH.js => counter-Jn3S4DeN.js} (71%) rename web/settings/assets/{counter-bKGHqli_.js => counter-QsKjzQAu.js} (60%) rename web/settings/assets/{counter-By6rXji5.js => counter-hPhZIn1G.js} (63%) rename web/settings/assets/{counter_consumption-BITJZNE7.js => counter_consumption-D5PXSIy2.js} (75%) rename web/settings/assets/{counter_maxstorage-BtpuH_Y8.js => counter_maxstorage-Dfob-vfT.js} (76%) rename web/settings/assets/{counter_sm-Dr8SNBvC.js => counter_sm-C8EnC_ax.js} (87%) rename web/settings/assets/{device-C9SjhtIi.js => device-0LygQjSp.js} (78%) rename web/settings/assets/{device-B7cffUIf.js => device-0TBG9Kdm.js} (68%) rename web/settings/assets/{device-C6CeoSzW.js => device-2ydQEeHL.js} (89%) rename web/settings/assets/{device-W6_kwen7.js => device-3d8A9kvB.js} (67%) rename web/settings/assets/{device-BKr8ZHKi.js => device-64nbgpYC.js} (77%) rename web/settings/assets/{device-BPkP7kTF.js => device-8genQHND.js} (67%) rename web/settings/assets/{device-B4KoucpX.js => device-B-Mmd5Ze.js} (80%) rename web/settings/assets/{device-B6cd6sbt.js => device-B0uzBvUm.js} (73%) rename web/settings/assets/{device-CSEKL3kY.js => device-B1gW7XBg.js} (84%) rename web/settings/assets/{device-UTh7kxrR.js => device-B3RxzTPC.js} (80%) rename web/settings/assets/{device-B_aGjQ2l.js => device-B4WlrUah.js} (75%) rename web/settings/assets/{device-D9TXMIH0.js => device-B6NzT0C2.js} (74%) rename web/settings/assets/{device-CuyMfOZ0.js => device-B6xK4kG_.js} (74%) rename web/settings/assets/{device-jMvVzRzh.js => device-B7DCatpp.js} (79%) rename web/settings/assets/{device-Db5wbl5h.js => device-B8HOK5np.js} (77%) rename web/settings/assets/{device-BFYx_CN0.js => device-B9Y-E4ZO.js} (81%) rename web/settings/assets/{device-CzgpdtMj.js => device-BJt2AdWR.js} (79%) rename web/settings/assets/{device-DsgmCF5n.js => device-BPTQIU5L.js} (88%) rename web/settings/assets/{device-B4IBKY6X.js => device-BPisqhc7.js} (86%) rename web/settings/assets/{device-C3EDMzY3.js => device-BSlk0jml.js} (68%) rename web/settings/assets/{device-DYhfIW3A.js => device-BSo6UKEK.js} (73%) rename web/settings/assets/{device-8WbkORGd.js => device-BYcmVGRd.js} (73%) rename web/settings/assets/{device-oqbvqB5h.js => device-BdmFfYpU.js} (73%) rename web/settings/assets/{device-KmMBXMFM.js => device-BiPl0Xry.js} (71%) rename web/settings/assets/{device-D-pRIYiM.js => device-BjgcGLL9.js} (85%) rename web/settings/assets/{device-6Kda_LQU.js => device-BkT_aSiu.js} (73%) rename web/settings/assets/{device-z2yHS3IO.js => device-BnrlrcLl.js} (80%) rename web/settings/assets/{device-CdKxLpnp.js => device-BpIfpmVY.js} (91%) rename web/settings/assets/{device-DhhSP7do.js => device-BsGQfX6W.js} (84%) rename web/settings/assets/{device-CAxd5L90.js => device-ByIPJ75u.js} (86%) rename web/settings/assets/{device-BXojBGt2.js => device-Bz8u2WPE.js} (79%) rename web/settings/assets/{device-CkEwxrYs.js => device-C-avdMqj.js} (80%) rename web/settings/assets/{device-BII9Q7B9.js => device-C3SynQKw.js} (81%) rename web/settings/assets/{device-C0roOLlE.js => device-C4M0XOfA.js} (67%) rename web/settings/assets/{device-BLW9LjzN.js => device-C8-xjyT6.js} (73%) rename web/settings/assets/{device-DqUpYhaq.js => device-C9aR_ErT.js} (67%) rename web/settings/assets/{device-Hp2tEOlj.js => device-CHaeFEyt.js} (74%) rename web/settings/assets/{device-DVo4zylj.js => device-CJ3OjUU2.js} (74%) rename web/settings/assets/{device-hdWFSlG-.js => device-CJ5CONRY.js} (77%) rename web/settings/assets/{device-BIDbmP4X.js => device-CJ9ee9IO.js} (83%) rename web/settings/assets/{device-CI2OAM8n.js => device-CJt9s3lV.js} (78%) rename web/settings/assets/{device-CU-cwVGC.js => device-CKqZ-eL3.js} (74%) rename web/settings/assets/{device-GRny4mHm.js => device-CLljSgUf.js} (84%) rename web/settings/assets/{device-DdsXAHVY.js => device-CMS4ZH9M.js} (79%) rename web/settings/assets/{device-Bb9MADhj.js => device-CMt4xRX4.js} (79%) rename web/settings/assets/{device-BfCWTNEM.js => device-CcmT-XYr.js} (79%) rename web/settings/assets/{device-DYhwZZkT.js => device-Ce-zEVZN.js} (77%) rename web/settings/assets/{device-Sf2PbazK.js => device-Cg5a2DJ_.js} (89%) rename web/settings/assets/{device-QT8T_qSL.js => device-CgG28OWw.js} (77%) rename web/settings/assets/{device-1R4SV5Is.js => device-CiFemq5S.js} (77%) rename web/settings/assets/{device-DmGIHkAD.js => device-CiV4hgD_.js} (77%) rename web/settings/assets/{device-C-iAJJ-o.js => device-CmVz3KZr.js} (77%) rename web/settings/assets/{device-DfZ_0fKf.js => device-CqqnDv7m.js} (77%) rename web/settings/assets/{device-Z-QAbNy2.js => device-Cu0yn-TS.js} (79%) rename web/settings/assets/{device-B3ABOYFM.js => device-Cv-hQ-5K.js} (75%) rename web/settings/assets/{device-DUDQimZY.js => device-Cv_jSwrm.js} (73%) rename web/settings/assets/{device-Y3OiwDhZ.js => device-D4Gw0lZJ.js} (75%) rename web/settings/assets/{device-BZ_nIgl8.js => device-DE8Sn0RG.js} (76%) rename web/settings/assets/{device-BqYI4kY3.js => device-DHMJ0YEs.js} (81%) rename web/settings/assets/{device-BtiaNiEm.js => device-DJivvwYM.js} (73%) rename web/settings/assets/{device-B_9GoR_C.js => device-DSXRbJXc.js} (73%) rename web/settings/assets/{device-B6CeiU8G.js => device-DSzaLUMX.js} (90%) rename web/settings/assets/{device-CaA6R4P6.js => device-DXOtDi9V.js} (78%) rename web/settings/assets/{device-D7oGPfwz.js => device-DYUFbFFV.js} (74%) rename web/settings/assets/{device-B-FM1FI2.js => device-DaUzDfJC.js} (85%) rename web/settings/assets/{device-7nie8LYK.js => device-DajujJNO.js} (78%) rename web/settings/assets/{device-DH3Gi3n1.js => device-DdYCjXX-.js} (67%) rename web/settings/assets/{device-R9tnmWUQ.js => device-DdrUDEK_.js} (68%) rename web/settings/assets/{device-Bdq6veVj.js => device-DfKVgx7A.js} (78%) rename web/settings/assets/{device-BW7XDo1J.js => device-DhOZN3TO.js} (77%) rename web/settings/assets/{device-CjHCk_76.js => device-Djcanbbk.js} (67%) rename web/settings/assets/{device-eQnrxHxL.js => device-DoYhIPYo.js} (77%) rename web/settings/assets/{device-r6j0r7A3.js => device-Dqxkpm4s.js} (78%) rename web/settings/assets/{device-zzcTsTtg.js => device-DsVDr5dU.js} (68%) rename web/settings/assets/{device-_jQ1Q-kw.js => device-DxhmA9hW.js} (77%) rename web/settings/assets/{device-Bu9XgqYP.js => device-DzDhZ3zK.js} (73%) rename web/settings/assets/{device-BQvmc-9M.js => device-GL-gGFSm.js} (69%) rename web/settings/assets/{device-DQEBMJF9.js => device-MHTiTYZF.js} (73%) rename web/settings/assets/{device-By6KThCl.js => device-N5GdJSbQ.js} (74%) rename web/settings/assets/{device-F6XhS-t5.js => device-Pg4epvz-.js} (77%) rename web/settings/assets/{device-DKuTl1vv.js => device-TuHf60ob.js} (78%) rename web/settings/assets/{device-FdkK1iVn.js => device-Xoa0qNQw.js} (77%) rename web/settings/assets/{device-DbK7jIMj.js => device-dqP8cZ7r.js} (82%) rename web/settings/assets/{device-BBC5ID1s.js => device-rzxKRkPl.js} (80%) rename web/settings/assets/{device-Nalxzfta.js => device-vwuASijr.js} (78%) rename web/settings/assets/{displayTheme-CcEyZTR4.js => displayTheme-D2mZh2_2.js} (95%) rename web/settings/assets/{displayTheme-C1tK2DiA.js => displayTheme-DSCxcdhW.js} (81%) rename web/settings/assets/{external_inverter-CXGMSOOf.js => external_inverter-yhBlc68v.js} (85%) rename web/settings/assets/{flexible_tariff-BbtEphLP.js => flexible_tariff-B7GMl0Rk.js} (72%) rename web/settings/assets/{flexible_tariff-CWf9GT1d.js => flexible_tariff-BXSuQZLV.js} (95%) rename web/settings/assets/{flexible_tariff-CTpYrhmT.js => flexible_tariff-BmnVQBW5.js} (79%) rename web/settings/assets/{flexible_tariff-DqMzly43.js => flexible_tariff-CTd9X6xC.js} (76%) rename web/settings/assets/{flexible_tariff-CNNa5OV-.js => flexible_tariff-CYFz2wtm.js} (85%) rename web/settings/assets/{flexible_tariff-D1LP0FYy.js => flexible_tariff-D2I_bbD1.js} (93%) rename web/settings/assets/{flexible_tariff-BAHUZdp_.js => flexible_tariff-DBcMB1Nb.js} (78%) rename web/settings/assets/{flexible_tariff-PmiVaPpv.js => flexible_tariff-DTKfP5xv.js} (71%) rename web/settings/assets/{flexible_tariff-ZQ3pyAsQ.js => flexible_tariff-Dd4agfmV.js} (87%) rename web/settings/assets/{flexible_tariff-k72Cumcb.js => flexible_tariff-DguwaAtd.js} (90%) rename web/settings/assets/{flexible_tariff-Dlg38UZN.js => flexible_tariff-w7-xLoOe.js} (91%) rename web/settings/assets/{grid_fee-BxlzNkwq.js => grid_fee-BoQDv0Kx.js} (95%) rename web/settings/assets/{index-BBXHIMfY.js => index-CyH1Au4V.js} (96%) rename web/settings/assets/{inverter-Bkl9DTPR.js => inverter-5EBX0iZo.js} (70%) rename web/settings/assets/{inverter-C4YILAPZ.js => inverter-7soLwDob.js} (68%) rename web/settings/assets/{inverter-DbMRw6Cx.js => inverter-9sFbkMow.js} (72%) create mode 100644 web/settings/assets/inverter-B88OrxMD.js create mode 100644 web/settings/assets/inverter-BB887ZYt.js rename web/settings/assets/{inverter-Ct8TMqML.js => inverter-BI2ZqzaW.js} (69%) rename web/settings/assets/{inverter-COE-nKvP.js => inverter-BLcG2ney.js} (79%) rename web/settings/assets/{inverter-n4m3hQuV.js => inverter-BaOo9WeK.js} (69%) rename web/settings/assets/{inverter-CLRVWTl7.js => inverter-Bk86qHNm.js} (69%) rename web/settings/assets/{inverter-B_FABlgc.js => inverter-BpKMExBm.js} (70%) rename web/settings/assets/{inverter-DWNFmb91.js => inverter-BvYIme5g.js} (68%) rename web/settings/assets/{inverter-ByRR74u7.js => inverter-Bwj64g5e.js} (68%) rename web/settings/assets/{inverter-Crbr6-4Z.js => inverter-CB0x6P9A.js} (72%) rename web/settings/assets/{inverter-GRT_uJiI.js => inverter-CMmTSLWH.js} (81%) rename web/settings/assets/{inverter-DApWASl8.js => inverter-CN_ruNlm.js} (72%) rename web/settings/assets/{inverter-NWk4UIGH.js => inverter-CZxBgkMq.js} (73%) rename web/settings/assets/{inverter-DIp3-cnM.js => inverter-CgUUQeXE.js} (84%) rename web/settings/assets/{inverter-CnZlUSck.js => inverter-CkuUw0Yu.js} (71%) rename web/settings/assets/{inverter-DVr22Egy.js => inverter-CopsarJJ.js} (72%) rename web/settings/assets/{inverter-0iQRw2xt.js => inverter-D7eVv_21.js} (68%) rename web/settings/assets/{inverter-CxoMP6Jb.js => inverter-DL8Ty732.js} (77%) rename web/settings/assets/{inverter-CUJI2Fyz.js => inverter-DLWFTpaZ.js} (70%) rename web/settings/assets/{inverter-BBWU2rw5.js => inverter-Da945LLX.js} (86%) rename web/settings/assets/{inverter-CzXwYkHv.js => inverter-Dd8Zt71F.js} (68%) delete mode 100644 web/settings/assets/inverter-DehorSAv.js rename web/settings/assets/{inverter-Da-G6Y0c.js => inverter-DhjTWscc.js} (75%) rename web/settings/assets/{inverter-DV4a4maw.js => inverter-Dl-vr0bC.js} (71%) rename web/settings/assets/{inverter-BFDThOJR.js => inverter-DrtnNh9-.js} (76%) delete mode 100644 web/settings/assets/inverter-Hxi7PnqE.js rename web/settings/assets/{inverter-B-0L9XYq.js => inverter-YdmHIKyl.js} (66%) rename web/settings/assets/{inverter-DsD3wquS.js => inverter-YmiFDBbL.js} (90%) rename web/settings/assets/{inverter-CC2Mvp5q.js => inverter-f4xqdlX6.js} (92%) rename web/settings/assets/{inverter-BTshuvks.js => inverter-lozsDiob.js} (70%) rename web/settings/assets/{inverter-DiRXgTFp.js => inverter-m3LVq5tF.js} (78%) rename web/settings/assets/{inverter-Dsj7QrSL.js => inverter-yrrMEiBw.js} (68%) rename web/settings/assets/{inverter-O85bqWQC.js => inverter-zzkwTxc_.js} (84%) rename web/settings/assets/{inverter_maxstorage-CEwj2eYk.js => inverter_maxstorage-Da9O-iNa.js} (70%) rename web/settings/assets/{inverter_production_meter-DfIqPquE.js => inverter_production_meter-BhLy0jS8.js} (88%) rename web/settings/assets/{inverter_secondary-CGqHCim3.js => inverter_secondary-Cke98mZd.js} (81%) rename web/settings/assets/{io_action-CP47oj7W.js => io_action-BlGNVQOy.js} (89%) rename web/settings/assets/{io_action-BcRa5w4h.js => io_action-CNib3IIZ.js} (88%) rename web/settings/assets/{io_action-CCDa41WP.js => io_action-CcAuqDqD.js} (84%) rename web/settings/assets/{io_action-BIaRo3Nw.js => io_action-XIjORj2n.js} (86%) rename web/settings/assets/{io_device-Bu2TTklo.js => io_device-1ouhD8vS.js} (86%) rename web/settings/assets/{io_device-CMcMfpQL.js => io_device-B-Ykhm08.js} (86%) rename web/settings/assets/{io_device-CSfBx0gv.js => io_device-BFTcDSy5.js} (75%) rename web/settings/assets/{monitoring-DmGi8iaj.js => monitoring-BMLL0nfh.js} (84%) rename web/settings/assets/{vehicle-u7nEjbHE.js => vehicle-7u_dqMEp.js} (73%) rename web/settings/assets/{vehicle-CQZ24B5Z.js => vehicle-9Vh-TxGa.js} (75%) rename web/settings/assets/{vehicle-BIXm9LJK.js => vehicle-B0tJYS46.js} (86%) rename web/settings/assets/{vehicle-fQvTZi_E.js => vehicle-BJ8Vq-80.js} (94%) rename web/settings/assets/{vehicle-mVzWIbRB.js => vehicle-BgWejNBx.js} (89%) rename web/settings/assets/{vehicle-BfwB5CmK.js => vehicle-BjW8elSd.js} (91%) rename web/settings/assets/{vehicle-DNvSQzxJ.js => vehicle-Bo3E1wuI.js} (90%) rename web/settings/assets/{vehicle-Cac3-Kjm.js => vehicle-Bwnke49F.js} (79%) rename web/settings/assets/{vehicle-DOhfCjDp.js => vehicle-BxcO7fDO.js} (82%) rename web/settings/assets/{vehicle-CPj_pr_x.js => vehicle-C4xon1Al.js} (86%) rename web/settings/assets/{vehicle-C8HZVIPP.js => vehicle-CPjkbES5.js} (86%) rename web/settings/assets/{vehicle-BPW3tNQi.js => vehicle-CYTzHFS6.js} (85%) rename web/settings/assets/{vehicle-B75xZfr2.js => vehicle-CeWm61bY.js} (89%) rename web/settings/assets/{vehicle-C8g_PIkP.js => vehicle-CiPbB9w2.js} (89%) rename web/settings/assets/{vehicle-CzbURT4N.js => vehicle-CoVie7os.js} (94%) rename web/settings/assets/{vehicle-4ooF7u3O.js => vehicle-Qsp1JuH6.js} (82%) rename web/settings/assets/{vehicle-Byenkt0o.js => vehicle-TwRWpbVJ.js} (85%) rename web/settings/assets/{vehicle-DqI_P0GO.js => vehicle-bxge8VZs.js} (84%) rename web/settings/assets/{vehicle-C4ht6hjr.js => vehicle-mz1O0JRs.js} (77%) rename web/settings/assets/{vehicle-SqSIcJkM.js => vehicle-uzGGKIpS.js} (92%) rename web/settings/assets/{vehicle-CIkD544B.js => vehicle-wE-5x93X.js} (82%) rename web/settings/assets/{vendor-JxinjXxC.js => vendor-Bo8v-nQD.js} (61%) delete mode 100644 web/settings/assets/vendor-axios-CL9DOa3h.js create mode 100644 web/settings/assets/vendor-axios-DdFvNBv9.js rename web/settings/assets/{vendor-bootstrap-BTTEOGLM.js => vendor-bootstrap-BQqw8g0w.js} (99%) rename web/settings/assets/{vendor-chartjs-CfpTrYqu.js => vendor-chartjs-0RUe1kvq.js} (99%) rename web/settings/assets/{vendor-fortawesome-DD1DIYBi.js => vendor-fortawesome-CBc-2W7w.js} (99%) rename web/settings/assets/{webTheme-BOkimBx9.js => webTheme-CUZsmlbL.js} (90%) rename web/settings/assets/{webTheme-dYPxGIXZ.js => webTheme-D6gb9Bne.js} (66%) rename web/settings/assets/{webTheme-Zd9UenAJ.js => webTheme-DQBJkymH.js} (94%) diff --git a/web/settings/assets/ActiveBatControlConfiguration-CcFt4tiZ.js b/web/settings/assets/ActiveBatControlConfiguration-DEBiR6H9.js similarity index 98% rename from web/settings/assets/ActiveBatControlConfiguration-CcFt4tiZ.js rename to web/settings/assets/ActiveBatControlConfiguration-DEBiR6H9.js index 85621df8e2..fcd94e446b 100644 --- a/web/settings/assets/ActiveBatControlConfiguration-CcFt4tiZ.js +++ b/web/settings/assets/ActiveBatControlConfiguration-DEBiR6H9.js @@ -1 +1 @@ -import{C as z}from"./index-BBXHIMfY.js";import{F as V,l as $,a4 as C,ag as E,ah as F}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as N,l as m,k as o,e as l,x as c,m as i,q as r,A as a,u as s,y as b,D as k,K as M,L as U,J as q}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";$.add(C,E,F);const D={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:V},mixins:[z],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/get/max_charge_power",writeable:!0},{topic:"openWB/bat/+/get/max_discharge_power",writeable:!0},{topic:"openWB/bat/+/get/power_limit_controllable",writeable:!1},{topic:"openWB/bat/config/bat_control_activated",writeable:!0},{topic:"openWB/bat/config/bat_control_max_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_min_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_permitted",writeable:!0},{topic:"openWB/bat/config/charge_limit",writeable:!0},{topic:"openWB/bat/config/manual_mode",writeable:!0},{topic:"openWB/bat/config/power_limit_condition",writeable:!0},{topic:"openWB/bat/config/power_limit_mode",writeable:!0},{topic:"openWB/bat/config/price_charge_activated",writeable:!0},{topic:"openWB/bat/config/price_limit",writeable:!0},{topic:"openWB/bat/config/price_limit_activated",writeable:!0},{topic:"openWB/bat/get/power_limit_controllable",writeable:!1},{topic:"openWB/general/chargemode_config/pv_charging/bat_mode",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/max_bat_soc",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/min_bat_soc",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(t){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",t)}},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")}},controllableBatteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterControllableBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))}},containsNormalBatteries:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?!1:Object.keys(this.filterNormalBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))).length>0}}},methods:{getLimitControllable(t){return this.$store.state.mqtt["openWB/bat/"+t+"/get/power_limit_controllable"]},filterComponentsByType(t,e){return Object.keys(t).filter(d=>t[d].type.includes(e)).reduce((d,S)=>({...d,[S]:t[S]}),{})},filterControllableBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&t[e].configuration.power_limit_controllable===!0).reduce((e,d)=>({...e,[d]:t[d]}),{})},filterNormalBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&this.getLimitControllable(t[e].id)===!1).reduce((e,d)=>({...e,[d]:t[d]}),{})}}},L={class:"batteryConfig"},P={name:"batteryConfigForm"},A={key:0},R={key:1},H={key:0},T={key:1},O={key:2},I={key:0},J={key:0},j={key:1},G={key:0},K={key:0},Q={key:0},X={key:1},Y={key:2},Z={key:0},x={key:1},ee={key:2},te={key:0},ne={key:0},re={key:1},ie={key:2},ae={key:1},oe={key:2},le={key:1};function se(t,e,d,S,de,p){const u=m("openwb-base-alert"),f=m("font-awesome-icon"),g=m("openwb-base-button-group-input"),v=m("openwb-base-range-input"),h=m("openwb-base-heading"),_=m("openwb-base-number-input"),w=m("openwb-base-card"),y=m("openwb-base-submit-buttons");return o(),l("div",L,[c("form",P,[i(w,{title:"Passive Speicherbeachtung (PV)"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",A,[i(u,{subtype:"info"},{default:r(()=>[...e[21]||(e[21]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",R,[i(u,{subtype:"info"},{default:r(()=>[...e[22]||(e[22]=[a(' Die Regelmodi der Speicherbeachtung erfolgen "passiv" durch Anpassung der Fahrzeug-Ladeleistung. PV-Überschuss wird, je nach Konfiguration, entweder dem Fahrzeug zugeteilt oder dem Speicher überlassen. Netz- und Speicherbezug wird, sofern nicht anders konfiguriert, vermieden. ',-1)])]),_:1}),i(g,{modelValue:p.batMode,"onUpdate:modelValue":e[0]||(e[0]=n=>p.batMode=n),title:"Ladepriorität",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","car-side"]}),e[23]||(e[23]=a(" Fahrzeuge ",-1))]),"label-bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-car-battery"]}),e[24]||(e[24]=a(" Speicher ",-1))]),"label-min_soc_bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-battery-half"]}),e[25]||(e[25]=a(" Nach SoC des Speichers ",-1))]),help:r(()=>[p.batMode==="ev_mode"?(o(),l("div",H," Der gesamte Überschuss wird in das EV geladen. Wird mehr Überschuss erzeugt als die Fahrzeuge abnehmen, findet auch eine Speicherladung statt. ")):s("",!0),p.batMode==="bat_mode"?(o(),l("div",T," Der gesamte Überschuss wird 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. ")):s("",!0),p.batMode==="min_soc_bat_mode"?(o(),l("div",O,' Verhält sich bis zum Erreichen des Mindest-SoC wie "Ladepriorität Speicher" und oberhalb des Mindest-SoC wie "Ladepriorität Fahrzeuge". Die maximale Leistung der Speicherbe- und entladung lässt sich hier festlegen. ')):s("",!0)]),_:1},8,["modelValue"]),p.batMode==="min_soc_bat_mode"?(o(),l("div",I,[i(v,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[1]||(e[1]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"][...e[26]||(e[26]=[a(" Unterhalb des Mindest-SoC wird vorhandener PV-Überschuss bevorzugt in den Speicher geladen. Oberhalb des Mindest-SoC hat die Fahrzeugladung Priorität. ",-1)])]),_:1},8,["model-value"]),i(v,{title:"Maximal-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"],"onUpdate:modelValue":e[2]||(e[2]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]>t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]?t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]:n)))},{help:r(()=>[...e[27]||(e[27]=[a(" Wird der Maximal-SoC überschritten, darf der Speicher bis zum Erreichen des Mindest-SoC zur Fahrzeugladung mitbenutzt werden. ",-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]==t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]?(o(),b(u,{key:0,subtype:"info"},{default:r(()=>[...e[28]||(e[28]=[a(" Bei identischen SoC Angaben findet keine Speicherhysterese statt. ",-1)])]),_:1})):s("",!0),i(h,null,{default:r(()=>[...e[29]||(e[29]=[a(" Speicher-Ladeleistung unterhalb Mindest-SoC ",-1)])]),_:1}),i(g,{title:"Nur eine bestimmte Ladeleistung reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?{name:"help",fn:r(()=>[e[30]||(e[30]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten!",-1)),e[31]||(e[31]=c("br",null,null,-1)),e[32]||(e[32]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er mit der hier eingestellten Speicherladeleistung geladen. Verbleibender Überschuss wird in die Fahrzeuge geladen. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[33]||(e[33]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er priorisiert geladen. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(o(),b(_,{key:1,title:"Reservierte Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",n*1e3))},null,8,["model-value"])):s("",!0),i(h,null,{default:r(()=>[...e[34]||(e[34]=[a(" Speicher-SoC oberhalb Maximal-SoC ",-1)])]),_:1}),i(g,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?{name:"help",fn:r(()=>[e[35]||(e[35]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Entladeleistung des Speichers nicht überschreiten! Wird der Maximal-SoC überschritten, wird die PV-Ladung mit der hier eingestellten Speicherentladeleistung unterstützt. Der Speicher darf bis zum Mindest-SoC entladen werden. Die erlaubte Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[36]||(e[36]=a(" Oberhalb des Maximal-SoC wird der Speicher nicht für die Fahrzeugladung mitgenutzt. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(o(),b(_,{key:2,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",n*1e3))},null,8,["model-value"])):s("",!0)])):s("",!0)]))]),_:1}),i(w,{title:"Aktive Speichersteuerung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",J,[i(u,{subtype:"info"},{default:r(()=>[...e[37]||(e[37]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",j,[i(u,{subtype:"info",class:"mb-3"},{default:r(()=>[e[38]||(e[38]=c("p",null,[a(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht vom Hersteller freigegebene Informationen beinhalten."),c("br"),a(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),i(g,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateState("openWB/bat/config/bat_control_permitted",n))},null,8,["model-value"])]),_:1}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(o(),l("div",G,[i(h,{class:"mt-0"},{default:r(()=>[...e[39]||(e[39]=[a(" Regelmodi der aktiven Speichersteuerung ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[40]||(e[40]=[a(" Die aktive Speichersteuerung kann Speicherentladung begrenzen oder den Speicher zur Ladung zwingen. Die erlaubte Entladeleistung des Speichers (Speicherbeachtung PV) wird bei aktiver Speichersteuerung überschrieben, da Speicherentladung unter Umständen aktiv begrenzt wird. ",-1)])]),_:1}),i(g,{title:"Speicher aktiv Steuern",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_activated"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/bat/config/bat_control_activated",n))},k({_:2},[t.$store.state.mqtt["openWB/bat/config/bat_control_activated"]?{name:"help",fn:r(()=>[e[41]||(e[41]=a(" Speicher wird aktiv gesteuert. Grundlage ist die nachfolgende Konfiguration. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[42]||(e[42]=a(" Speicher wird nicht aktiv gesteuert, sondern regelt eigenständig.",-1)),e[43]||(e[43]=c("br",null,null,-1)),e[44]||(e[44]=a(" Es greifen die Regelparameter der Speicherbeachtung. ",-1))]),key:"1"}]),1032,["model-value"]),i(w,{title:"Aktiv steuerbare Speicher"},{default:r(()=>[p.containsNormalBatteries?(o(),b(u,{key:0,subtype:"danger"},{default:r(()=>[...e[45]||(e[45]=[a(" Es sind weitere, nicht steuerbare Speicher im System vorhanden. Solche Speicher führen gewöhnlich eigenständig eine Nullpunktausregelung durch, versuchen also Überschuss zu speichern (Einspeisung zu verhindern) und Netzbezug durch eigene Entladung zu vermeiden.",-1),c("br",null,null,-1),a(" Ein solcher Speicher versucht ebenso aktiv gesteuerte Speicher auszugleichen. ",-1)])]),_:1})):s("",!0),(o(!0),l(M,null,U(p.batteryConfigs,(n,B)=>(o(),l("div",{key:B},[t.$store.state.mqtt["openWB/bat/"+n.id+"/get/power_limit_controllable"]===!0?(o(),b(w,{key:B,title:n.name+" (ID: "+n.id+")",collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[i(f,{icon:["fas","fa-car-battery"]}),a(" "+q(n.name)+" (ID: "+q(n.id)+") ",1)]),default:r(()=>[(o(),b(_,{key:B,title:"Maximale Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_discharge_power"]/-1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_discharge_power",W*-1e3)},null,8,["model-value","onUpdate:modelValue"])),(o(),b(_,{key:B,title:"Maximale Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_charge_power"]/1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_charge_power",W*1e3)},null,8,["model-value","onUpdate:modelValue"]))]),_:2},1032,["title"])):s("",!0)]))),128))]),_:1}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(o(),l("div",K,[i(v,{title:"Untere Entladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"],"onUpdate:modelValue":e[9]||(e[9]=n=>(t.updateState("openWB/bat/config/bat_control_min_soc",n),t.updateState("openWB/bat/config/bat_control_max_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"][...e[46]||(e[46]=[a(' Speicher, welche durch die aktive Steuerung entladen werden, schalten unterhalb des eingestellten SoC auf "Eigenregelung", um mögliche Tiefentladung zu verhindern. Die aktive Ladung ist weiterhin möglich. ',-1)])]),_:1},8,["model-value"]),i(v,{title:"Obere Ladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"],"onUpdate:modelValue":e[10]||(e[10]=n=>(t.updateState("openWB/bat/config/bat_control_max_soc",n),t.updateState("openWB/bat/config/bat_control_min_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"]>t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]?t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]:n)))},{help:r(()=>[...e[47]||(e[47]=[a(" Speicher, welche aktiv geladen werden, sperren oberhalb des eingestellten SoC die Entladung oder schalten auf Eigenregelung des Speichers. ",-1)])]),_:1},8,["model-value"]),i(g,{title:"Regellimit",buttons:[{buttonValue:"mode_no_discharge",text:"volle Entladesperre"},{buttonValue:"mode_discharge_home_consumption",text:"Nur Hausverbrauch entladen"},{buttonValue:"mode_charge_pv_production",text:"PV-Ertrag speichern"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateState("openWB/bat/config/power_limit_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_no_discharge"?(o(),l("div",Q," Die Speicherentladung wird komplett gesperrt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom und ggfs. vorhandenen PV-Überschuss versorgt. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_discharge_home_consumption"?(o(),l("div",X,' Es wird nur der Hausverbrauch durch den Speicher ausgeglichen. Die Speicherentladung in Fahrzeuge wird komplett gesperrt! Fahrzeugladung, die nicht durch PV-Überschuss gedeckt werden kann, erzeugt Netzbezug statt Speicherentladung. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_charge_pv_production"?(o(),l("div",Y," PV-Ertrag wird vorrangig in den Speicher geladen (aktive Ladung)! Weiterer Verbrauch (Hausverbrauch/ Fahrzeugladung) erzeugt Netzbezug. ")):s("",!0)]),_:1},8,["model-value"]),i(g,{title:"Regelbedingung",buttons:[{buttonValue:"manual",text:"Manuell"},{buttonValue:"vehicle_charging",text:"Fahrzeugladung aktiv"},{buttonValue:"price_limit",text:"Preisgrenze"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_condition"],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateState("openWB/bat/config/power_limit_condition",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",Z," Der Speicher regelt direkt entsprechend der manuellen Einstellung. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",x," Das oben eingestellte Regellimit wird angewendet, sobald ein oder mehrere Fahrzeuge Laden. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",ee," Regelung nach Preisgrenze bei variablen Strompreisen. ")):s("",!0)]),_:1},8,["model-value"]),e[55]||(e[55]=c("hr",null,null,-1)),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",te,[i(h,{class:"mt-0"},{default:r(()=>[...e[48]||(e[48]=[a(" Manuell ",-1)])]),_:1}),i(g,{title:"Speichersteuerung",buttons:[{buttonValue:"manual_disable",text:"Aus"},{buttonValue:"manual_limit",text:"Regellimit anwenden"},{buttonValue:"manual_charge",text:"Speicher laden"}],"model-value":t.$store.state.mqtt["openWB/bat/config/manual_mode"],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateState("openWB/bat/config/manual_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_disable"?(o(),l("div",ne," Aktive Speichersteuerung deaktivieren (Eigenregelung des Speichers). ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_limit"?(o(),l("div",re," Es wird das weiter oben konfigurierte Regellimit angewendet. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_charge"?(o(),l("div",ie," Alle Speicher werden mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ")):s("",!0)]),_:1},8,["model-value"])])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",ae,[i(h,{class:"mt-0"},{default:r(()=>[...e[49]||(e[49]=[a(" Fahrzeugladung aktiv ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[50]||(e[50]=[a(" Dieser Modus bietet keine weiteren Einstellungen. Sobald mindestens ein Fahrzeug lädt greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1})])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",oe,[i(h,{class:"mt-0"},{default:r(()=>[...e[51]||(e[51]=[a(" Preisgrenze (Variable Strompreise) ",-1)])]),_:1}),!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(o(),b(u,{key:0,subtype:"warning"},{default:r(()=>[...e[52]||(e[52]=[a(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter schaltet der Speicher auf Eigenregelung. ",-1)])]),_:1})):s("",!0),i(g,{title:"Preisgrenze für Netzbezug statt Speicherentladung",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_limit_activated"],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateState("openWB/bat/config/price_limit_activated",n))},{help:r(()=>[...e[53]||(e[53]=[a(" Fällt der variable Strompreis unter diesen Wert, greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/price_limit"]*1e5,"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/bat/config/price_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"]),i(g,{title:"Preisgrenze für Speicherladung mit Netzbezug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_charge_activated"],"onUpdate:modelValue":e[16]||(e[16]=n=>t.updateState("openWB/bat/config/price_charge_activated",n))},{help:r(()=>[...e[54]||(e[54]=[a(" Fällt der variable Strompreis unter diesen Wert werden alle Speicher mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Speicherladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/charge_limit"]*1e5,"onUpdate:modelValue":e[17]||(e[17]=n=>t.updateState("openWB/bat/config/charge_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"])])):s("",!0)])):(o(),l("div",le,[i(u,{subtype:"info"},{default:r(()=>[...e[56]||(e[56]=[a(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])]),_:1})]))])):s("",!0)]))]),_:1}),i(y,{"form-name":"batteryConfigForm",onSave:e[18]||(e[18]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[19]||(e[19]=n=>t.$emit("reset")),onDefaults:e[20]||(e[20]=n=>t.$emit("defaults"))})])])}const he=N(D,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ActiveBatControlConfiguration.vue"]]);export{he as default}; +import{C as z}from"./index-CyH1Au4V.js";import{F as V,l as $,a4 as C,ag as E,ah as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as N,l as m,k as o,e as l,x as c,m as i,q as r,A as a,u as s,y as b,D as k,K as M,L as U,J as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";$.add(C,E,F);const D={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:V},mixins:[z],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/get/max_charge_power",writeable:!0},{topic:"openWB/bat/+/get/max_discharge_power",writeable:!0},{topic:"openWB/bat/+/get/power_limit_controllable",writeable:!1},{topic:"openWB/bat/config/bat_control_activated",writeable:!0},{topic:"openWB/bat/config/bat_control_max_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_min_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_permitted",writeable:!0},{topic:"openWB/bat/config/charge_limit",writeable:!0},{topic:"openWB/bat/config/manual_mode",writeable:!0},{topic:"openWB/bat/config/power_limit_condition",writeable:!0},{topic:"openWB/bat/config/power_limit_mode",writeable:!0},{topic:"openWB/bat/config/price_charge_activated",writeable:!0},{topic:"openWB/bat/config/price_limit",writeable:!0},{topic:"openWB/bat/config/price_limit_activated",writeable:!0},{topic:"openWB/bat/get/power_limit_controllable",writeable:!1},{topic:"openWB/general/chargemode_config/pv_charging/bat_mode",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/max_bat_soc",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/min_bat_soc",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(t){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",t)}},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")}},controllableBatteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterControllableBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))}},containsNormalBatteries:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?!1:Object.keys(this.filterNormalBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))).length>0}}},methods:{getLimitControllable(t){return this.$store.state.mqtt["openWB/bat/"+t+"/get/power_limit_controllable"]},filterComponentsByType(t,e){return Object.keys(t).filter(d=>t[d].type.includes(e)).reduce((d,S)=>({...d,[S]:t[S]}),{})},filterControllableBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&t[e].configuration.power_limit_controllable===!0).reduce((e,d)=>({...e,[d]:t[d]}),{})},filterNormalBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&this.getLimitControllable(t[e].id)===!1).reduce((e,d)=>({...e,[d]:t[d]}),{})}}},L={class:"batteryConfig"},P={name:"batteryConfigForm"},A={key:0},R={key:1},H={key:0},T={key:1},O={key:2},I={key:0},J={key:0},j={key:1},G={key:0},K={key:0},Q={key:0},X={key:1},Y={key:2},Z={key:0},x={key:1},ee={key:2},te={key:0},ne={key:0},re={key:1},ie={key:2},ae={key:1},oe={key:2},le={key:1};function se(t,e,d,S,de,p){const u=m("openwb-base-alert"),f=m("font-awesome-icon"),g=m("openwb-base-button-group-input"),v=m("openwb-base-range-input"),h=m("openwb-base-heading"),_=m("openwb-base-number-input"),w=m("openwb-base-card"),y=m("openwb-base-submit-buttons");return o(),l("div",L,[c("form",P,[i(w,{title:"Passive Speicherbeachtung (PV)"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",A,[i(u,{subtype:"info"},{default:r(()=>[...e[21]||(e[21]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",R,[i(u,{subtype:"info"},{default:r(()=>[...e[22]||(e[22]=[a(' Die Regelmodi der Speicherbeachtung erfolgen "passiv" durch Anpassung der Fahrzeug-Ladeleistung. PV-Überschuss wird, je nach Konfiguration, entweder dem Fahrzeug zugeteilt oder dem Speicher überlassen. Netz- und Speicherbezug wird, sofern nicht anders konfiguriert, vermieden. ',-1)])]),_:1}),i(g,{modelValue:p.batMode,"onUpdate:modelValue":e[0]||(e[0]=n=>p.batMode=n),title:"Ladepriorität",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","car-side"]}),e[23]||(e[23]=a(" Fahrzeuge ",-1))]),"label-bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-car-battery"]}),e[24]||(e[24]=a(" Speicher ",-1))]),"label-min_soc_bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-battery-half"]}),e[25]||(e[25]=a(" Nach SoC des Speichers ",-1))]),help:r(()=>[p.batMode==="ev_mode"?(o(),l("div",H," Der gesamte Überschuss wird in das EV geladen. Wird mehr Überschuss erzeugt als die Fahrzeuge abnehmen, findet auch eine Speicherladung statt. ")):s("",!0),p.batMode==="bat_mode"?(o(),l("div",T," Der gesamte Überschuss wird 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. ")):s("",!0),p.batMode==="min_soc_bat_mode"?(o(),l("div",O,' Verhält sich bis zum Erreichen des Mindest-SoC wie "Ladepriorität Speicher" und oberhalb des Mindest-SoC wie "Ladepriorität Fahrzeuge". Die maximale Leistung der Speicherbe- und entladung lässt sich hier festlegen. ')):s("",!0)]),_:1},8,["modelValue"]),p.batMode==="min_soc_bat_mode"?(o(),l("div",I,[i(v,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[1]||(e[1]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"][...e[26]||(e[26]=[a(" Unterhalb des Mindest-SoC wird vorhandener PV-Überschuss bevorzugt in den Speicher geladen. Oberhalb des Mindest-SoC hat die Fahrzeugladung Priorität. ",-1)])]),_:1},8,["model-value"]),i(v,{title:"Maximal-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"],"onUpdate:modelValue":e[2]||(e[2]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]>t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]?t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]:n)))},{help:r(()=>[...e[27]||(e[27]=[a(" Wird der Maximal-SoC überschritten, darf der Speicher bis zum Erreichen des Mindest-SoC zur Fahrzeugladung mitbenutzt werden. ",-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]==t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]?(o(),b(u,{key:0,subtype:"info"},{default:r(()=>[...e[28]||(e[28]=[a(" Bei identischen SoC Angaben findet keine Speicherhysterese statt. ",-1)])]),_:1})):s("",!0),i(h,null,{default:r(()=>[...e[29]||(e[29]=[a(" Speicher-Ladeleistung unterhalb Mindest-SoC ",-1)])]),_:1}),i(g,{title:"Nur eine bestimmte Ladeleistung reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?{name:"help",fn:r(()=>[e[30]||(e[30]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten!",-1)),e[31]||(e[31]=c("br",null,null,-1)),e[32]||(e[32]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er mit der hier eingestellten Speicherladeleistung geladen. Verbleibender Überschuss wird in die Fahrzeuge geladen. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[33]||(e[33]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er priorisiert geladen. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(o(),b(_,{key:1,title:"Reservierte Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",n*1e3))},null,8,["model-value"])):s("",!0),i(h,null,{default:r(()=>[...e[34]||(e[34]=[a(" Speicher-SoC oberhalb Maximal-SoC ",-1)])]),_:1}),i(g,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?{name:"help",fn:r(()=>[e[35]||(e[35]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Entladeleistung des Speichers nicht überschreiten! Wird der Maximal-SoC überschritten, wird die PV-Ladung mit der hier eingestellten Speicherentladeleistung unterstützt. Der Speicher darf bis zum Mindest-SoC entladen werden. Die erlaubte Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[36]||(e[36]=a(" Oberhalb des Maximal-SoC wird der Speicher nicht für die Fahrzeugladung mitgenutzt. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(o(),b(_,{key:2,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",n*1e3))},null,8,["model-value"])):s("",!0)])):s("",!0)]))]),_:1}),i(w,{title:"Aktive Speichersteuerung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",J,[i(u,{subtype:"info"},{default:r(()=>[...e[37]||(e[37]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",j,[i(u,{subtype:"info",class:"mb-3"},{default:r(()=>[e[38]||(e[38]=c("p",null,[a(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht vom Hersteller freigegebene Informationen beinhalten."),c("br"),a(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),i(g,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateState("openWB/bat/config/bat_control_permitted",n))},null,8,["model-value"])]),_:1}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(o(),l("div",G,[i(h,{class:"mt-0"},{default:r(()=>[...e[39]||(e[39]=[a(" Regelmodi der aktiven Speichersteuerung ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[40]||(e[40]=[a(" Die aktive Speichersteuerung kann Speicherentladung begrenzen oder den Speicher zur Ladung zwingen. Die erlaubte Entladeleistung des Speichers (Speicherbeachtung PV) wird bei aktiver Speichersteuerung überschrieben, da Speicherentladung unter Umständen aktiv begrenzt wird. ",-1)])]),_:1}),i(g,{title:"Speicher aktiv Steuern",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_activated"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/bat/config/bat_control_activated",n))},k({_:2},[t.$store.state.mqtt["openWB/bat/config/bat_control_activated"]?{name:"help",fn:r(()=>[e[41]||(e[41]=a(" Speicher wird aktiv gesteuert. Grundlage ist die nachfolgende Konfiguration. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[42]||(e[42]=a(" Speicher wird nicht aktiv gesteuert, sondern regelt eigenständig.",-1)),e[43]||(e[43]=c("br",null,null,-1)),e[44]||(e[44]=a(" Es greifen die Regelparameter der Speicherbeachtung. ",-1))]),key:"1"}]),1032,["model-value"]),i(w,{title:"Aktiv steuerbare Speicher"},{default:r(()=>[p.containsNormalBatteries?(o(),b(u,{key:0,subtype:"danger"},{default:r(()=>[...e[45]||(e[45]=[a(" Es sind weitere, nicht steuerbare Speicher im System vorhanden. Solche Speicher führen gewöhnlich eigenständig eine Nullpunktausregelung durch, versuchen also Überschuss zu speichern (Einspeisung zu verhindern) und Netzbezug durch eigene Entladung zu vermeiden.",-1),c("br",null,null,-1),a(" Ein solcher Speicher versucht ebenso aktiv gesteuerte Speicher auszugleichen. ",-1)])]),_:1})):s("",!0),(o(!0),l(M,null,U(p.batteryConfigs,(n,B)=>(o(),l("div",{key:B},[t.$store.state.mqtt["openWB/bat/"+n.id+"/get/power_limit_controllable"]===!0?(o(),b(w,{key:B,title:n.name+" (ID: "+n.id+")",collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[i(f,{icon:["fas","fa-car-battery"]}),a(" "+q(n.name)+" (ID: "+q(n.id)+") ",1)]),default:r(()=>[(o(),b(_,{key:B,title:"Maximale Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_discharge_power"]/-1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_discharge_power",W*-1e3)},null,8,["model-value","onUpdate:modelValue"])),(o(),b(_,{key:B,title:"Maximale Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_charge_power"]/1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_charge_power",W*1e3)},null,8,["model-value","onUpdate:modelValue"]))]),_:2},1032,["title"])):s("",!0)]))),128))]),_:1}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(o(),l("div",K,[i(v,{title:"Untere Entladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"],"onUpdate:modelValue":e[9]||(e[9]=n=>(t.updateState("openWB/bat/config/bat_control_min_soc",n),t.updateState("openWB/bat/config/bat_control_max_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"][...e[46]||(e[46]=[a(' Speicher, welche durch die aktive Steuerung entladen werden, schalten unterhalb des eingestellten SoC auf "Eigenregelung", um mögliche Tiefentladung zu verhindern. Die aktive Ladung ist weiterhin möglich. ',-1)])]),_:1},8,["model-value"]),i(v,{title:"Obere Ladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"],"onUpdate:modelValue":e[10]||(e[10]=n=>(t.updateState("openWB/bat/config/bat_control_max_soc",n),t.updateState("openWB/bat/config/bat_control_min_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"]>t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]?t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]:n)))},{help:r(()=>[...e[47]||(e[47]=[a(" Speicher, welche aktiv geladen werden, sperren oberhalb des eingestellten SoC die Entladung oder schalten auf Eigenregelung des Speichers. ",-1)])]),_:1},8,["model-value"]),i(g,{title:"Regellimit",buttons:[{buttonValue:"mode_no_discharge",text:"volle Entladesperre"},{buttonValue:"mode_discharge_home_consumption",text:"Nur Hausverbrauch entladen"},{buttonValue:"mode_charge_pv_production",text:"PV-Ertrag speichern"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateState("openWB/bat/config/power_limit_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_no_discharge"?(o(),l("div",Q," Die Speicherentladung wird komplett gesperrt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom und ggfs. vorhandenen PV-Überschuss versorgt. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_discharge_home_consumption"?(o(),l("div",X,' Es wird nur der Hausverbrauch durch den Speicher ausgeglichen. Die Speicherentladung in Fahrzeuge wird komplett gesperrt! Fahrzeugladung, die nicht durch PV-Überschuss gedeckt werden kann, erzeugt Netzbezug statt Speicherentladung. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_charge_pv_production"?(o(),l("div",Y," PV-Ertrag wird vorrangig in den Speicher geladen (aktive Ladung)! Weiterer Verbrauch (Hausverbrauch/ Fahrzeugladung) erzeugt Netzbezug. ")):s("",!0)]),_:1},8,["model-value"]),i(g,{title:"Regelbedingung",buttons:[{buttonValue:"manual",text:"Manuell"},{buttonValue:"vehicle_charging",text:"Fahrzeugladung aktiv"},{buttonValue:"price_limit",text:"Preisgrenze"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_condition"],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateState("openWB/bat/config/power_limit_condition",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",Z," Der Speicher regelt direkt entsprechend der manuellen Einstellung. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",x," Das oben eingestellte Regellimit wird angewendet, sobald ein oder mehrere Fahrzeuge Laden. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",ee," Regelung nach Preisgrenze bei variablen Strompreisen. ")):s("",!0)]),_:1},8,["model-value"]),e[55]||(e[55]=c("hr",null,null,-1)),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",te,[i(h,{class:"mt-0"},{default:r(()=>[...e[48]||(e[48]=[a(" Manuell ",-1)])]),_:1}),i(g,{title:"Speichersteuerung",buttons:[{buttonValue:"manual_disable",text:"Aus"},{buttonValue:"manual_limit",text:"Regellimit anwenden"},{buttonValue:"manual_charge",text:"Speicher laden"}],"model-value":t.$store.state.mqtt["openWB/bat/config/manual_mode"],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateState("openWB/bat/config/manual_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_disable"?(o(),l("div",ne," Aktive Speichersteuerung deaktivieren (Eigenregelung des Speichers). ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_limit"?(o(),l("div",re," Es wird das weiter oben konfigurierte Regellimit angewendet. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_charge"?(o(),l("div",ie," Alle Speicher werden mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ")):s("",!0)]),_:1},8,["model-value"])])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",ae,[i(h,{class:"mt-0"},{default:r(()=>[...e[49]||(e[49]=[a(" Fahrzeugladung aktiv ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[50]||(e[50]=[a(" Dieser Modus bietet keine weiteren Einstellungen. Sobald mindestens ein Fahrzeug lädt greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1})])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",oe,[i(h,{class:"mt-0"},{default:r(()=>[...e[51]||(e[51]=[a(" Preisgrenze (Variable Strompreise) ",-1)])]),_:1}),!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(o(),b(u,{key:0,subtype:"warning"},{default:r(()=>[...e[52]||(e[52]=[a(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter schaltet der Speicher auf Eigenregelung. ",-1)])]),_:1})):s("",!0),i(g,{title:"Preisgrenze für Netzbezug statt Speicherentladung",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_limit_activated"],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateState("openWB/bat/config/price_limit_activated",n))},{help:r(()=>[...e[53]||(e[53]=[a(" Fällt der variable Strompreis unter diesen Wert, greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/price_limit"]*1e5,"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/bat/config/price_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"]),i(g,{title:"Preisgrenze für Speicherladung mit Netzbezug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_charge_activated"],"onUpdate:modelValue":e[16]||(e[16]=n=>t.updateState("openWB/bat/config/price_charge_activated",n))},{help:r(()=>[...e[54]||(e[54]=[a(" Fällt der variable Strompreis unter diesen Wert werden alle Speicher mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Speicherladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/charge_limit"]*1e5,"onUpdate:modelValue":e[17]||(e[17]=n=>t.updateState("openWB/bat/config/charge_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"])])):s("",!0)])):(o(),l("div",le,[i(u,{subtype:"info"},{default:r(()=>[...e[56]||(e[56]=[a(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])]),_:1})]))])):s("",!0)]))]),_:1}),i(y,{"form-name":"batteryConfigForm",onSave:e[18]||(e[18]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[19]||(e[19]=n=>t.$emit("reset")),onDefaults:e[20]||(e[20]=n=>t.$emit("defaults"))})])])}const he=N(D,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ActiveBatControlConfiguration.vue"]]);export{he as default}; diff --git a/web/settings/assets/ChargeLog--8Mbs6Fl.js b/web/settings/assets/ChargeLog-Bgx1bSon.js similarity index 98% rename from web/settings/assets/ChargeLog--8Mbs6Fl.js rename to web/settings/assets/ChargeLog-Bgx1bSon.js index c6b1e9a6d8..fca5289ec0 100644 --- a/web/settings/assets/ChargeLog--8Mbs6Fl.js +++ b/web/settings/assets/ChargeLog-Bgx1bSon.js @@ -1,3 +1,3 @@ -import{F as N,l as k,a8 as E,a9 as R}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as B,a0 as S,l as h,k as _,e as u,m as c,q as o,A as d,x as s,J as n,y as W,j as w,O as m,u as V}from"./vendor-JxinjXxC.js";import{C as y}from"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";k.add(E,R);const I={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:N},mixins:[y],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"Kilometerstand",field:"vehicle_odometer",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 Laden Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Laden Ende",field:"chargepoint_imported_at_end",sortable:!0},{label:"Entladene Energie",field:"data_exported_since_mode_switch",sortable:!0},{label:"Zähler Entladen Beginn",field:"chargepoint_exported_at_start",sortable:!0},{label:"Zähler Entladen Ende",field:"chargepoint_exported_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:"Entladene Energie",field:"exported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?null:`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:null},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),r=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_exported_at_start:t.chargepoint.exported_at_start,chargepoint_exported_at_end:t.chargepoint.exported_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_odometer:t.vehicle.odometer,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:r/1e3,time_end:isNaN(r)?null:this.dateTimeFormat.format(new Date(r)),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,data_exported_since_plugged:t.data.exported_since_plugged,data_exported_since_mode_switch:t.data.exported_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"','"Kilometerstand"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Geladene Energie"','"Entladene Energie"','"Reichweite"','"Zählerstand Laden Beginn"','"Zählerstand Laden Ende"','"Zählerstand Entladen Beginn"','"Zählerstand Entladen Ende"','"Energie seit Anstecken"','"Entladene 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_odometer==null?"":'"'+e.vehicle_odometer+'"',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_exported_since_mode_switch||0)/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.chargepoint_exported_at_start||0)/1e3,2),this.formatNumber((e.chargepoint_exported_at_end||0)/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2),this.formatNumber((e.data_exported_since_plugged||0)/1e3,2)])].map(e=>e.join(";")).join(` +import{F as N,l as k,a8 as E,a9 as R}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,a0 as S,l as h,k as _,e as u,m as c,q as o,A as d,x as s,J as n,y as W,j as w,O as m,u as V}from"./vendor-Bo8v-nQD.js";import{C as y}from"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";k.add(E,R);const I={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:N},mixins:[y],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"Kilometerstand",field:"vehicle_odometer",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 Laden Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Laden Ende",field:"chargepoint_imported_at_end",sortable:!0},{label:"Entladene Energie",field:"data_exported_since_mode_switch",sortable:!0},{label:"Zähler Entladen Beginn",field:"chargepoint_exported_at_start",sortable:!0},{label:"Zähler Entladen Ende",field:"chargepoint_exported_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:"Entladene Energie",field:"exported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?null:`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:null},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),r=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_exported_at_start:t.chargepoint.exported_at_start,chargepoint_exported_at_end:t.chargepoint.exported_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_odometer:t.vehicle.odometer,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:r/1e3,time_end:isNaN(r)?null:this.dateTimeFormat.format(new Date(r)),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,data_exported_since_plugged:t.data.exported_since_plugged,data_exported_since_mode_switch:t.data.exported_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"','"Kilometerstand"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Geladene Energie"','"Entladene Energie"','"Reichweite"','"Zählerstand Laden Beginn"','"Zählerstand Laden Ende"','"Zählerstand Entladen Beginn"','"Zählerstand Entladen Ende"','"Energie seit Anstecken"','"Entladene 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_odometer==null?"":'"'+e.vehicle_odometer+'"',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_exported_since_mode_switch||0)/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.chargepoint_exported_at_start||0)/1e3,2),this.formatNumber((e.chargepoint_exported_at_end||0)/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2),this.formatNumber((e.data_exported_since_plugged||0)/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(r=>({value:r,text:this.translateChargeMode(r)}));const e=t.map(r=>r.value);return t.unshift({value:e,text:"Alle"}),t},chargePointList(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const[,r]of Object.entries(t))e.push({value:r.id,text:r.name});if(e.length>1){const r=e.map(g=>g.value);e.unshift({value:r,text:"Alle"})}return e},vehicleList(){let t=this.getWildcardTopics("openWB/vehicle/+/info");var e=[];for(const r of Object.keys(t)){let g=parseInt(r.match(/\/([0-9]+)\/info$/)[1]);const l=this.$store.state.mqtt["openWB/vehicle/"+g+"/name"];e.push({value:g,text:l||`Fahrzeug ${g}`})}if(e.length>1){const r=e.map(g=>g.value);e.unshift({value:r,text:"Alle"})}return e}},beforeMount(){this.mqttTopics.push({topic:"openWB/log/"+this.mqttClientId+"/data",writeable:!1});const t=new Date;this.currentMonth=this.chargeLogDate=t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0")},mounted(){window.setTimeout(()=>{console.debug("initial charge log request"),console.debug("vehicle List on init:",JSON.stringify(this.vehicleList)),console.debug("charge Point List on init:",JSON.stringify(this.chargePointList)),this.requestChargeLog()},500)},methods:{cleanRequestData(){const t=r=>r==null?[]:Array.isArray(r)?r.length===1&&Array.isArray(r[0])?r[0]:r:[r],e=this.chargeLogRequestData.filter;if(e.vehicle.id=t(e.vehicle.id).filter(r=>r!==void 0),e.vehicle.chargemode=t(e.vehicle.chargemode).filter(r=>r!==void 0),e.chargepoint.id=t(e.chargepoint.id).filter(r=>r!==void 0),e.vehicle.id.length===0&&this.vehicleList.length>0){const r=this.vehicleList[0].value;e.vehicle.id=Array.isArray(r)?r:[r]}if(e.chargepoint.id.length===0&&this.chargePointList.length>0){const r=this.chargePointList[0].value;e.chargepoint.id=Array.isArray(r)?r:[r]}e.vehicle.prio===null&&(e.vehicle.prio=void 0),console.debug("cleaned request data",JSON.stringify(this.chargeLogRequestData))},requestChargeLog(){if(console.debug("requesting charge log with data:",JSON.stringify(this.chargeLogRequestData)),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 r=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?r+"kW":r},formatWh(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?r+"kWh":r},formatRange(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,0));return e?r+"km":r},formatOdometer(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,0));return e?r+"km":r},formatSoc(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,0));return e?r+"%":r},formatCosts(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,2));return e?r+"€":r},dashIfNotSet(t){return t==null||t==""||t==null?"-":t},getChargeModeClass(t){switch(t){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Eco":case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}}},F={class:"chargeLog"},T={key:0},U={key:1},A={name:"chargeLogForm"},M=["href"],O=["href"],P={key:1},Z={class:"td-end"},z={class:"td-end"},j=["title"],J=["aria-valuenow"],K=["aria-valuenow"],Y=["aria-valuenow"],G=["aria-valuenow"],H={key:1,class:"td-center"},Q={class:"td-end"},X={class:"no-wrap"},$={class:"no-wrap"},ee={class:"td-end"},te={class:"no-wrap"},ae={class:"no-wrap"},re={class:"td-end"},ie={class:"no-wrap"},se={class:"no-wrap"},oe={class:"td-end"},ne={class:"no-wrap"},le={class:"td-end"},de={class:"td-end"},ce={class:"td-end"},he={class:"td-end"},ge={key:0},_e={class:"row justify-content-center"},ue={ref:"downloadChargeLogLink",class:"hide"},me={class:"td-end"},pe={class:"td-end"},fe={class:"td-end"},be={class:"td-end"},ve={class:"td-end"};function Le(t,e,r,g,l,i){const p=h("openwb-base-alert"),C=h("openwb-base-text-input"),b=h("font-awesome-icon"),D=h("openwb-base-button-group-input"),f=h("openwb-base-select-input"),x=h("openwb-base-array-input"),v=h("openwb-base-card"),L=h("vue3-table-lite"),q=h("openwb-base-click-button");return _(),u("div",F,[t.$store.state.mqtt["openWB/general/extern"]===!0?(_(),u("div",T,[c(p,{subtype:"info"},{default:o(()=>[...e[13]||(e[13]=[d(' Das Ladeprotokoll ist nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Ladevorgänge in der openWB, die sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(_(),u("div",U,[s("form",A,[c(v,{title:"Filter"},{default:o(()=>[c(C,{modelValue:i.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>i.chargeLogDate=a),e[1]||(e[1]=a=>i.requestChargeLog())],title:"Zeitraum",subtype:"month",min:"2018-01","show-quick-buttons":!0,max:l.currentMonth},null,8,["modelValue","max"]),c(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:o(()=>[c(b,{icon:["fas","filter"]}),e[14]||(e[14]=d(" Erweiterte Optionen ",-1))]),default:o(()=>[c(D,{modelValue:l.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[e[2]||(e[2]=a=>l.chargeLogRequestData.filter.vehicle.prio=a),e[3]||(e[3]=a=>i.requestChargeLog())],title:"Priorität",buttons:[{buttonValue:null,text:"Alle",class:"btn-outline-info"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),c(f,{modelValue:l.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[e[4]||(e[4]=a=>l.chargeLogRequestData.filter.vehicle.chargemode=a),e[5]||(e[5]=a=>i.requestChargeLog())],title:"Lademodus",multiple:"",options:i.chargeModeList},{help:o(()=>[...e[15]||(e[15]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),c(f,{modelValue:l.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[e[6]||(e[6]=a=>l.chargeLogRequestData.filter.chargepoint.id=a),e[7]||(e[7]=a=>i.requestChargeLog())],title:"Ladepunkt",multiple:"",options:i.chargePointList},{help:o(()=>[...e[16]||(e[16]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),c(f,{modelValue:l.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[e[8]||(e[8]=a=>l.chargeLogRequestData.filter.vehicle.id=a),e[9]||(e[9]=a=>i.requestChargeLog())],title:"Fahrzeug",multiple:"",options:i.vehicleList},{help:o(()=>[...e[17]||(e[17]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),c(x,{modelValue:l.chargeLogRequestData.filter.vehicle.tag,"onUpdate:modelValue":[e[10]||(e[10]=a=>l.chargeLogRequestData.filter.vehicle.tag=a),e[11]||(e[11]=a=>i.requestChargeLog())],title:"ID-Tags"},{help:o(()=>[...e[18]||(e[18]=[d(" Es können mehrere Tags als Filter verwendet werden. ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1}),c(p,{subtype:"info"},{default:o(()=>[e[19]||(e[19]=d(" Das Ladeprotokoll kann monatsweise automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:i.downloadUrlMonth},n(i.downloadUrlMonth),9,M),e[20]||(e[20]=d()),e[21]||(e[21]=s("br",null,null,-1)),e[22]||(e[22]=d(" Das komplette Ladeprotokoll für das gesamte Jahr kann automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:i.downloadUrlYear},n(i.downloadUrlYear),9,O)]),_:1}),i.chargeLogRead?(_(),u("div",P,[c(L,{class:"charge-log-table","is-static-mode":!0,columns:i.chargeLogColumns,rows:i.chargeLogDataset,total:i.totalRecordCount,sortable:l.table.sortable,messages:l.table.messages,"page-options":l.table.pageOptions,limit:25,"is-slot-mode":!0},{time_begin:o(a=>[d(n(i.dashIfNotSet(a.value.time_begin)),1)]),time_end:o(a=>[d(n(i.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:o(a=>[s("div",Z,n(a.value.time_time_charged),1)]),data_costs:o(a=>[s("div",z,n(i.formatCosts(a.value.data_costs)),1)]),data_power_source:o(a=>[a.value.data_power_source?(_(),u("div",{key:0,class:"progress td-center",title:i.getProgressTitle(a.value.data_power_source)},[s("div",{class:"progress-bar bg-danger",role:"progressbar",style:m({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),s("div",{class:"progress-bar bg-primary",role:"progressbar",style:m({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),s("div",{class:"progress-bar bg-warning",role:"progressbar",style:m({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,Y),s("div",{class:"progress-bar bg-success",role:"progressbar",style:m({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G)],8,j)):(_(),u("div",H," - "))]),vehicle_chargemode:o(a=>[s("div",{class:w(["td-center tag",i.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:o(a=>[s("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(i.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:o(a=>[d(n(i.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_odometer:o(a=>[d(n(i.formatOdometer(a.value.vehicle_odometer)),1)]),vehicle_soc_at_start:o(a=>[s("div",Q,[s("span",X,n(i.formatSoc(a.value.vehicle_soc_at_start)),1),s("span",$," ("+n(i.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:o(a=>[s("div",ee,[s("span",te,n(i.formatSoc(a.value.vehicle_soc_at_end)),1),s("span",ae," ("+n(i.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:o(a=>[d(n(i.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:o(a=>[d(n(i.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:o(a=>[s("div",re,[s("span",ie,n(i.formatWh(a.value.data_imported_since_mode_switch)),1),s("span",se," ("+n(i.formatRange(a.value.data_range_charged))+") ",1)])]),data_exported_since_mode_switch:o(a=>[s("div",oe,[s("span",ne,n(i.formatWh(a.value.data_exported_since_mode_switch||0)),1)])]),chargepoint_imported_at_start:o(a=>[s("div",le,n(i.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:o(a=>[s("div",de,n(i.formatWh(a.value.chargepoint_imported_at_end)),1)]),chargepoint_exported_at_start:o(a=>[s("div",ce,n(i.formatWh(a.value.chargepoint_exported_at_start||0)),1)]),chargepoint_exported_at_end:o(a=>[s("div",he,n(i.formatWh(a.value.chargepoint_exported_at_end||0)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),i.totalRecordCount>0?(_(),u("div",ge,[s("div",_e,[c(q,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>i.downloadChargeLog())},{default:o(()=>[e[24]||(e[24]=d(" Als CSV exportieren ",-1)),c(b,{icon:["fas","download"]})]),_:1}),s("a",ue,null,512)]),e[25]||(e[25]=s("div",{class:"row"},[s("div",{class:"col"},[s("h2",null,"Summe")])],-1)),c(L,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:l.totals.columns,rows:i.chargeLogTotals,total:1,"is-slot-mode":!0},{time_charged:o(a=>[s("div",me,n(a.value.time_charged),1)]),imported_since_mode_switch:o(a=>[s("div",pe,n(i.formatWh(a.value.imported_since_mode_switch)),1)]),exported_since_mode_switch:o(a=>[s("div",fe,n(i.formatWh(a.value.exported_since_mode_switch||0)),1)]),range_charged:o(a=>[s("div",be,n(i.formatRange(a.value.range_charged)),1)]),costs:o(a=>[s("div",ve,n(i.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):V("",!0)])):(_(),W(p,{key:0,subtype:"info"},{default:o(()=>[...e[23]||(e[23]=[d(" Es wurden noch keine Daten abgerufen. ",-1)])]),_:1}))])]))])}const ke=B(I,[["render",Le],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{ke as default}; diff --git a/web/settings/assets/ChargePointInstallation-CN2wQ7QE.js b/web/settings/assets/ChargePointInstallation-C3IshOKk.js similarity index 95% rename from web/settings/assets/ChargePointInstallation-CN2wQ7QE.js rename to web/settings/assets/ChargePointInstallation-C3IshOKk.js index 2e7ea6c79b..dd70b91485 100644 --- a/web/settings/assets/ChargePointInstallation-CN2wQ7QE.js +++ b/web/settings/assets/ChargePointInstallation-C3IshOKk.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chargePoint-D0jx9kkN.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-DD1DIYBi.js","assets/index-BBXHIMfY.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/index-TrnuT1ez.css","assets/SystemVersion-ClVKOJRu.js","assets/dynamic-import-helper-BheWnx7M.js","assets/chargePoint-EU5FmrMq.js","assets/chargePoint-CJYrp8Wq.js","assets/chargePoint-BvH8hDwH.js","assets/chargePoint-B7gT4Y_a.js","assets/chargePoint-Xc8TRgTt.js","assets/chargePoint-DAf52UOu.js","assets/commands-Cm8ubOtl.js","assets/commands-BWnrMgVR.js"])))=>i.map(i=>d[i]); -import{F as M,l as j,aj as R,av as N,H as Z,aw as $,ax as H,P as ee,d as te,X as ne,ay as ae}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as L,C as J}from"./index-BBXHIMfY.js";import{S as oe}from"./SystemVersion-ClVKOJRu.js";import{_ as T}from"./dynamic-import-helper-BheWnx7M.js";import{_ as z,l as p,k as l,e as u,y as h,q as o,A as i,J as w,m as a,x as m,a1 as O,a2 as F,K as A,u as g,L as U,z as E,j as le,D as ie}from"./vendor-JxinjXxC.js";const se={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},re=z(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),ue={name:"ChargePointConfigFallback",mixins:[re]},de={class:"charge-point-config-fallback"},pe={key:1};function me(t,e,c,v,_,n){const y=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",de,[Object.keys(t.chargePoint.configuration).length==0?(l(),h(y,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+w(t.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",pe,[a(y,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+w(t.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":t.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=P=>t.updateConfiguration(P,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(y,{subtype:"info"},{default:o(()=>[m("pre",null,w(JSON.stringify(t.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const ge=z(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ce={props:{chargePoint:{type:Object,required:!0}}},be=z(ce,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),fe={name:"ChargePointCommandsFallback",mixins:[be]},he={class:"charge-point-commands-fallback"};function _e(t,e,c,v,_,n){return l(),u("div",he)}const ke=z(fe,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),we={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-D0jx9kkN.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-EU5FmrMq.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11])),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-CJYrp8Wq.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-BvH8hDwH.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-B7gT4Y_a.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-Xc8TRgTt.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11])),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-DAf52UOu.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/chargePoint.vue`,3),errorComponent:ge})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-Cm8ubOtl.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-BWnrMgVR.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/commands.vue`,3),errorComponent:ke})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ve(t,e,c,v,_,n){const y=p("openwb-base-heading");return l(),u(A,null,[a(y,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>n.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(y,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const ye=z(we,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);j.add(R,N,Z,$,H);const Ce={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:M},mixins:[J],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(t){this.$emit("update:modelValue",t)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(t){this.showRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Pe={key:0},Ve={key:1},Le={key:2},Be={key:1},We={key:2};function Ae(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-avatar"),C=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(y,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removePlan},{default:o(()=>[i(' Willst Du den Autolock Zeitplan "'+w(n.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:n.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:le(["pill clickable",n.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=E(k=>n.plan.active=!n.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+w(n.plan.time[0])+" - "+w(n.plan.time[1])+" ",1),n.plan.frequency.selected=="once"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-day"]}),i(" "+w(t.formatDate(n.plan.frequency.once[0])==t.formatDate(n.plan.frequency.once[1])?t.formatDate(n.plan.frequency.once[0]):t.formatDate(n.plan.frequency.once[0])+" - "+t.formatDate(n.plan.frequency.once[1])),1)])):g("",!0),n.plan.frequency.selected=="daily"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("span",Le,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Be,[a(P,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=E(k=>n.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(P,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=E(k=>n.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(C,{modelValue:n.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>n.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:n.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>n.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>n.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>n.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:n.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>n.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),n.plan.frequency.selected=="once"?(l(),h(C,{key:0,modelValue:n.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>n.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),n.plan.frequency.selected=="once"?(l(),h(C,{key:1,modelValue:n.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>n.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:n.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("div",We,[(l(!0),u(A,null,U(t.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:n.plan.frequency.weekly[k],"onUpdate:modelValue":V=>n.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const ze=z(Ce,[["render",Ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);j.add(te,R,N,Z,$,H,ne,ae);const Ie={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:M,FontAwesomeLayers:ee,OpenwbChargePointProxy:ye,TemplateAutoLockPlan:ze},mixins:[J,oe],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!0},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ocpp/config",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/chargepoints",writeable:!1},{topic:"openWB/system/configurable/chargepoints_internal",writeable:!1}],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,v]of Object.entries(t))(v&&typeof v=="object"&&v.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=v);return e}},chargePointTemplates(){const t=this.getWildcardTopics("openWB/chargepoint/template/+");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},chargePointTemplateList:{get(){let t=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),v=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;t.push({value:c,text:v})}),t}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(t,e){t.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(t,e){this.showChargePointModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(t){return this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"].name:"Ladepunkt "+t},getChargePointTemplateIndex(t){return parseInt(t.match(/([^/]+)$/)[0])},getChargePointTemplateName(t){return this.$store.state.mqtt["openWB/chargepoint/template/"+t]?this.$store.state.mqtt["openWB/chargepoint/template/"+t].name:"Profil "+t},addChargePointTemplate(t,e){t.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(t,e){t.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(t,e){this.showChargePointTemplateModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(t){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(t)}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},De={class:"chargePointInstallation"},Ue={name:"chargePointInstallationForm"},Ee=["href"],Se={key:0},xe={key:2},qe={key:0},Te={key:0,class:"border-secondary"},Oe={key:0},Fe={key:1},Me={key:1},je={key:0},Re={key:0},Ne={key:1},Ze={key:2},$e={key:1},He={key:0},Je={key:2},Ge={key:4};function Qe(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-alert"),C=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),D=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(y,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Willst Du den Ladepunkt "'+w(n.getChargePointName(_.modalChargePointIndex))+'" (ID: '+w(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(y,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Willst Du das Ladepunkt-Profil "'+w(n.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+w(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",De,[m("form",Ue,[a(D,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(P,{subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1)),m("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:konfiguration:ladepunkte:openwb`,target:"_blank",rel:"noopener noreferrer"},"Wiki",8,Ee),e[9]||(e[9]=i(" . ",-1))]),_:1}),(l(!0),u(A,null,U(n.installedChargePoints,(s,d)=>(l(),h(D,{key:d,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(C,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>n.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":r=>t.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[d].type},null,8,["model-value"]),s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Se,[a(I,{title:"Ladepunkt-Profil",options:n.chargePointTemplateList,"model-value":t.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>t.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s?.ocpp_chargebox_id,"onUpdate:modelValue":r=>t.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[10]||(e[10]=[i(" Bitte gib hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):g("",!0),e[16]||(e[16]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>n.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1)&&s?.charging_type!=="DC"?(l(),u("div",xe,[e[15]||(e[15]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[11]||(e[11]=[i(" Hardware-Optionen ",-1)])]),_:1}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.auto_phase_switch_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.control_pilot_interruption_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[12]||(e[12]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[13]||(e[13]=[i(" Elektrischer Anschluss ",-1)])]),_:1}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s?.connected_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s?.phase_1,"onUpdate:modelValue":r=>t.updateState(d,r,"phase_1")},{help:o(()=>[...e[14]||(e[14]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedChargePoints).length>0?(l(),u("hr",qe)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:n.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":n.addChargePoint},{help:o(()=>[...e[17]||(e[17]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),t.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",Te)):g("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(D,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[18]||(e[18]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:n.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",Oe,[a(P,{subtype:"info"},{default:o(()=>[...e[19]||(e[19]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),u("div",Fe,[(l(!0),u(A,null,U(n.chargePointTemplates,(s,d)=>(l(),h(D,{key:d,title:`${s.name} (ID: ${n.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>n.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1},8,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(C,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>n.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>t.updateState(d,r,"name")},ie({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[20]||(e[20]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),n.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>t.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[40]||(e[40]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Me,[a(k,null,{default:o(()=>[...e[21]||(e[21]=[i(" Zugangskontrolle ",-1)])]),_:1}),s.valid_tags.length>0?(l(),u("div",je,[a(P,{subtype:"info"},{default:o(()=>[e[23]||(e[23]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[22]||(e[22]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[24]||(e[24]=i(". ",-1)),t.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Re," Ladepunkte mit diesem Profil werden automatisch beim Abstecken eines Fahrzeugs gesperrt und müssen für den nächsten Ladevorgang mit einem ID-Tag entsperrt werden. ")):t.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(l(),u("div",Ne," Die Zugangskontrolle ist aktuell deaktiviert. ")):(l(),u("div",Ze," Die Zugangskontrolle ist aktiviert, jedoch werden Ladepunkte mit diesem Profil nicht automatisch nach dem Abstecken eines Fahrzeugs gesperrt. "))]),_:2},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":s.valid_tags},{help:o(()=>[...e[25]||(e[25]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Ladepunkt-Profil zugeordnet sind. Nur mit diesen ID-Tags können Ladepunkte, denen dieses Profil zugeordnet ist, entsperrt werden. ",-1)])]),_:1},8,["model-value"])])):(l(),u("div",$e,[a(P,{subtype:"info"},{default:o(()=>[e[27]||(e[27]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[26]||(e[26]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[28]||(e[28]=i(".",-1)),e[29]||(e[29]=m("br",null,null,-1)),e[30]||(e[30]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})]))])),e[41]||(e[41]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[31]||(e[31]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1}),a(P,{subtype:"info"},{default:o(()=>[e[32]||(e[32]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[33]||(e[33]=m("br",null,null,-1)),e[34]||(e[34]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",He," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2},1024),s.charging_type==="AC"||n.dcChargingEnabled!==!0?(l(),u("div",Je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":t.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>t.updateState(d,t.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Ge,[e[39]||(e[39]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[35]||(e[35]=[i(" Sperren nach Uhrzeit (Komplettsperrung - Freischaltung per Identifikation möglich) ",-1)])]),_:1}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.active")},{help:o(()=>[...e[36]||(e[36]=[i(" Wird Sperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist aber eine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich, wenn Identifikation aktiviert ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[37]||(e[37]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(C,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:E(r=>n.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:o(()=>[e[38]||(e[38]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2},1024)])),(l(!0),u(A,null,U(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":S=>t.updateState(d,S,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=S=>t.$emit("sendCommand",S))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[5]||(e[5]=s=>t.$emit("reset")),onDefaults:e[6]||(e[6]=s=>t.$emit("defaults"))})])])],64)}const Xe=z(Ie,[["render",Qe],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),at=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{re as C,be as a,Xe as b,at as c}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chargePoint-BsAFaJWO.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/chargePoint-Cu68pCda.js","assets/chargePoint-BxYclOKe.js","assets/chargePoint-DHvT86qo.js","assets/chargePoint-CLglsVkD.js","assets/chargePoint-mAO4xa7T.js","assets/chargePoint-f_Y7TEQC.js","assets/commands-Dy4aruCr.js","assets/commands-CZXUCdhE.js"])))=>i.map(i=>d[i]); +import{F as M,l as j,aj as R,av as N,H as Z,aw as $,ax as H,P as ee,d as te,X as ne,ay as ae}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as L,C as J}from"./index-CyH1Au4V.js";import{S as oe}from"./SystemVersion-DQAfG1DR.js";import{_ as T}from"./dynamic-import-helper-BheWnx7M.js";import{_ as z,l as p,k as l,e as u,y as h,q as o,A as i,J as w,m as a,x as m,a1 as O,a2 as F,K as A,u as g,L as U,z as E,j as le,D as ie}from"./vendor-Bo8v-nQD.js";const se={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},re=z(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),ue={name:"ChargePointConfigFallback",mixins:[re]},de={class:"charge-point-config-fallback"},pe={key:1};function me(t,e,c,v,_,n){const y=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",de,[Object.keys(t.chargePoint.configuration).length==0?(l(),h(y,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+w(t.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",pe,[a(y,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+w(t.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":t.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=P=>t.updateConfiguration(P,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(y,{subtype:"info"},{default:o(()=>[m("pre",null,w(JSON.stringify(t.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const ge=z(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ce={props:{chargePoint:{type:Object,required:!0}}},be=z(ce,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),fe={name:"ChargePointCommandsFallback",mixins:[be]},he={class:"charge-point-commands-fallback"};function _e(t,e,c,v,_,n){return l(),u("div",he)}const ke=z(fe,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),we={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-BsAFaJWO.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-Cu68pCda.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11])),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-BxYclOKe.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-DHvT86qo.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-CLglsVkD.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-mAO4xa7T.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11])),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-f_Y7TEQC.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/chargePoint.vue`,3),errorComponent:ge})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-Dy4aruCr.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-CZXUCdhE.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/commands.vue`,3),errorComponent:ke})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ve(t,e,c,v,_,n){const y=p("openwb-base-heading");return l(),u(A,null,[a(y,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>n.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(y,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const ye=z(we,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);j.add(R,N,Z,$,H);const Ce={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:M},mixins:[J],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(t){this.$emit("update:modelValue",t)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(t){this.showRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Pe={key:0},Ve={key:1},Le={key:2},Be={key:1},We={key:2};function Ae(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-avatar"),C=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(y,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removePlan},{default:o(()=>[i(' Willst Du den Autolock Zeitplan "'+w(n.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:n.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:le(["pill clickable",n.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=E(k=>n.plan.active=!n.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+w(n.plan.time[0])+" - "+w(n.plan.time[1])+" ",1),n.plan.frequency.selected=="once"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-day"]}),i(" "+w(t.formatDate(n.plan.frequency.once[0])==t.formatDate(n.plan.frequency.once[1])?t.formatDate(n.plan.frequency.once[0]):t.formatDate(n.plan.frequency.once[0])+" - "+t.formatDate(n.plan.frequency.once[1])),1)])):g("",!0),n.plan.frequency.selected=="daily"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("span",Le,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Be,[a(P,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=E(k=>n.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(P,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=E(k=>n.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(C,{modelValue:n.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>n.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:n.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>n.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>n.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>n.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:n.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>n.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),n.plan.frequency.selected=="once"?(l(),h(C,{key:0,modelValue:n.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>n.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),n.plan.frequency.selected=="once"?(l(),h(C,{key:1,modelValue:n.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>n.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:n.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("div",We,[(l(!0),u(A,null,U(t.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:n.plan.frequency.weekly[k],"onUpdate:modelValue":V=>n.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const ze=z(Ce,[["render",Ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);j.add(te,R,N,Z,$,H,ne,ae);const Ie={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:M,FontAwesomeLayers:ee,OpenwbChargePointProxy:ye,TemplateAutoLockPlan:ze},mixins:[J,oe],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!0},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ocpp/config",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/chargepoints",writeable:!1},{topic:"openWB/system/configurable/chargepoints_internal",writeable:!1}],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,v]of Object.entries(t))(v&&typeof v=="object"&&v.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=v);return e}},chargePointTemplates(){const t=this.getWildcardTopics("openWB/chargepoint/template/+");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},chargePointTemplateList:{get(){let t=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),v=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;t.push({value:c,text:v})}),t}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(t,e){t.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(t,e){this.showChargePointModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(t){return this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"].name:"Ladepunkt "+t},getChargePointTemplateIndex(t){return parseInt(t.match(/([^/]+)$/)[0])},getChargePointTemplateName(t){return this.$store.state.mqtt["openWB/chargepoint/template/"+t]?this.$store.state.mqtt["openWB/chargepoint/template/"+t].name:"Profil "+t},addChargePointTemplate(t,e){t.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(t,e){t.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(t,e){this.showChargePointTemplateModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(t){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(t)}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},De={class:"chargePointInstallation"},Ue={name:"chargePointInstallationForm"},Ee=["href"],Se={key:0},xe={key:2},qe={key:0},Te={key:0,class:"border-secondary"},Oe={key:0},Fe={key:1},Me={key:1},je={key:0},Re={key:0},Ne={key:1},Ze={key:2},$e={key:1},He={key:0},Je={key:2},Ge={key:4};function Qe(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-alert"),C=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),D=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(y,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Willst Du den Ladepunkt "'+w(n.getChargePointName(_.modalChargePointIndex))+'" (ID: '+w(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(y,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Willst Du das Ladepunkt-Profil "'+w(n.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+w(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",De,[m("form",Ue,[a(D,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(P,{subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1)),m("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:konfiguration:ladepunkte:openwb`,target:"_blank",rel:"noopener noreferrer"},"Wiki",8,Ee),e[9]||(e[9]=i(" . ",-1))]),_:1}),(l(!0),u(A,null,U(n.installedChargePoints,(s,d)=>(l(),h(D,{key:d,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(C,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>n.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":r=>t.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[d].type},null,8,["model-value"]),s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Se,[a(I,{title:"Ladepunkt-Profil",options:n.chargePointTemplateList,"model-value":t.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>t.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s?.ocpp_chargebox_id,"onUpdate:modelValue":r=>t.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[10]||(e[10]=[i(" Bitte gib hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):g("",!0),e[16]||(e[16]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>n.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1)&&s?.charging_type!=="DC"?(l(),u("div",xe,[e[15]||(e[15]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[11]||(e[11]=[i(" Hardware-Optionen ",-1)])]),_:1}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.auto_phase_switch_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.control_pilot_interruption_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[12]||(e[12]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[13]||(e[13]=[i(" Elektrischer Anschluss ",-1)])]),_:1}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s?.connected_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s?.phase_1,"onUpdate:modelValue":r=>t.updateState(d,r,"phase_1")},{help:o(()=>[...e[14]||(e[14]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedChargePoints).length>0?(l(),u("hr",qe)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:n.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":n.addChargePoint},{help:o(()=>[...e[17]||(e[17]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),t.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",Te)):g("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(D,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[18]||(e[18]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:n.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",Oe,[a(P,{subtype:"info"},{default:o(()=>[...e[19]||(e[19]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),u("div",Fe,[(l(!0),u(A,null,U(n.chargePointTemplates,(s,d)=>(l(),h(D,{key:d,title:`${s.name} (ID: ${n.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>n.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1},8,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(C,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>n.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>t.updateState(d,r,"name")},ie({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[20]||(e[20]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),n.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>t.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[40]||(e[40]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Me,[a(k,null,{default:o(()=>[...e[21]||(e[21]=[i(" Zugangskontrolle ",-1)])]),_:1}),s.valid_tags.length>0?(l(),u("div",je,[a(P,{subtype:"info"},{default:o(()=>[e[23]||(e[23]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[22]||(e[22]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[24]||(e[24]=i(". ",-1)),t.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Re," Ladepunkte mit diesem Profil werden automatisch beim Abstecken eines Fahrzeugs gesperrt und müssen für den nächsten Ladevorgang mit einem ID-Tag entsperrt werden. ")):t.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(l(),u("div",Ne," Die Zugangskontrolle ist aktuell deaktiviert. ")):(l(),u("div",Ze," Die Zugangskontrolle ist aktiviert, jedoch werden Ladepunkte mit diesem Profil nicht automatisch nach dem Abstecken eines Fahrzeugs gesperrt. "))]),_:2},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":s.valid_tags},{help:o(()=>[...e[25]||(e[25]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Ladepunkt-Profil zugeordnet sind. Nur mit diesen ID-Tags können Ladepunkte, denen dieses Profil zugeordnet ist, entsperrt werden. ",-1)])]),_:1},8,["model-value"])])):(l(),u("div",$e,[a(P,{subtype:"info"},{default:o(()=>[e[27]||(e[27]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[26]||(e[26]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[28]||(e[28]=i(".",-1)),e[29]||(e[29]=m("br",null,null,-1)),e[30]||(e[30]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})]))])),e[41]||(e[41]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[31]||(e[31]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1}),a(P,{subtype:"info"},{default:o(()=>[e[32]||(e[32]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[33]||(e[33]=m("br",null,null,-1)),e[34]||(e[34]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",He," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2},1024),s.charging_type==="AC"||n.dcChargingEnabled!==!0?(l(),u("div",Je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":t.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>t.updateState(d,t.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Ge,[e[39]||(e[39]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[35]||(e[35]=[i(" Sperren nach Uhrzeit (Komplettsperrung - Freischaltung per Identifikation möglich) ",-1)])]),_:1}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.active")},{help:o(()=>[...e[36]||(e[36]=[i(" Wird Sperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist aber eine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich, wenn Identifikation aktiviert ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[37]||(e[37]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(C,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:E(r=>n.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:o(()=>[e[38]||(e[38]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2},1024)])),(l(!0),u(A,null,U(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":S=>t.updateState(d,S,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=S=>t.$emit("sendCommand",S))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[5]||(e[5]=s=>t.$emit("reset")),onDefaults:e[6]||(e[6]=s=>t.$emit("defaults"))})])])],64)}const Xe=z(Ie,[["render",Qe],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),at=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{re as C,be as a,Xe as b,at as c}; diff --git a/web/settings/assets/Chart-CnTslwyz.js b/web/settings/assets/Chart-q4SmWErO.js similarity index 98% rename from web/settings/assets/Chart-CnTslwyz.js rename to web/settings/assets/Chart-q4SmWErO.js index 16c9319770..ea8cdf164b 100644 --- a/web/settings/assets/Chart-CnTslwyz.js +++ b/web/settings/assets/Chart-q4SmWErO.js @@ -1 +1 @@ -import{F as H,l as B,X as V,a4 as z,a3 as M,a2 as O,aa as j,ab as q}from"./vendor-fortawesome-DD1DIYBi.js";import{C as E}from"./index-BBXHIMfY.js";import{L as N,g as P,C as F,p as K,a as Z,b as J,c as X,B as G,f as U,P as Y,d as Q,T as ee,i as te,e as ae}from"./vendor-chartjs-CfpTrYqu.js";import{_ as D,k as s,e as l,K as f,L as _,j as w,x as g,J as v,l as d,y as b,m as p,q as h,A as x,u as A,n as re}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./vendor-luxon-BDx6lZXm.js";const ne={name:"LegendStandard",props:{items:{type:Array,default:()=>[]}},emits:["toggle"]},ie={class:"custom-legend d-flex flex-wrap justify-content-center"},oe=["onClick"],se={width:"20",height:"6",class:"mr-1"},le=["stroke","stroke-dasharray"];function ce(e,t,a,n,i,r){return s(),l("div",ie,[(s(!0),l(f,null,_(a.items,o=>(s(),l("div",{key:o.label,class:w(["legend-item d-flex align-items-center m-1",{"legend-item-hidden":o.hidden}]),role:"button",onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",se,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,le)])),g("span",{class:w(["legend-label",{"text-line-through":o.hidden}])},v(o.label),3)],10,oe))),128))])}const de=D(ne,[["render",ce],["__scopeId","data-v-40ecb731"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendStandard.vue"]]),ue={name:"LegendCategory",props:{label:{type:String,default:""},items:{type:Array,default:()=>[]}},emits:["toggle"]},pe={class:"dropdown m-1"},he={class:"btn btn-secondary dropdown-toggle",type:"button","data-toggle":"dropdown","aria-expanded":"false"},ge={class:"dropdown-menu"},be=["onClick"],me={width:"20",height:"6",class:"mr-1"},ye=["stroke","stroke-dasharray"];function fe(e,t,a,n,i,r){return s(),l("div",pe,[g("button",he,v(a.label),1),g("ul",ge,[(s(!0),l(f,null,_(a.items,o=>(s(),l("li",{key:o.label,class:w(["dropdown-item",{"legend-item-hidden":o.hidden}]),onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",me,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,ye)])),g("span",{class:w({"text-line-through":o.hidden})},v(o.label),3)],10,be))),128))])])}const _e=D(ue,[["render",fe],["__scopeId","data-v-1ce49a26"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategory.vue"]]),ke={name:"LegendCategoriesGroup",components:{LegendCategory:_e},props:{categorizedItems:{type:Object,default:()=>({chargepoint:[],vehicle:[],component:[]})}},emits:["toggle"],data(){return{categoryLabels:{component:"Komponenten",chargepoint:"Ladepunkte",vehicle:"Fahrzeuge"}}}},xe={class:"d-flex flex-wrap justify-content-center"};function ve(e,t,a,n,i,r){const o=d("LegendCategory");return s(),l("div",xe,[(s(!0),l(f,null,_(a.categorizedItems,(c,k)=>(s(),b(o,{key:k,label:i.categoryLabels[k],items:c,onToggle:t[0]||(t[0]=y=>e.$emit("toggle",y))},null,8,["label","items"]))),128))])}const De=D(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategoriesGroup.vue"]]),Ce={name:"ChartLegend",components:{LegendCategoriesGroup:De,LegendStandard:de},props:{chart:{type:Object,default:()=>null},range:{type:String,default:"day"}},computed:{legendItems(){if(!this.chart||!this.chart.data)return[];const e=this.$store.state.chartLegend.hiddenDatasets;return this.chart.data.datasets.map((t,a)=>({label:t.label,index:a,category:t.category||"component",hidden:e.includes(t.label),borderColor:t.borderColor,borderDash:t.borderDash}))},categorizedLegendItems(){if(!this.chart)return{chargepoint:[],vehicle:[],component:[]};let e={};const t=this.$store.state.chartLegend.hiddenDatasets;return this.range==="day"?e={chargepoint:[],vehicle:[],component:[]}:e={chargepoint:[],component:[]},(this.chart?.data?.datasets||[]).forEach((n,i)=>{const r=n.category||"component";e[r]||(e[r]=[]),e[r].push({label:n.label,index:i,hidden:t.includes(n.label),borderColor:n.borderColor,borderDash:n.borderDash})}),e},showStandardLegend(){return this.legendItems.length<12}},watch:{chart(e){this.defaultHiddenDatasets(e)}},mounted(){this.defaultHiddenDatasets(this.chart)},methods:{toggleDataset(e){if(!this.chart)return;const t=this.chart.data.datasets.find(a=>a.label===e);t&&(this.$store.commit("chartLegend/toggleDataset",t.label),this.applyHiddenDatasetsToChart())},defaultHiddenDatasets(e){if(e&&e.data&&e.data.datasets.length){const t=e.data.datasets.filter(a=>a.hidden).map(a=>a.label);this.$store.commit("chartLegend/setHiddenDatasets",t),this.applyHiddenDatasetsToChart()}},applyHiddenDatasetsToChart(){if(!this.chart||!this.chart.data)return;const e=this.$store.state.chartLegend.hiddenDatasets;this.chart.data.datasets.forEach(t=>{t.hidden=e.includes(t.label)}),this.chart.update()}}};function we(e,t,a,n,i,r){const o=d("LegendStandard"),c=d("LegendCategoriesGroup");return r.showStandardLegend?(s(),b(o,{key:a.range,items:r.legendItems,onToggle:r.toggleDataset},null,8,["items","onToggle"])):(s(),b(c,{key:1,"categorized-items":r.categorizedLegendItems,onToggle:r.toggleDataset},null,8,["categorized-items","onToggle"]))}const Ae=D(Ce,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/ChartLegend.vue"]]);B.add(V,z,M,O,j,q);F.register(K,Z,J,X,G,U,Y,Q,ee,te,ae);const Se={name:"OpenwbChartView",components:{ChartjsLine:N,FontAwesomeIcon:H,ChartLegend:Ae},mixins:[E],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{chartInstance:null,mqttTopics:[{topic:"openWB/bat/+/get/power",writeable:!1},{topic:"openWB/bat/get/power",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1},{topic:"openWB/counter/+/get/power",writeable:!1},{topic:"openWB/counter/set/home_consumption",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/log/daily/#",writeable:!1},{topic:"openWB/log/monthly/#",writeable:!1},{topic:"openWB/log/yearly/#",writeable:!1},{topic:"openWB/pv/+/get/power",writeable:!1},{topic:"openWB/pv/get/power",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",category:"component",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",category:"component",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",category:"component",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"chargepoint",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",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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",category:"vehicle",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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)",category:"component",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)",category:"component",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)",category:"component",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:!1},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return Object.keys(e).forEach(t=>{Object.keys(e[t]).forEach(a=>{this.objectAccessible(t,a)||(console.debug(`Removing totals for ${t} - ${a} due to missing access rights.`),delete e[t][a])}),Object.keys(e[t]).length===0&&(console.debug(`Removing empty totals for ${t}.`),delete e[t])}),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);let t={};return JSON.parse(JSON.stringify(e)).forEach(a=>{a.timestamp=a.timestamp*1e3,t[a.timestamp]=a}),Object.values(t)}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}},objectAccessible(){return(e,t)=>{let a;const n=parseInt(t.match(/\d+$/)?.[0]||"");switch(e){case"hc":a="openWB/counter/set/home_consumption";break;case"cp":t=="all"?a="openWB/chargepoint/get/power":isNaN(n)||(a=`openWB/chargepoint/${n}/config`);break;case"ev":isNaN(n)||(a=`openWB/vehicle/${n}/info`);break;case"pv":t=="all"?a="openWB/pv/get/power":isNaN(n)||(a=`openWB/pv/${n}/get/power`);break;case"bat":t=="all"?a="openWB/bat/get/power":isNaN(n)||(a=`openWB/bat/${n}/get/power`);break;case"counter":isNaN(n)||(a=`openWB/counter/${n}/get/power`);break}return a?this.$store.state.mqtt[a]!==void 0:!0}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},updated(){this.$nextTick(()=>{this.$refs.myChart?.chart&&(this.chartInstance=this.$refs.myChart.chart)})},mounted(){this.init(),re(()=>{this.chartInstance=this.$refs.myChart?.chart})},methods:{getChartInstance(){return this.$refs.myChart?this.$refs.myChart.chart:null},refreshLegend(){this.$nextTick(()=>{this.chartInstance=this.$refs.myChart?.chart})},handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=P(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var o="",c="";switch(this.chartRange){case"month":o=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),c="day";break;case"year":o=r.substring(0,4)+"-"+r.substring(4,6),c="month";break}this.blockChartInit=!0,this.chartDate=o,this.chartRange=c},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":i=["Speicher"],a==="soc"&&i.push("SoC");break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"];break}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.category=this.datasetTemplates[i].category,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){if(!this.objectAccessible(e,t)){console.debug("skipping dataset due to missing rights:",e,t,a);return}let n;this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&this.addDataset(e,t,a,i)}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm?.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},Re={class:"chart"},Ie={key:0},Le={key:1},We={name:"chartFilterForm"},Te={key:1},$e={key:1},He={class:"openwb-chart"},Be={name:"chartTotalsForm"},Ve={key:1};function ze(e,t,a,n,i,r){const o=d("openwb-base-alert"),c=d("openwb-base-select-input"),k=d("openwb-base-text-input"),y=d("openwb-base-card"),R=d("chartjs-line"),I=d("ChartLegend"),L=d("font-awesome-icon"),W=d("openwb-base-heading");return s(),l("div",Re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),l("div",Ie,[p(o,{subtype:"info"},{default:h(()=>[...t[3]||(t[3]=[x(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(s(),l("div",Le,[p(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:h(()=>[g("form",We,[p(c,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=m=>i.chartRange=m),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),p(k,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=m=>r.chartDate=m),t[2]||(t[2]=m=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[4]||(t[4]=[x(" Daten werden geladen... ",-1)])]),_:1})):(s(),l("div",Te,[r.chartDataHasEntries?(s(),l("div",$e,[p(y,{title:"Diagramm",collapsible:!0,collapsed:!1,onExpanded:r.refreshLegend},{default:h(()=>[g("div",He,[p(R,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])]),i.chartInstance?(s(),b(I,{key:i.chartDatasets.datasets.length,ref:"chartLegend",range:i.chartRange,chart:r.getChartInstance()},null,8,["range","chart"])):A("",!0)]),_:1},8,["onExpanded"]),p(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:h(()=>[g("form",Be,[(s(!0),l(f,null,_(Object.fromEntries(Object.entries(r.chartTotals).filter(([m,u])=>Object.keys(u).length>0)),(m,u)=>(s(),b(y,{key:u,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(u)},{header:h(()=>[p(L,{icon:r.getCardIcon(u)},null,8,["icon"]),x(" "+v(r.getTotalsLabel(u)),1)]),default:h(()=>[(s(!0),l(f,null,_(m,(T,C)=>(s(),l("div",{key:C},[u!=="hc"?(s(),b(W,{key:0},{default:h(()=>[x(v(r.getTotalsLabel(u,C)),1)]),_:2},1024)):A("",!0),(s(!0),l(f,null,_(T,($,S)=>(s(),l("div",{key:S},[p(k,{title:r.getTotalsLabel(u,C,S),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber($/1e3,3)},null,8,["title","model-value"])]))),128)),C=="all"&&u!="hc"?(s(),l("hr",Ve)):A("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[5]||(t[5]=[x(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])]),_:1}))]))]))])}const Ke=D(Se,[["render",ze],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{Ke as default}; +import{F as H,l as B,X as V,a4 as z,a3 as M,a2 as O,aa as j,ab as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as E}from"./index-CyH1Au4V.js";import{L as N,g as P,C as F,p as K,a as Z,b as J,c as X,B as G,f as U,P as Y,d as Q,T as ee,i as te,e as ae}from"./vendor-chartjs-0RUe1kvq.js";import{_ as D,k as s,e as l,K as f,L as _,j as w,x as g,J as v,l as d,y as b,m as p,q as h,A as x,u as A,n as re}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";const ne={name:"LegendStandard",props:{items:{type:Array,default:()=>[]}},emits:["toggle"]},ie={class:"custom-legend d-flex flex-wrap justify-content-center"},oe=["onClick"],se={width:"20",height:"6",class:"mr-1"},le=["stroke","stroke-dasharray"];function ce(e,t,a,n,i,r){return s(),l("div",ie,[(s(!0),l(f,null,_(a.items,o=>(s(),l("div",{key:o.label,class:w(["legend-item d-flex align-items-center m-1",{"legend-item-hidden":o.hidden}]),role:"button",onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",se,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,le)])),g("span",{class:w(["legend-label",{"text-line-through":o.hidden}])},v(o.label),3)],10,oe))),128))])}const de=D(ne,[["render",ce],["__scopeId","data-v-40ecb731"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendStandard.vue"]]),ue={name:"LegendCategory",props:{label:{type:String,default:""},items:{type:Array,default:()=>[]}},emits:["toggle"]},pe={class:"dropdown m-1"},he={class:"btn btn-secondary dropdown-toggle",type:"button","data-toggle":"dropdown","aria-expanded":"false"},ge={class:"dropdown-menu"},be=["onClick"],me={width:"20",height:"6",class:"mr-1"},ye=["stroke","stroke-dasharray"];function fe(e,t,a,n,i,r){return s(),l("div",pe,[g("button",he,v(a.label),1),g("ul",ge,[(s(!0),l(f,null,_(a.items,o=>(s(),l("li",{key:o.label,class:w(["dropdown-item",{"legend-item-hidden":o.hidden}]),onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",me,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,ye)])),g("span",{class:w({"text-line-through":o.hidden})},v(o.label),3)],10,be))),128))])])}const _e=D(ue,[["render",fe],["__scopeId","data-v-1ce49a26"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategory.vue"]]),ke={name:"LegendCategoriesGroup",components:{LegendCategory:_e},props:{categorizedItems:{type:Object,default:()=>({chargepoint:[],vehicle:[],component:[]})}},emits:["toggle"],data(){return{categoryLabels:{component:"Komponenten",chargepoint:"Ladepunkte",vehicle:"Fahrzeuge"}}}},xe={class:"d-flex flex-wrap justify-content-center"};function ve(e,t,a,n,i,r){const o=d("LegendCategory");return s(),l("div",xe,[(s(!0),l(f,null,_(a.categorizedItems,(c,k)=>(s(),b(o,{key:k,label:i.categoryLabels[k],items:c,onToggle:t[0]||(t[0]=y=>e.$emit("toggle",y))},null,8,["label","items"]))),128))])}const De=D(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategoriesGroup.vue"]]),Ce={name:"ChartLegend",components:{LegendCategoriesGroup:De,LegendStandard:de},props:{chart:{type:Object,default:()=>null},range:{type:String,default:"day"}},computed:{legendItems(){if(!this.chart||!this.chart.data)return[];const e=this.$store.state.chartLegend.hiddenDatasets;return this.chart.data.datasets.map((t,a)=>({label:t.label,index:a,category:t.category||"component",hidden:e.includes(t.label),borderColor:t.borderColor,borderDash:t.borderDash}))},categorizedLegendItems(){if(!this.chart)return{chargepoint:[],vehicle:[],component:[]};let e={};const t=this.$store.state.chartLegend.hiddenDatasets;return this.range==="day"?e={chargepoint:[],vehicle:[],component:[]}:e={chargepoint:[],component:[]},(this.chart?.data?.datasets||[]).forEach((n,i)=>{const r=n.category||"component";e[r]||(e[r]=[]),e[r].push({label:n.label,index:i,hidden:t.includes(n.label),borderColor:n.borderColor,borderDash:n.borderDash})}),e},showStandardLegend(){return this.legendItems.length<12}},watch:{chart(e){this.defaultHiddenDatasets(e)}},mounted(){this.defaultHiddenDatasets(this.chart)},methods:{toggleDataset(e){if(!this.chart)return;const t=this.chart.data.datasets.find(a=>a.label===e);t&&(this.$store.commit("chartLegend/toggleDataset",t.label),this.applyHiddenDatasetsToChart())},defaultHiddenDatasets(e){if(e&&e.data&&e.data.datasets.length){const t=e.data.datasets.filter(a=>a.hidden).map(a=>a.label);this.$store.commit("chartLegend/setHiddenDatasets",t),this.applyHiddenDatasetsToChart()}},applyHiddenDatasetsToChart(){if(!this.chart||!this.chart.data)return;const e=this.$store.state.chartLegend.hiddenDatasets;this.chart.data.datasets.forEach(t=>{t.hidden=e.includes(t.label)}),this.chart.update()}}};function we(e,t,a,n,i,r){const o=d("LegendStandard"),c=d("LegendCategoriesGroup");return r.showStandardLegend?(s(),b(o,{key:a.range,items:r.legendItems,onToggle:r.toggleDataset},null,8,["items","onToggle"])):(s(),b(c,{key:1,"categorized-items":r.categorizedLegendItems,onToggle:r.toggleDataset},null,8,["categorized-items","onToggle"]))}const Ae=D(Ce,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/ChartLegend.vue"]]);B.add(V,z,M,O,j,q);F.register(K,Z,J,X,G,U,Y,Q,ee,te,ae);const Se={name:"OpenwbChartView",components:{ChartjsLine:N,FontAwesomeIcon:H,ChartLegend:Ae},mixins:[E],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{chartInstance:null,mqttTopics:[{topic:"openWB/bat/+/get/power",writeable:!1},{topic:"openWB/bat/get/power",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1},{topic:"openWB/counter/+/get/power",writeable:!1},{topic:"openWB/counter/set/home_consumption",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/log/daily/#",writeable:!1},{topic:"openWB/log/monthly/#",writeable:!1},{topic:"openWB/log/yearly/#",writeable:!1},{topic:"openWB/pv/+/get/power",writeable:!1},{topic:"openWB/pv/get/power",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",category:"component",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",category:"component",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",category:"component",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"chargepoint",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",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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",category:"vehicle",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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)",category:"component",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)",category:"component",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)",category:"component",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:!1},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return Object.keys(e).forEach(t=>{Object.keys(e[t]).forEach(a=>{this.objectAccessible(t,a)||(console.debug(`Removing totals for ${t} - ${a} due to missing access rights.`),delete e[t][a])}),Object.keys(e[t]).length===0&&(console.debug(`Removing empty totals for ${t}.`),delete e[t])}),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);let t={};return JSON.parse(JSON.stringify(e)).forEach(a=>{a.timestamp=a.timestamp*1e3,t[a.timestamp]=a}),Object.values(t)}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}},objectAccessible(){return(e,t)=>{let a;const n=parseInt(t.match(/\d+$/)?.[0]||"");switch(e){case"hc":a="openWB/counter/set/home_consumption";break;case"cp":t=="all"?a="openWB/chargepoint/get/power":isNaN(n)||(a=`openWB/chargepoint/${n}/config`);break;case"ev":isNaN(n)||(a=`openWB/vehicle/${n}/info`);break;case"pv":t=="all"?a="openWB/pv/get/power":isNaN(n)||(a=`openWB/pv/${n}/get/power`);break;case"bat":t=="all"?a="openWB/bat/get/power":isNaN(n)||(a=`openWB/bat/${n}/get/power`);break;case"counter":isNaN(n)||(a=`openWB/counter/${n}/get/power`);break}return a?this.$store.state.mqtt[a]!==void 0:!0}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},updated(){this.$nextTick(()=>{this.$refs.myChart?.chart&&(this.chartInstance=this.$refs.myChart.chart)})},mounted(){this.init(),re(()=>{this.chartInstance=this.$refs.myChart?.chart})},methods:{getChartInstance(){return this.$refs.myChart?this.$refs.myChart.chart:null},refreshLegend(){this.$nextTick(()=>{this.chartInstance=this.$refs.myChart?.chart})},handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=P(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var o="",c="";switch(this.chartRange){case"month":o=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),c="day";break;case"year":o=r.substring(0,4)+"-"+r.substring(4,6),c="month";break}this.blockChartInit=!0,this.chartDate=o,this.chartRange=c},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":i=["Speicher"],a==="soc"&&i.push("SoC");break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"];break}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.category=this.datasetTemplates[i].category,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){if(!this.objectAccessible(e,t)){console.debug("skipping dataset due to missing rights:",e,t,a);return}let n;this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&this.addDataset(e,t,a,i)}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm?.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},Re={class:"chart"},Ie={key:0},Le={key:1},We={name:"chartFilterForm"},Te={key:1},$e={key:1},He={class:"openwb-chart"},Be={name:"chartTotalsForm"},Ve={key:1};function ze(e,t,a,n,i,r){const o=d("openwb-base-alert"),c=d("openwb-base-select-input"),k=d("openwb-base-text-input"),y=d("openwb-base-card"),R=d("chartjs-line"),I=d("ChartLegend"),L=d("font-awesome-icon"),W=d("openwb-base-heading");return s(),l("div",Re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),l("div",Ie,[p(o,{subtype:"info"},{default:h(()=>[...t[3]||(t[3]=[x(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(s(),l("div",Le,[p(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:h(()=>[g("form",We,[p(c,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=m=>i.chartRange=m),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),p(k,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=m=>r.chartDate=m),t[2]||(t[2]=m=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[4]||(t[4]=[x(" Daten werden geladen... ",-1)])]),_:1})):(s(),l("div",Te,[r.chartDataHasEntries?(s(),l("div",$e,[p(y,{title:"Diagramm",collapsible:!0,collapsed:!1,onExpanded:r.refreshLegend},{default:h(()=>[g("div",He,[p(R,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])]),i.chartInstance?(s(),b(I,{key:i.chartDatasets.datasets.length,ref:"chartLegend",range:i.chartRange,chart:r.getChartInstance()},null,8,["range","chart"])):A("",!0)]),_:1},8,["onExpanded"]),p(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:h(()=>[g("form",Be,[(s(!0),l(f,null,_(Object.fromEntries(Object.entries(r.chartTotals).filter(([m,u])=>Object.keys(u).length>0)),(m,u)=>(s(),b(y,{key:u,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(u)},{header:h(()=>[p(L,{icon:r.getCardIcon(u)},null,8,["icon"]),x(" "+v(r.getTotalsLabel(u)),1)]),default:h(()=>[(s(!0),l(f,null,_(m,(T,C)=>(s(),l("div",{key:C},[u!=="hc"?(s(),b(W,{key:0},{default:h(()=>[x(v(r.getTotalsLabel(u,C)),1)]),_:2},1024)):A("",!0),(s(!0),l(f,null,_(T,($,S)=>(s(),l("div",{key:S},[p(k,{title:r.getTotalsLabel(u,C,S),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber($/1e3,3)},null,8,["title","model-value"])]))),128)),C=="all"&&u!="hc"?(s(),l("hr",Ve)):A("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[5]||(t[5]=[x(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])]),_:1}))]))]))])}const Ke=D(Se,[["render",ze],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{Ke as default}; diff --git a/web/settings/assets/CloudConfiguration-CQRDvjjg.js b/web/settings/assets/CloudConfiguration-Cu4M2u7m.js similarity index 96% rename from web/settings/assets/CloudConfiguration-CQRDvjjg.js rename to web/settings/assets/CloudConfiguration-Cu4M2u7m.js index 819589b2d5..83c8fe0fec 100644 --- a/web/settings/assets/CloudConfiguration-CQRDvjjg.js +++ b/web/settings/assets/CloudConfiguration-Cu4M2u7m.js @@ -1 +1 @@ -import{F as h,l as q,ai as P}from"./vendor-fortawesome-DD1DIYBi.js";import{C as S}from"./index-BBXHIMfY.js";import{_ as z,l as d,k as l,e as w,m as s,q as n,A as r,x as i,y as p,u as m,D as Z,j as _,K as I}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";q.add(P);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:h},mixins:[S],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0},{topic:"openWB/system/mqtt/valid_partner_ids",writeable:!0}],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,C]of Object.entries(t))C.remote.is_openwb_cloud||delete t[e];return t}},cloudBridgeKey:{get(){for(const[t,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return t}},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(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(t){t.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(t){this.showCloudRemoveModal=!1,t=="confirm"&&(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"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},T={class:"row justify-content-center"},U={key:2,name:"cloudConfigured"},A={class:"row justify-content-center"};function N(t,e,C,j,u,a){const D=d("openwb-base-modal-dialog"),c=d("router-link"),g=d("openwb-base-alert"),b=d("openwb-base-text-input"),B=d("openwb-base-button-group-input"),f=d("font-awesome-icon"),y=d("openwb-base-array-input"),v=d("openwb-base-click-button"),k=d("openwb-base-card"),V=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return l(),w(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>a.removeCloud(o))},{default:n(()=>[...e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])]),_:1},8,["show"]),i("div",M,[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:n(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1})):(l(),w("div",x,[s(g,{subtype:"success"},{default:n(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})),a.cloudBridgeKey?m("",!0):(l(),w("form",R,[s(k,{title:"Vorhandenen Zugang einrichten"},Z({default:n(()=>[s(g,{subtype:"info"},{default:n(()=>[...e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:tutorials:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])]),_:1}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:n(()=>[...e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:2},[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:n(()=>[i("div",T,[s(v,{class:_(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:a.connectCloud},{default:n(()=>[...e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),a.cloudBridgeKey?(l(),w("form",U,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})):m("",!0),s(k,{title:"Vorhandener Cloud Zugang"},{footer:n(()=>[i("div",A,[s(v,{class:_(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>a.removeCloudModal(o))},{default:n(()=>[...e[29]||(e[29]=[r(" Zugang löschen ",-1)])]),_:1},8,["class","disabled"])])]),default:n(()=>[s(V,null,{default:n(()=>[...e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])]),_:1}),s(b,{modelValue:a.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>a.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:a.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>a.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":a.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>t.updateState(a.cloudBridgeKey,o,"access.partner"))},{help:n(()=>[...e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["model-value"]),a.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:1})])):m("",!0),a.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[11]||(e[11]=o=>t.$emit("reset")),onDefaults:e[12]||(e[12]=o=>t.$emit("defaults"))})):m("",!0)]))])],64)}const J=z(K,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfiguration.vue"]]);export{J as default}; +import{F as h,l as q,ai as P}from"./vendor-fortawesome-CBc-2W7w.js";import{C as S}from"./index-CyH1Au4V.js";import{_ as z,l as d,k as l,e as w,m as s,q as n,A as r,x as i,y as p,u as m,D as Z,j as _,K as I}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";q.add(P);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:h},mixins:[S],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0},{topic:"openWB/system/mqtt/valid_partner_ids",writeable:!0}],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,C]of Object.entries(t))C.remote.is_openwb_cloud||delete t[e];return t}},cloudBridgeKey:{get(){for(const[t,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return t}},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(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(t){t.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(t){this.showCloudRemoveModal=!1,t=="confirm"&&(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"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},T={class:"row justify-content-center"},U={key:2,name:"cloudConfigured"},A={class:"row justify-content-center"};function N(t,e,C,j,u,a){const D=d("openwb-base-modal-dialog"),c=d("router-link"),g=d("openwb-base-alert"),b=d("openwb-base-text-input"),B=d("openwb-base-button-group-input"),f=d("font-awesome-icon"),y=d("openwb-base-array-input"),v=d("openwb-base-click-button"),k=d("openwb-base-card"),V=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return l(),w(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>a.removeCloud(o))},{default:n(()=>[...e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])]),_:1},8,["show"]),i("div",M,[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:n(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1})):(l(),w("div",x,[s(g,{subtype:"success"},{default:n(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})),a.cloudBridgeKey?m("",!0):(l(),w("form",R,[s(k,{title:"Vorhandenen Zugang einrichten"},Z({default:n(()=>[s(g,{subtype:"info"},{default:n(()=>[...e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:tutorials:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])]),_:1}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:n(()=>[...e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:2},[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:n(()=>[i("div",T,[s(v,{class:_(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:a.connectCloud},{default:n(()=>[...e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),a.cloudBridgeKey?(l(),w("form",U,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})):m("",!0),s(k,{title:"Vorhandener Cloud Zugang"},{footer:n(()=>[i("div",A,[s(v,{class:_(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>a.removeCloudModal(o))},{default:n(()=>[...e[29]||(e[29]=[r(" Zugang löschen ",-1)])]),_:1},8,["class","disabled"])])]),default:n(()=>[s(V,null,{default:n(()=>[...e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])]),_:1}),s(b,{modelValue:a.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>a.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:a.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>a.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":a.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>t.updateState(a.cloudBridgeKey,o,"access.partner"))},{help:n(()=>[...e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["model-value"]),a.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:1})])):m("",!0),a.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[11]||(e[11]=o=>t.$emit("reset")),onDefaults:e[12]||(e[12]=o=>t.$emit("defaults"))})):m("",!0)]))])],64)}const J=z(K,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfiguration.vue"]]);export{J as default}; diff --git a/web/settings/assets/DataManagement-BquAussF.js b/web/settings/assets/DataManagement-FAi2cjUn.js similarity index 97% rename from web/settings/assets/DataManagement-BquAussF.js rename to web/settings/assets/DataManagement-FAi2cjUn.js index 4d27007187..94a98a9674 100644 --- a/web/settings/assets/DataManagement-BquAussF.js +++ b/web/settings/assets/DataManagement-FAi2cjUn.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/backup_cloud-WdmGjWfz.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-DD1DIYBi.js","assets/index-BBXHIMfY.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/backup_cloud-BfD5oaKU.js","assets/backup_cloud-DKNVh2TZ.js","assets/backup_cloud-CmIeHWl8.js","assets/monitoring-DmGi8iaj.js"])))=>i.map(i=>d[i]); -import{F as A,l as P,ac as L,ad as T,aC as H,aD as N,aE as K,aF as I,aG as G}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as B,C as J}from"./index-BBXHIMfY.js";import{_ as j}from"./dynamic-import-helper-BheWnx7M.js";import{_ as C,l as m,k as d,e as g,y as h,q as i,A as o,J as f,m as t,x as s,a1 as E,a2 as R,K as M,u as k,j as W,L as z,D as V}from"./vendor-JxinjXxC.js";const Z={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Q=C(Z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),X={name:"BackupCloudConfigFallback",mixins:[Q]},Y={class:"backup-cloud-fallback"},ee={key:1};function ne(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",Y,[Object.keys(n.backupCloud.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+f(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",ee,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+f(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const te=C(X,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);P.add(L,T);const oe={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),E({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-WdmGjWfz.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-BfD5oaKU.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-DKNVh2TZ.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CmIeHWl8.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10]))}),`./${this.backupCloud.type}/backup_cloud.vue`,3),errorComponent:te})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function ie(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.backupCloud.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+f(r.backupCloud.name)+'" ',1)]),_:1}),(d(),h(R(u.getBackupCloudComponent()),{"backup-cloud":r.backupCloud,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w)),onSendCommand:e[1]||(e[1]=w=>u.sendCommand(w))},null,40,["backup-cloud"]))],64)}const se=C(oe,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),ae={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},re=C(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),le={name:"MonitoringConfigFallback",mixins:[re]},ue={class:"monitoring-fallback"},de={key:1};function pe(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",ue,[Object.keys(n.monitoring.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+f(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",de,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+f(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const ce=C(le,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);P.add(L,T);const me={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),E({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-DmGi8iaj.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10]))}),`./${this.monitoring.type}/monitoring.vue`,3),errorComponent:ce})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ge(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.monitoring.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Modul "'+f(r.monitoring.name)+'" ',1)]),_:1}),(d(),h(R(u.getMonitoringComponent()),{monitoring:r.monitoring,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w))},null,40,["monitoring"]))],64)}const fe=C(me,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);P.add(H,N,K,I,G);const be={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:se,OpenwbMonitoringProxy:fe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_configured",writeable:!1},{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_name",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/monitoring/config",writeable:!1},{topic:"openWB/system/backup_cloud/backup_before_update",writeable:!1},{topic:"openWB/system/backup_cloud/config",writeable:!1},{topic:"openWB/system/backup_password",writeable:!1},{topic:"openWB/system/configurable/backup_clouds",writeable:!1},{topic:"openWB/system/configurable/monitoring",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,restorePassword:void 0,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const r of Object.values(n))e.push({value:r.id,text:r.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[r,y]of Object.entries(n)){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:y})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[r,y]of Object.entries(n))if(y==1){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e},disableRestoreUpload(){return!this.selectedRestoreFile||this.selectedRestoreFile?.name?.endsWith(".gpg")&&!(this.restorePassword||this.$store.state.mqtt["openWB/system/backup_password"])}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,r,y={}){return new Promise(l=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let u=new FormData;u.append("file",e),u.append("target",n);for(const[p,c]of Object.entries(y))u.append(p,c);this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",u,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(r,"success"),l(!0)}).catch(p=>{if(p.response){console.error(p.response.status,p.response.data);var c="Hochladen der Datei fehlgeschlagen!
"+p.response.status+": "+p.response.data}else p.request?(console.error(p.request),c+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",p.message),c+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(c,"danger"),l(!1)})}else console.error("no file selected for upload"),l(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n,[void 0,null,""].includes(this.restorePassword)?void 0:{restorePassword:this.restorePassword})},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},he={class:"system"},ke={key:1},ye={name:"backupPasswordForm"},ve={name:"backupForm"},we={class:"row justify-content-center"},_e={class:"col-md-4 d-flex py-1 justify-content-center"},Ce={key:0,name:"restoreForm"},Be={class:"input-group mb-2"},De={class:"input-group-prepend"},Se={class:"input-group-text"},We={class:"custom-file"},Me={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Oe={class:"input-group-append"},Fe=["disabled"],Ae={class:"row justify-content-center"},Pe={class:"col-md-4 d-flex py-1 justify-content-center"},ze={key:1},Ve={key:0,name:"cloudBackupForm"},Le={key:0},Te={name:"dataMigrationForm"},je={class:"input-group"},Ee={class:"input-group-prepend"},Re={class:"input-group-text"},Ue={class:"custom-file"},qe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},xe={class:"input-group-append"},$e=["disabled"],He={class:"row justify-content-center"},Ne={class:"col-md-4 d-flex py-1 justify-content-center"},Ke={key:1,name:"resetForm"},Ie={class:"row justify-content-center"},Ge={class:"col-md-4 d-flex py-1 justify-content-center"},Je={key:2,name:"monitoringForm"},Ze={key:1},Qe={key:0};function Xe(n,e,r,y,l,u){const p=m("openwb-base-button-group-input"),c=m("openwb-base-alert"),b=m("openwb-base-heading"),w=m("openwb-base-text-input"),O=m("openwb-base-submit-buttons"),v=m("font-awesome-icon"),D=m("openwb-base-click-button"),F=m("openwb-base-select-input"),U=m("openwb-base-button-input"),q=m("openwb-backup-cloud-proxy"),S=m("openwb-base-card"),x=m("openwb-monitoring-proxy");return d(),g("div",he,[r.installAssistantActive?k("",!0):(d(),h(c,{key:0,subtype:"danger"},{default:i(()=>[e[25]||(e[25]=s("h2",null,"Achtung!",-1)),e[26]||(e[26]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=a=>l.warningAcknowledged=a),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),l.warningAcknowledged||r.installAssistantActive?(d(),g("div",ke,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!r.installAssistantActive},{default:i(()=>[s("form",ye,[t(b,null,{default:i(()=>[...e[27]||(e[27]=[o("Allgemein",-1)])]),_:1}),t(w,{title:"Kennwort für Sicherungen",subtype:"password","model-value":n.$store.state.mqtt["openWB/system/backup_password"],"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateState("openWB/system/backup_password",a))},{help:i(()=>[...e[28]||(e[28]=[o(" Ist hier ein Kennwort gesetzt, werden alle Sicherungen mit einem Kennwortschutz versehen. Diese Option sollte genutzt werden, wenn die Sicherungsdatei über unsichere Kanäle (z.B. eine Backup-Cloud im Internet) übertragen wird.",-1),s("br",null,null,-1),o(" Wichtig: Das Kennwort wird nicht in der Sicherung gespeichert! Ohne gültiges Kennwort kann eine geschützte Sicherung nicht wiederhergestellt werden! ",-1)])]),_:1},8,["model-value"]),t(O,{"form-name":"backupPasswordForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveBackupPassword",onSave:e[2]||(e[2]=a=>n.$emit("save",["openWB/system/backup_password"])),onReset:e[3]||(e[3]=a=>n.$emit("reset"))}),e[29]||(e[29]=s("hr",null,null,-1))]),s("form",ve,[t(b,null,{default:i(()=>[...e[30]||(e[30]=[o("Sicherung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[31]||(e[31]=[o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[32]||(e[32]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. ",-1)])]),_:1}),s("div",we,[s("div",_e,[t(D,{class:"btn-success clickable",onButtonClicked:e[4]||(e[4]=a=>u.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[33]||(e[33]=o(" Sicherung erstellen ",-1)),t(v,{icon:["fas","archive"]})]),_:1})])])]),l.showRestoreSection?(d(),g("form",Ce,[e[39]||(e[39]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[34]||(e[34]=[o("Wiederherstellung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[35]||(e[35]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),s("div",Be,[s("div",De,[s("div",Se,[t(v,{icon:["fas","file-archive"]})])]),s("div",We,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,.openwb-backup,application/gzip,application/tar+gzip,.openwb-backup.gpg,application/gzip+gpg,application/tar+gzip+gpg",onChange:e[5]||(e[5]=a=>u.updateSelectedRestoreFile(a))},null,32),s("label",Me,f(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Oe,[s("button",{class:W(["btn",u.disableRestoreUpload?"btn-outline-success":"btn-success clickable"]),disabled:u.disableRestoreUpload,type:"button",onClick:e[6]||(e[6]=a=>u.uploadRestoreFile())},[e[36]||(e[36]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,Fe)])]),l.selectedRestoreFile?.name?.endsWith(".gpg")?(d(),h(w,{key:0,modelValue:l.restorePassword,"onUpdate:modelValue":e[7]||(e[7]=a=>l.restorePassword=a),title:"Kennwort dieser Sicherung",subtype:"password"},{help:i(()=>[...e[37]||(e[37]=[o(' Wenn die Sicherung mit einem Kennwortschutz versehen wurde, wird zuerst eine Entschlüsselung mit dem unter "Allgemein" hinterlegten Kennwort versucht. Falls die Sicherung mit einem anderen Kennwort geschützt wurde, muss dieses hier eingegeben werden. ',-1)])]),_:1},8,["modelValue"])):k("",!0),s("div",Ae,[s("div",Pe,[t(D,{class:W(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[8]||(e[8]=a=>u.restoreBackup())},{default:i(()=>[e[38]||(e[38]=o(" Wiederherstellung starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):k("",!0),r.installAssistantActive?k("",!0):(d(),g("div",ze,[r.showBackupCloudSection?(d(),g("form",Ve,[e[43]||(e[43]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[40]||(e[40]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[41]||(e[41]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Backup-Cloud",options:u.backupCloudList,"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type,"onUpdate:modelValue":e[9]||(e[9]=a=>u.updateSelectedBackupCloud(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type?(d(),g("div",Le,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[10]||(e[10]=a=>n.updateState("openWB/system/backup_cloud/backup_before_update",a))},{help:i(()=>[...e[42]||(e[42]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])]),_:1},8,["model-value"]),t(U,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[11]||(e[11]=a=>u.sendSystemCommand("createCloudBackup",{}))}),t(q,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[12]||(e[12]=a=>u.updateConfiguration("openWB/system/backup_cloud/config",a)),onSendCommand:e[13]||(e[13]=a=>u.sendSystemCommand(a.command,a.args))},null,8,["backup-cloud"])])):k("",!0),t(O,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveCloudBackup",onSave:e[14]||(e[14]=a=>n.$emit("save",["openWB/system/backup_cloud/backup_before_update","openWB/system/backup_cloud/config"])),onReset:e[15]||(e[15]=a=>n.$emit("reset")),onDefaults:e[16]||(e[16]=a=>n.$emit("defaults"))})])):k("",!0)]))]),_:1},8,["collapsed"]),!r.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(d(),h(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Te,[t(c,{subtype:"info"},{default:i(()=>[...e[44]||(e[44]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[45]||(e[45]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])]),_:1}),s("div",je,[s("div",Ee,[s("div",Re,[t(v,{icon:["fas","file-archive"]})])]),s("div",Ue,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[17]||(e[17]=a=>u.updateSelectedDataMigrationFile(a))},null,32),s("label",qe,f(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",xe,[s("button",{class:W(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[18]||(e[18]=a=>u.uploadDataMigrationFile())},[e[46]||(e[46]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,$e)])]),t(b,null,{default:i(()=>[...e[47]||(e[47]=[o(" Zuordnung der Komponenten ",-1)])]),_:1}),(d(!0),g(M,null,z(l.dataMigrationConfig,a=>(d(),g("div",{key:a.sectionName},[t(b,null,{default:i(()=>[o(f(a.sectionName),1)]),_:2},1024),(d(!0),g(M,null,z(a.sectionComponents,_=>(d(),h(F,{key:_.key,modelValue:l.dataMigrationMapping[_.key],"onUpdate:modelValue":$=>l.dataMigrationMapping[_.key]=$,title:_.label,options:u.getMigrationOptions(_.validTypes)},V({_:2},[_.help?{name:"help",fn:i(()=>[o(f(_.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",He,[s("div",Ne,[t(D,{class:W(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[19]||(e[19]=a=>u.dataMigration())},{default:i(()=>[e[48]||(e[48]=o(" Datenübernahme starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})):k("",!0),r.installAssistantActive?k("",!0):(d(),g("form",Ke,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",Ie,[s("div",Ge,[t(D,{class:"btn-danger clickable",onButtonClicked:e[20]||(e[20]=a=>u.factoryReset())},{default:i(()=>[t(v,{icon:["fas","skull-crossbones"]}),e[50]||(e[50]=o(" Zurücksetzen ",-1)),t(v,{icon:["fas","skull-crossbones"]})]),_:1})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>[...e[49]||(e[49]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])]),_:1})]),_:1})])),r.installAssistantActive?k("",!0):(d(),g("form",Je,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},V({default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),h(c,{key:0,subtype:"info"},{default:i(()=>[...e[51]||(e[51]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(d(),g("div",Ze,[t(c,{subtype:"info"},{default:i(()=>[...e[52]||(e[52]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Anbieter",options:u.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[21]||(e[21]=a=>u.updateSelectedMonitoring(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(d(),g("div",Qe,[t(x,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[22]||(e[22]=a=>u.updateConfiguration("openWB/optional/monitoring/config",a))},null,8,["monitoring"])])):k("",!0)]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]!==!0?{name:"footer",fn:i(()=>[t(O,{"form-name":"monitoringForm","hide-defaults":!0,"save-id":"saveMonitoring",onSave:e[23]||(e[23]=a=>n.$emit("save",["openWB/optional/monitoring/config"])),onReset:e[24]||(e[24]=a=>n.$emit("reset"))})]),key:"0"}:void 0]),1024)]))])):k("",!0)])}const Ye=C(be,[["render",Xe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),sn=Object.freeze(Object.defineProperty({__proto__:null,default:Ye},Symbol.toStringTag,{value:"Module"}));export{Q as B,Ye as D,re as M,sn as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/backup_cloud-C1Vw5Mh4.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/backup_cloud-mhyMQPm9.js","assets/backup_cloud-ChCyb_mM.js","assets/backup_cloud-Dr6eBKwO.js","assets/monitoring-BMLL0nfh.js"])))=>i.map(i=>d[i]); +import{F as A,l as P,ac as L,ad as T,aC as H,aD as N,aE as K,aF as I,aG as G}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as J}from"./index-CyH1Au4V.js";import{_ as j}from"./dynamic-import-helper-BheWnx7M.js";import{_ as C,l as m,k as d,e as g,y as h,q as i,A as o,J as f,m as t,x as s,a1 as E,a2 as R,K as M,u as k,j as W,L as z,D as V}from"./vendor-Bo8v-nQD.js";const Z={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Q=C(Z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),X={name:"BackupCloudConfigFallback",mixins:[Q]},Y={class:"backup-cloud-fallback"},ee={key:1};function ne(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",Y,[Object.keys(n.backupCloud.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+f(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",ee,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+f(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const te=C(X,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);P.add(L,T);const oe={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),E({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-C1Vw5Mh4.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-mhyMQPm9.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-ChCyb_mM.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-Dr6eBKwO.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10]))}),`./${this.backupCloud.type}/backup_cloud.vue`,3),errorComponent:te})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function ie(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.backupCloud.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+f(r.backupCloud.name)+'" ',1)]),_:1}),(d(),h(R(u.getBackupCloudComponent()),{"backup-cloud":r.backupCloud,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w)),onSendCommand:e[1]||(e[1]=w=>u.sendCommand(w))},null,40,["backup-cloud"]))],64)}const se=C(oe,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),ae={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},re=C(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),le={name:"MonitoringConfigFallback",mixins:[re]},ue={class:"monitoring-fallback"},de={key:1};function pe(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",ue,[Object.keys(n.monitoring.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+f(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",de,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+f(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const ce=C(le,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);P.add(L,T);const me={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),E({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-BMLL0nfh.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10]))}),`./${this.monitoring.type}/monitoring.vue`,3),errorComponent:ce})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ge(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.monitoring.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Modul "'+f(r.monitoring.name)+'" ',1)]),_:1}),(d(),h(R(u.getMonitoringComponent()),{monitoring:r.monitoring,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w))},null,40,["monitoring"]))],64)}const fe=C(me,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);P.add(H,N,K,I,G);const be={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:se,OpenwbMonitoringProxy:fe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_configured",writeable:!1},{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_name",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/monitoring/config",writeable:!1},{topic:"openWB/system/backup_cloud/backup_before_update",writeable:!1},{topic:"openWB/system/backup_cloud/config",writeable:!1},{topic:"openWB/system/backup_password",writeable:!1},{topic:"openWB/system/configurable/backup_clouds",writeable:!1},{topic:"openWB/system/configurable/monitoring",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,restorePassword:void 0,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const r of Object.values(n))e.push({value:r.id,text:r.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[r,y]of Object.entries(n)){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:y})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[r,y]of Object.entries(n))if(y==1){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e},disableRestoreUpload(){return!this.selectedRestoreFile||this.selectedRestoreFile?.name?.endsWith(".gpg")&&!(this.restorePassword||this.$store.state.mqtt["openWB/system/backup_password"])}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,r,y={}){return new Promise(l=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let u=new FormData;u.append("file",e),u.append("target",n);for(const[p,c]of Object.entries(y))u.append(p,c);this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",u,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(r,"success"),l(!0)}).catch(p=>{if(p.response){console.error(p.response.status,p.response.data);var c="Hochladen der Datei fehlgeschlagen!
"+p.response.status+": "+p.response.data}else p.request?(console.error(p.request),c+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",p.message),c+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(c,"danger"),l(!1)})}else console.error("no file selected for upload"),l(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n,[void 0,null,""].includes(this.restorePassword)?void 0:{restorePassword:this.restorePassword})},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},he={class:"system"},ke={key:1},ye={name:"backupPasswordForm"},ve={name:"backupForm"},we={class:"row justify-content-center"},_e={class:"col-md-4 d-flex py-1 justify-content-center"},Ce={key:0,name:"restoreForm"},Be={class:"input-group mb-2"},De={class:"input-group-prepend"},Se={class:"input-group-text"},We={class:"custom-file"},Me={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Oe={class:"input-group-append"},Fe=["disabled"],Ae={class:"row justify-content-center"},Pe={class:"col-md-4 d-flex py-1 justify-content-center"},ze={key:1},Ve={key:0,name:"cloudBackupForm"},Le={key:0},Te={name:"dataMigrationForm"},je={class:"input-group"},Ee={class:"input-group-prepend"},Re={class:"input-group-text"},Ue={class:"custom-file"},qe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},xe={class:"input-group-append"},$e=["disabled"],He={class:"row justify-content-center"},Ne={class:"col-md-4 d-flex py-1 justify-content-center"},Ke={key:1,name:"resetForm"},Ie={class:"row justify-content-center"},Ge={class:"col-md-4 d-flex py-1 justify-content-center"},Je={key:2,name:"monitoringForm"},Ze={key:1},Qe={key:0};function Xe(n,e,r,y,l,u){const p=m("openwb-base-button-group-input"),c=m("openwb-base-alert"),b=m("openwb-base-heading"),w=m("openwb-base-text-input"),O=m("openwb-base-submit-buttons"),v=m("font-awesome-icon"),D=m("openwb-base-click-button"),F=m("openwb-base-select-input"),U=m("openwb-base-button-input"),q=m("openwb-backup-cloud-proxy"),S=m("openwb-base-card"),x=m("openwb-monitoring-proxy");return d(),g("div",he,[r.installAssistantActive?k("",!0):(d(),h(c,{key:0,subtype:"danger"},{default:i(()=>[e[25]||(e[25]=s("h2",null,"Achtung!",-1)),e[26]||(e[26]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=a=>l.warningAcknowledged=a),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),l.warningAcknowledged||r.installAssistantActive?(d(),g("div",ke,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!r.installAssistantActive},{default:i(()=>[s("form",ye,[t(b,null,{default:i(()=>[...e[27]||(e[27]=[o("Allgemein",-1)])]),_:1}),t(w,{title:"Kennwort für Sicherungen",subtype:"password","model-value":n.$store.state.mqtt["openWB/system/backup_password"],"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateState("openWB/system/backup_password",a))},{help:i(()=>[...e[28]||(e[28]=[o(" Ist hier ein Kennwort gesetzt, werden alle Sicherungen mit einem Kennwortschutz versehen. Diese Option sollte genutzt werden, wenn die Sicherungsdatei über unsichere Kanäle (z.B. eine Backup-Cloud im Internet) übertragen wird.",-1),s("br",null,null,-1),o(" Wichtig: Das Kennwort wird nicht in der Sicherung gespeichert! Ohne gültiges Kennwort kann eine geschützte Sicherung nicht wiederhergestellt werden! ",-1)])]),_:1},8,["model-value"]),t(O,{"form-name":"backupPasswordForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveBackupPassword",onSave:e[2]||(e[2]=a=>n.$emit("save",["openWB/system/backup_password"])),onReset:e[3]||(e[3]=a=>n.$emit("reset"))}),e[29]||(e[29]=s("hr",null,null,-1))]),s("form",ve,[t(b,null,{default:i(()=>[...e[30]||(e[30]=[o("Sicherung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[31]||(e[31]=[o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[32]||(e[32]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. ",-1)])]),_:1}),s("div",we,[s("div",_e,[t(D,{class:"btn-success clickable",onButtonClicked:e[4]||(e[4]=a=>u.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[33]||(e[33]=o(" Sicherung erstellen ",-1)),t(v,{icon:["fas","archive"]})]),_:1})])])]),l.showRestoreSection?(d(),g("form",Ce,[e[39]||(e[39]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[34]||(e[34]=[o("Wiederherstellung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[35]||(e[35]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),s("div",Be,[s("div",De,[s("div",Se,[t(v,{icon:["fas","file-archive"]})])]),s("div",We,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,.openwb-backup,application/gzip,application/tar+gzip,.openwb-backup.gpg,application/gzip+gpg,application/tar+gzip+gpg",onChange:e[5]||(e[5]=a=>u.updateSelectedRestoreFile(a))},null,32),s("label",Me,f(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Oe,[s("button",{class:W(["btn",u.disableRestoreUpload?"btn-outline-success":"btn-success clickable"]),disabled:u.disableRestoreUpload,type:"button",onClick:e[6]||(e[6]=a=>u.uploadRestoreFile())},[e[36]||(e[36]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,Fe)])]),l.selectedRestoreFile?.name?.endsWith(".gpg")?(d(),h(w,{key:0,modelValue:l.restorePassword,"onUpdate:modelValue":e[7]||(e[7]=a=>l.restorePassword=a),title:"Kennwort dieser Sicherung",subtype:"password"},{help:i(()=>[...e[37]||(e[37]=[o(' Wenn die Sicherung mit einem Kennwortschutz versehen wurde, wird zuerst eine Entschlüsselung mit dem unter "Allgemein" hinterlegten Kennwort versucht. Falls die Sicherung mit einem anderen Kennwort geschützt wurde, muss dieses hier eingegeben werden. ',-1)])]),_:1},8,["modelValue"])):k("",!0),s("div",Ae,[s("div",Pe,[t(D,{class:W(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[8]||(e[8]=a=>u.restoreBackup())},{default:i(()=>[e[38]||(e[38]=o(" Wiederherstellung starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):k("",!0),r.installAssistantActive?k("",!0):(d(),g("div",ze,[r.showBackupCloudSection?(d(),g("form",Ve,[e[43]||(e[43]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[40]||(e[40]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[41]||(e[41]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Backup-Cloud",options:u.backupCloudList,"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type,"onUpdate:modelValue":e[9]||(e[9]=a=>u.updateSelectedBackupCloud(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type?(d(),g("div",Le,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[10]||(e[10]=a=>n.updateState("openWB/system/backup_cloud/backup_before_update",a))},{help:i(()=>[...e[42]||(e[42]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])]),_:1},8,["model-value"]),t(U,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[11]||(e[11]=a=>u.sendSystemCommand("createCloudBackup",{}))}),t(q,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[12]||(e[12]=a=>u.updateConfiguration("openWB/system/backup_cloud/config",a)),onSendCommand:e[13]||(e[13]=a=>u.sendSystemCommand(a.command,a.args))},null,8,["backup-cloud"])])):k("",!0),t(O,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveCloudBackup",onSave:e[14]||(e[14]=a=>n.$emit("save",["openWB/system/backup_cloud/backup_before_update","openWB/system/backup_cloud/config"])),onReset:e[15]||(e[15]=a=>n.$emit("reset")),onDefaults:e[16]||(e[16]=a=>n.$emit("defaults"))})])):k("",!0)]))]),_:1},8,["collapsed"]),!r.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(d(),h(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Te,[t(c,{subtype:"info"},{default:i(()=>[...e[44]||(e[44]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[45]||(e[45]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])]),_:1}),s("div",je,[s("div",Ee,[s("div",Re,[t(v,{icon:["fas","file-archive"]})])]),s("div",Ue,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[17]||(e[17]=a=>u.updateSelectedDataMigrationFile(a))},null,32),s("label",qe,f(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",xe,[s("button",{class:W(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[18]||(e[18]=a=>u.uploadDataMigrationFile())},[e[46]||(e[46]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,$e)])]),t(b,null,{default:i(()=>[...e[47]||(e[47]=[o(" Zuordnung der Komponenten ",-1)])]),_:1}),(d(!0),g(M,null,z(l.dataMigrationConfig,a=>(d(),g("div",{key:a.sectionName},[t(b,null,{default:i(()=>[o(f(a.sectionName),1)]),_:2},1024),(d(!0),g(M,null,z(a.sectionComponents,_=>(d(),h(F,{key:_.key,modelValue:l.dataMigrationMapping[_.key],"onUpdate:modelValue":$=>l.dataMigrationMapping[_.key]=$,title:_.label,options:u.getMigrationOptions(_.validTypes)},V({_:2},[_.help?{name:"help",fn:i(()=>[o(f(_.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",He,[s("div",Ne,[t(D,{class:W(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[19]||(e[19]=a=>u.dataMigration())},{default:i(()=>[e[48]||(e[48]=o(" Datenübernahme starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})):k("",!0),r.installAssistantActive?k("",!0):(d(),g("form",Ke,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",Ie,[s("div",Ge,[t(D,{class:"btn-danger clickable",onButtonClicked:e[20]||(e[20]=a=>u.factoryReset())},{default:i(()=>[t(v,{icon:["fas","skull-crossbones"]}),e[50]||(e[50]=o(" Zurücksetzen ",-1)),t(v,{icon:["fas","skull-crossbones"]})]),_:1})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>[...e[49]||(e[49]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])]),_:1})]),_:1})])),r.installAssistantActive?k("",!0):(d(),g("form",Je,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},V({default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),h(c,{key:0,subtype:"info"},{default:i(()=>[...e[51]||(e[51]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(d(),g("div",Ze,[t(c,{subtype:"info"},{default:i(()=>[...e[52]||(e[52]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Anbieter",options:u.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[21]||(e[21]=a=>u.updateSelectedMonitoring(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(d(),g("div",Qe,[t(x,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[22]||(e[22]=a=>u.updateConfiguration("openWB/optional/monitoring/config",a))},null,8,["monitoring"])])):k("",!0)]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]!==!0?{name:"footer",fn:i(()=>[t(O,{"form-name":"monitoringForm","hide-defaults":!0,"save-id":"saveMonitoring",onSave:e[23]||(e[23]=a=>n.$emit("save",["openWB/optional/monitoring/config"])),onReset:e[24]||(e[24]=a=>n.$emit("reset"))})]),key:"0"}:void 0]),1024)]))])):k("",!0)])}const Ye=C(be,[["render",Xe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),sn=Object.freeze(Object.defineProperty({__proto__:null,default:Ye},Symbol.toStringTag,{value:"Module"}));export{Q as B,Ye as D,re as M,sn as a}; diff --git a/web/settings/assets/DebugConfiguration-GU58L2wl.js b/web/settings/assets/DebugConfiguration-D4jVRy6l.js similarity index 96% rename from web/settings/assets/DebugConfiguration-GU58L2wl.js rename to web/settings/assets/DebugConfiguration-D4jVRy6l.js index 5c8ab19d5c..ae530facc0 100644 --- a/web/settings/assets/DebugConfiguration-GU58L2wl.js +++ b/web/settings/assets/DebugConfiguration-D4jVRy6l.js @@ -1,2 +1,2 @@ -import{C as x}from"./index-BBXHIMfY.js";import{F as B,l as W,ak as V,al as z,k as P,am as T,g as N}from"./vendor-fortawesome-DD1DIYBi.js";import{a as y}from"./vendor-axios-CL9DOa3h.js";import{_ as F,a3 as M,l,k as u,y as p,q as r,A as h,J as v,x as b,m as g,u as f,z as L,j as m,e as C,K as S,L as q}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";W.add(V,z,P,T,N);const I={name:"OpenwbLogCard",components:{FontAwesomeIcon:B},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! +import{C as x}from"./index-CyH1Au4V.js";import{F as B,l as W,ak as V,al as z,k as P,am as T,g as N}from"./vendor-fortawesome-CBc-2W7w.js";import{a as y}from"./vendor-axios-DdFvNBv9.js";import{_ as F,a3 as M,l,k as u,y as p,q as r,A as h,J as v,x as b,m as g,u as f,z as L,j as m,e as C,K as S,L as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";W.add(V,z,P,T,N);const I={name:"OpenwbLogCard",components:{FontAwesomeIcon:B},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! `+s.response.status+" "+s.response.statusText+": "+s.response.request.responseURL:s.request?s.request:s.message})},async loadLog(o,e=""){this.logData="wird aktualisiert...",this.loading=!0,this.pastebinLink="";var n="";e&&(o=o.replace(".log",`.${e}.log`));for(let t=4;t>=1;t--){const s=await this.getFilePromise(o+"."+t,!0);n+=s}const a=await this.getFilePromise(o);n+=a,this.logData=n,this.loading=!1},async checkLatestLog(o){const e=[{suffix:"latest",title:"Letzten 3 Durchläufe",description:"Logs der Letzten 3 Durchläufe laden"},{suffix:"current",title:"Letzter Durchlauf",description:"Logs des letzten Durchlaufs laden"},{suffix:"latest-warning",title:"Letzter Durchlauf mit Warnung oder Fehler",description:"Fehlerprotokoll laden"}];this.foundFiles=[];for(const n of e){const a=o.replace(".log",`.${n.suffix}.log`);try{await this.getFilePromise(a,!1,!1,!0),this.foundFiles.push(n),n.suffix==="latest"&&(this.selectedVariant="latest",console.log("Found latest log file: ",a))}catch(t){console.log(t)}}this.foundFiles.length>0&&this.foundFiles.push({suffix:"",title:"Vollständiges Log",description:"Vollständiges Log laden"})},async onCardExpand(){await this.checkLatestLog(this.logFile),this.loadLog(this.logFile,this.selectedVariant)},copyToClipboard(o=this.logData,e=!0){if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(o).then(()=>{e&&this.showCopyMessage()}).catch(n=>{console.error("Fehler beim Kopieren in die Zwischenablage: ",n)});else{const n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select();try{document.execCommand("copy"),e&&this.showCopyMessage()}catch(a){console.error("Fehler beim Kopieren in die Zwischenablage: ",a)}document.body.removeChild(n)}},showCopyMessage(){this.copyMessage=!0,this.$root.postClientMessage("Log in die Zwischenablage kopiert.","info"),setTimeout(()=>{this.copyMessage=!1},3e3)},async postToPastebin(){try{const o=M.gzip(this.logData),e=await y.post("https://bytebin.openwb.de/post",o,{headers:{"Content-Type":"text/log","Content-Encoding":"gzip"}});if(!e.data.key)throw new Error("Key is missing in the response");const n=e.data.key;this.pastebinLink=`https://paste.openwb.de/${n}`,console.log("Pastebin link:",this.pastebinLink),this.copyToClipboard(this.pastebinLink,!1),this.$root.postClientMessage(`Log an Pastebin gesendet.
Key: ${n}
Der Link wurde in die Zwischenablage kopiert.`,"info")}catch(o){console.error("Fehler beim Posten auf paste.openwb.de: ",o)}}}},E={class:"log-data mb-0"};function K(o,e,n,a,t,s){const d=l("font-awesome-icon"),c=l("openwb-base-avatar"),w=l("openwb-base-select-input"),k=l("openwb-base-alert"),_=l("openwb-base-card");return u(),p(_,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?f("",!0):(u(),p(c,{key:0,class:m(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),title:t.pastebinLink?"Link in die Zwischenablage kopiert":"Log auf paste.openwb.de teilen",onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[g(d,{icon:t.pastebinLink?["fas","check"]:["fas","share-nodes"]},null,8,["icon"])]),_:1},8,["class","title","onClick"])),i?f("",!0):(u(),p(c,{key:1,class:m(["clickable mr-1",t.copyMessage?"bg-success":"bg-info"]),title:t.copyMessage?"Log in die Zwischenablage kopiert":"Log kopieren",onClick:e[0]||(e[0]=L(D=>s.copyToClipboard(t.logData),["stop"]))},{default:r(()=>[g(d,{icon:t.copyMessage?["fas","check"]:["fas","clipboard"]},null,8,["icon"])]),_:1},8,["class","title"])),i?f("",!0):(u(),p(c,{key:2,class:m(["clickable",t.loading?"bg-success":"bg-info"]),title:"Log laden/aktualisieren",onClick:e[1]||(e[1]=L(D=>s.loadLog(n.logFile,t.selectedVariant),["stop"]))},{default:r(()=>[g(d,{class:m(t.loading?"fa-spin-pulse":""),icon:t.loading?["fas","spinner"]:["fas","file-download"]},null,8,["class","icon"])]),_:1},8,["class"]))]),default:r(()=>[t.foundFiles.length>0?(u(),p(k,{key:0,subtype:"info"},{default:r(()=>[h(" Im "+v(n.title)+" stehen unterschiedliche Logauszüge zur Verfügung. Standardmässig werden Logs der letzten 3 Durchläufe geladen, für viele Fälle sollte dies ausreichen. Optional kann auch das gesamte Log geladen werden.",1),e[4]||(e[4]=b("br",null,null,-1)),e[5]||(e[5]=h(" Wurde eine Warnung oder ein Fehler protokolliert steht zusätzlich der letzte Durchlauf mit Warnungen und Fehlern zur Verfügung.",-1)),e[6]||(e[6]=b("br",null,null,-1)),g(w,{modelValue:t.selectedVariant,"onUpdate:modelValue":e[2]||(e[2]=i=>t.selectedVariant=i),title:"Logfile",required:"",options:t.foundFiles.map(i=>({value:i.suffix,text:i.title})),onChange:e[3]||(e[3]=i=>s.loadLog(n.logFile,t.selectedVariant))},null,8,["modelValue","options"])]),_:1})):f("",!0),b("pre",E,v(t.logData),1)]),_:1},8,["title","onExpanded"])}const A=F(I,[["render",K],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),Z={name:"OpenwbDebuggingView",components:{OpenwbLogCard:A},mixins:[x],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/debug_level",writeable:!0}],logFiles:[{title:"Main-Log",fileName:"/openWB/ramdisk/main.log"},{title:"Log des internen Ladepunktes",fileName:"/openWB/ramdisk/internal_chargepoint.log"},{title:"MQTT-Log",fileName:"/openWB/ramdisk/mqtt.log"},{title:"SoC-Log",fileName:"/openWB/ramdisk/soc.log"},{title:"Protokoll des letzten Updates",fileName:"/openWB/data/log/update.log"},{title:"Protokoll des Remote-Dienstes",fileName:"/openWB/ramdisk/remote_support.log"},{title:"Protokoll des SmartHome Dienstes",fileName:"/openWB/ramdisk/smarthome.log"},{title:"Protokoll der Sicherung",fileName:"/openWB/data/log/backup.log"},{title:"Protokoll der Wiederherstellung",fileName:"/openWB/data/log/restore.log"},{title:"Protokoll der Datenmigration",fileName:"/openWB/data/log/data_migration.log"},{title:"Protokoll über die Schaltvorgänge von steuerbaren Verbrauchseinrichtungen",fileName:"/openWB/data/log/steuve_control_command.log"},{title:"Thread-Errors",fileName:"/openWB/ramdisk/thread_errors.log"}]}}},O={class:"debugging"},R={name:"debugConfigForm"};function U(o,e,n,a,t,s){const d=l("openwb-base-button-group-input"),c=l("openwb-base-alert"),w=l("openwb-base-card"),k=l("openwb-base-submit-buttons"),_=l("openwb-log-card");return u(),C("div",O,[b("form",R,[g(w,{title:"Protokollierung"},{default:r(()=>[g(d,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":o.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateState("openWB/system/debug_level",i))},{help:r(()=>[...e[4]||(e[4]=[h(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ',-1)])]),_:1},8,["model-value"]),g(c,{subtype:"warning"},{default:r(()=>[...e[5]||(e[5]=[h(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Passwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ',-1)])]),_:1})]),_:1}),g(k,{"form-name":"debugConfigForm",onSave:e[1]||(e[1]=i=>o.$emit("save",o.mqttTopicsToPublish)),onReset:e[2]||(e[2]=i=>o.$emit("reset")),onDefaults:e[3]||(e[3]=i=>o.$emit("defaults"))})]),(u(!0),C(S,null,q(t.logFiles,i=>(u(),p(_,{key:i.fileName,title:i.title,"log-file":i.fileName},null,8,["title","log-file"]))),128))])}const Y=F(Z,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfiguration.vue"]]);export{Y as default}; diff --git a/web/settings/assets/DisplayConfiguration-CBLfIXsk.js b/web/settings/assets/DisplayConfiguration-BEaqDSWf.js similarity index 94% rename from web/settings/assets/DisplayConfiguration-CBLfIXsk.js rename to web/settings/assets/DisplayConfiguration-BEaqDSWf.js index 24e817994f..2eaeb23f00 100644 --- a/web/settings/assets/DisplayConfiguration-CBLfIXsk.js +++ b/web/settings/assets/DisplayConfiguration-BEaqDSWf.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/displayTheme-CcEyZTR4.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/index-BBXHIMfY.js","assets/vendor-fortawesome-DD1DIYBi.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/displayTheme-C1tK2DiA.js"])))=>i.map(i=>d[i]); -import{_ as B,C}from"./index-BBXHIMfY.js";import{_ as $}from"./dynamic-import-helper-BheWnx7M.js";import{F as z,l as S,ac as O,ad as V,ae as q,af as E}from"./vendor-fortawesome-DD1DIYBi.js";import{_,l as p,k as r,e as d,y as f,q as a,A as n,J as m,m as i,x as o,a1 as M,a2 as P,K as A,u as c}from"./vendor-JxinjXxC.js";const j={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},L=_(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),N={name:"DisplayThemeFallback",mixins:[L]},F={class:"display-theme-fallback"},I={key:1};function U(t,e,l,w,v,b){const u=p("openwb-base-alert"),y=p("openwb-base-textarea");return r(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(r(),f(u,{key:0,subtype:"info"},{default:a(()=>[n(' Das Display-Theme "'+m(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),d("div",I,[i(u,{subtype:"warning"},{default:a(()=>[n(' Es wurde keine Konfigurationsseite für das Display-Theme "'+m(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),i(y,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=g=>t.updateConfiguration(g,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[n(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),i(u,{subtype:"info"},{default:a(()=>[o("pre",null,m(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const x=_(N,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);S.add(O,V,q,E);const J={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:z},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),M({loader:()=>$(Object.assign({"./cards/displayTheme.vue":()=>B(()=>import("./displayTheme-CcEyZTR4.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./colors/displayTheme.vue":()=>B(()=>import("./displayTheme-C1tK2DiA.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10]))}),`./${this.displayTheme.type}/displayTheme.vue`,3),errorComponent:x})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function R(t,e,l,w,v,b){const u=p("font-awesome-icon"),y=p("openwb-base-alert"),g=p("openwb-base-heading");return r(),d(A,null,[l.displayTheme.official?(r(),f(y,{key:0,subtype:"success"},{default:a(()=>[i(u,{icon:["fas","certificate"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(y,{key:1,subtype:"info"},{default:a(()=>[i(u,{icon:["fas","people-group"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),i(y,{subtype:l.displayTheme.userManagementSupported?"success":"warning"},{default:a(()=>[i(u,{icon:["fas",l.displayTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" unterstützt die Benutzerverwaltung'+m(l.displayTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),i(g,null,{default:a(()=>[n(' Einstellungen für Display Theme "'+m(l.displayTheme.name)+'" ',1)]),_:1}),(r(),f(P(b.getDisplayThemeComponent()),{"display-theme":l.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>b.updateConfiguration(h))},null,40,["display-theme"]))],64)}const H=_(J,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),G={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:H},mixins:[C],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/int_display/active",writeable:!0},{topic:"openWB/optional/int_display/on_if_plugged_in",writeable:!0},{topic:"openWB/optional/int_display/only_local_charge_points",writeable:!0},{topic:"openWB/optional/int_display/rotation",writeable:!0},{topic:"openWB/optional/int_display/standby",writeable:!0},{topic:"openWB/optional/int_display/theme",writeable:!0},{topic:"openWB/system/configurable/display_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.displayThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(l=>l.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},K={class:"optionalComponents"},Z={name:"optionalComponentsForm"},Q={key:0},X={key:1},Y={key:2},ee={key:0};function te(t,e,l,w,v,b){const u=p("openwb-base-button-group-input"),y=p("openwb-base-heading"),g=p("openwb-base-range-input"),h=p("openwb-base-alert"),D=p("openwb-base-select-input"),T=p("openwb-display-theme-proxy"),W=p("openwb-base-card"),k=p("openwb-base-submit-buttons");return r(),d("div",K,[o("form",Z,[i(W,{title:"Display (intern oder extern)"},{default:a(()=>[i(u,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/optional/int_display/active",s))},{help:a(()=>[...e[9]||(e[9]=[n(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(r(),d("div",Q,[i(u,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=s=>t.updateState("openWB/optional/int_display/rotation",s))},{help:a(()=>[...e[10]||(e[10]=[n(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),o("br",null,null,-1),n(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])]),_:1},8,["model-value"]),e[13]||(e[13]=o("hr",null,null,-1)),i(y,null,{default:a(()=>[...e[11]||(e[11]=[n(" Display Standby ",-1)])]),_:1}),i(g,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/optional/int_display/standby",s))},{help:a(()=>[...e[12]||(e[12]=[n(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])]),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),d("div",X,[e[15]||(e[15]=o("hr",null,null,-1)),i(h,{subtype:"info"},{default:a(()=>[...e[14]||(e[14]=[n(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),d("div",Y,[e[19]||(e[19]=o("hr",null,null,-1)),i(u,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=s=>t.updateState("openWB/optional/int_display/only_local_charge_points",s))},{help:a(()=>[...e[16]||(e[16]=[n(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])]),_:1},8,["model-value"]),i(h,{subtype:"info",class:"mb-3"},{default:a(()=>[...e[17]||(e[17]=[o("p",null,[n(" Wenn die "),o("strong",null,"Benutzerverwaltung"),n(" aktiviert ist, werden nur die Ladepunkte angezeigt, für welche dem jeweiligen Display-Benutzer auch Zugriffsrechte gegeben wurden. Ebenfalls ist es möglich, dass bestimmte Daten von Wechselrichtern, Fahrzeugen, etc. nicht angezeigt werden, wenn der Benutzer hierfür keine Berechtigung besitzt. ")],-1),o("p",null,' Bei aktivierter Benutzerverwaltung wird empfohlen, die Anzeige auf "Alle" Ladepunkte zu setzen, damit es nicht zu Überschneidungen zwischen diesen Einschränkungen kommt. ',-1),o("p",null,[n(" Das "),o("strong",null,"integrierte Display"),n(' einer openWB series2 oder standalone verwendet automatisch den Benutzer "Display-Intern". Für '),o("strong",null,"externe openWB"),n(' im Steuerungsmodus "secondary" werden automatisch Benutzer mit dem Namen "Display-'),o("i",null,"IP"),n('", wobei '),o("i",null,"IP"),n(" für die jeweilige IP-Adresse der secondary openWB steht, angelegt. ")],-1)])]),_:1}),e[20]||(e[20]=o("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(r(),d("div",ee,[i(D,{class:"mb-2",title:"Theme des Displays",groups:b.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=s=>b.updateSelectedDisplayTheme(s))},{help:a(()=>[...e[18]||(e[18]=[n(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])]),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(r(),f(T,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=s=>b.updateConfiguration("openWB/optional/int_display/theme",s))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),i(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[7]||(e[7]=s=>t.$emit("reset")),onDefaults:e[8]||(e[8]=s=>t.$emit("defaults"))})])])}const ne=_(G,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DisplayConfiguration.vue"]]),le=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"}));export{L as D,le as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/displayTheme-D2mZh2_2.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-CyH1Au4V.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/displayTheme-DSCxcdhW.js"])))=>i.map(i=>d[i]); +import{_ as B,C}from"./index-CyH1Au4V.js";import{_ as $}from"./dynamic-import-helper-BheWnx7M.js";import{F as z,l as S,ac as O,ad as V,ae as q,af as E}from"./vendor-fortawesome-CBc-2W7w.js";import{_,l as p,k as r,e as d,y as f,q as a,A as n,J as m,m as i,x as o,a1 as M,a2 as P,K as A,u as c}from"./vendor-Bo8v-nQD.js";const j={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},L=_(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),N={name:"DisplayThemeFallback",mixins:[L]},F={class:"display-theme-fallback"},I={key:1};function U(t,e,l,w,v,b){const u=p("openwb-base-alert"),y=p("openwb-base-textarea");return r(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(r(),f(u,{key:0,subtype:"info"},{default:a(()=>[n(' Das Display-Theme "'+m(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),d("div",I,[i(u,{subtype:"warning"},{default:a(()=>[n(' Es wurde keine Konfigurationsseite für das Display-Theme "'+m(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),i(y,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=g=>t.updateConfiguration(g,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[n(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),i(u,{subtype:"info"},{default:a(()=>[o("pre",null,m(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const x=_(N,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);S.add(O,V,q,E);const J={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:z},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),M({loader:()=>$(Object.assign({"./cards/displayTheme.vue":()=>B(()=>import("./displayTheme-D2mZh2_2.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./colors/displayTheme.vue":()=>B(()=>import("./displayTheme-DSCxcdhW.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10]))}),`./${this.displayTheme.type}/displayTheme.vue`,3),errorComponent:x})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function R(t,e,l,w,v,b){const u=p("font-awesome-icon"),y=p("openwb-base-alert"),g=p("openwb-base-heading");return r(),d(A,null,[l.displayTheme.official?(r(),f(y,{key:0,subtype:"success"},{default:a(()=>[i(u,{icon:["fas","certificate"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(y,{key:1,subtype:"info"},{default:a(()=>[i(u,{icon:["fas","people-group"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),i(y,{subtype:l.displayTheme.userManagementSupported?"success":"warning"},{default:a(()=>[i(u,{icon:["fas",l.displayTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" unterstützt die Benutzerverwaltung'+m(l.displayTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),i(g,null,{default:a(()=>[n(' Einstellungen für Display Theme "'+m(l.displayTheme.name)+'" ',1)]),_:1}),(r(),f(P(b.getDisplayThemeComponent()),{"display-theme":l.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>b.updateConfiguration(h))},null,40,["display-theme"]))],64)}const H=_(J,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),G={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:H},mixins:[C],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/int_display/active",writeable:!0},{topic:"openWB/optional/int_display/on_if_plugged_in",writeable:!0},{topic:"openWB/optional/int_display/only_local_charge_points",writeable:!0},{topic:"openWB/optional/int_display/rotation",writeable:!0},{topic:"openWB/optional/int_display/standby",writeable:!0},{topic:"openWB/optional/int_display/theme",writeable:!0},{topic:"openWB/system/configurable/display_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.displayThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(l=>l.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},K={class:"optionalComponents"},Z={name:"optionalComponentsForm"},Q={key:0},X={key:1},Y={key:2},ee={key:0};function te(t,e,l,w,v,b){const u=p("openwb-base-button-group-input"),y=p("openwb-base-heading"),g=p("openwb-base-range-input"),h=p("openwb-base-alert"),D=p("openwb-base-select-input"),T=p("openwb-display-theme-proxy"),W=p("openwb-base-card"),k=p("openwb-base-submit-buttons");return r(),d("div",K,[o("form",Z,[i(W,{title:"Display (intern oder extern)"},{default:a(()=>[i(u,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/optional/int_display/active",s))},{help:a(()=>[...e[9]||(e[9]=[n(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(r(),d("div",Q,[i(u,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=s=>t.updateState("openWB/optional/int_display/rotation",s))},{help:a(()=>[...e[10]||(e[10]=[n(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),o("br",null,null,-1),n(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])]),_:1},8,["model-value"]),e[13]||(e[13]=o("hr",null,null,-1)),i(y,null,{default:a(()=>[...e[11]||(e[11]=[n(" Display Standby ",-1)])]),_:1}),i(g,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/optional/int_display/standby",s))},{help:a(()=>[...e[12]||(e[12]=[n(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])]),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),d("div",X,[e[15]||(e[15]=o("hr",null,null,-1)),i(h,{subtype:"info"},{default:a(()=>[...e[14]||(e[14]=[n(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),d("div",Y,[e[19]||(e[19]=o("hr",null,null,-1)),i(u,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=s=>t.updateState("openWB/optional/int_display/only_local_charge_points",s))},{help:a(()=>[...e[16]||(e[16]=[n(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])]),_:1},8,["model-value"]),i(h,{subtype:"info",class:"mb-3"},{default:a(()=>[...e[17]||(e[17]=[o("p",null,[n(" Wenn die "),o("strong",null,"Benutzerverwaltung"),n(" aktiviert ist, werden nur die Ladepunkte angezeigt, für welche dem jeweiligen Display-Benutzer auch Zugriffsrechte gegeben wurden. Ebenfalls ist es möglich, dass bestimmte Daten von Wechselrichtern, Fahrzeugen, etc. nicht angezeigt werden, wenn der Benutzer hierfür keine Berechtigung besitzt. ")],-1),o("p",null,' Bei aktivierter Benutzerverwaltung wird empfohlen, die Anzeige auf "Alle" Ladepunkte zu setzen, damit es nicht zu Überschneidungen zwischen diesen Einschränkungen kommt. ',-1),o("p",null,[n(" Das "),o("strong",null,"integrierte Display"),n(' einer openWB series2 oder standalone verwendet automatisch den Benutzer "Display-Intern". Für '),o("strong",null,"externe openWB"),n(' im Steuerungsmodus "secondary" werden automatisch Benutzer mit dem Namen "Display-'),o("i",null,"IP"),n('", wobei '),o("i",null,"IP"),n(" für die jeweilige IP-Adresse der secondary openWB steht, angelegt. ")],-1)])]),_:1}),e[20]||(e[20]=o("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(r(),d("div",ee,[i(D,{class:"mb-2",title:"Theme des Displays",groups:b.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=s=>b.updateSelectedDisplayTheme(s))},{help:a(()=>[...e[18]||(e[18]=[n(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])]),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(r(),f(T,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=s=>b.updateConfiguration("openWB/optional/int_display/theme",s))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),i(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[7]||(e[7]=s=>t.$emit("reset")),onDefaults:e[8]||(e[8]=s=>t.$emit("defaults"))})])])}const ne=_(G,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DisplayConfiguration.vue"]]),le=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"}));export{L as D,le as a}; diff --git a/web/settings/assets/Error-CzwVgK-o.js b/web/settings/assets/Error-BZ1TitTh.js similarity index 88% rename from web/settings/assets/Error-CzwVgK-o.js rename to web/settings/assets/Error-BZ1TitTh.js index 0a0bd7ee85..b731486869 100644 --- a/web/settings/assets/Error-CzwVgK-o.js +++ b/web/settings/assets/Error-BZ1TitTh.js @@ -1 +1 @@ -import{_ as t,l as o,k as n,e as s,m as a,q as c,A as i,J as d}from"./vendor-JxinjXxC.js";const p={name:"OpenwbErrorView"},l={class:"errorPage"};function _(e,u,f,m,g,w){const r=o("OpenwbBaseAlert");return n(),s("div",l,[a(r,{subtype:"danger"},{default:c(()=>[i(" Die angeforderte Seite "+d(e.$route.redirectedFrom?`"${e.$route.redirectedFrom.fullPath}" `:"")+" konnte nicht gefunden werden oder es fehlen Berechtigungen. ",1)]),_:1})])}const $=t(p,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Error.vue"]]);export{$ as default}; +import{_ as t,l as o,k as n,e as s,m as a,q as c,A as i,J as d}from"./vendor-Bo8v-nQD.js";const p={name:"OpenwbErrorView"},l={class:"errorPage"};function _(e,u,f,m,g,w){const r=o("OpenwbBaseAlert");return n(),s("div",l,[a(r,{subtype:"danger"},{default:c(()=>[i(" Die angeforderte Seite "+d(e.$route.redirectedFrom?`"${e.$route.redirectedFrom.fullPath}" `:"")+" konnte nicht gefunden werden oder es fehlen Berechtigungen. ",1)]),_:1})])}const $=t(p,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Error.vue"]]);export{$ as default}; diff --git a/web/settings/assets/GeneralChargeConfiguration-JQcEANi8.js b/web/settings/assets/GeneralChargeConfiguration-tvikf7OT.js similarity index 91% rename from web/settings/assets/GeneralChargeConfiguration-JQcEANi8.js rename to web/settings/assets/GeneralChargeConfiguration-tvikf7OT.js index f68a6a9073..7815ee616d 100644 --- a/web/settings/assets/GeneralChargeConfiguration-JQcEANi8.js +++ b/web/settings/assets/GeneralChargeConfiguration-tvikf7OT.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/flexible_tariff-Dlg38UZN.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/index-BBXHIMfY.js","assets/vendor-fortawesome-DD1DIYBi.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/flexible_tariff-BbtEphLP.js","assets/flexible_tariff-CNNa5OV-.js","assets/flexible_tariff-CWf9GT1d.js","assets/flexible_tariff-gwuyMP87.css","assets/flexible_tariff-PmiVaPpv.js","assets/flexible_tariff-DqMzly43.js","assets/flexible_tariff-ZQ3pyAsQ.js","assets/flexible_tariff-D1LP0FYy.js","assets/flexible_tariff-k72Cumcb.js","assets/flexible_tariff-BAHUZdp_.js","assets/flexible_tariff-CTpYrhmT.js","assets/grid_fee-BxlzNkwq.js","assets/grid_fee-Cs94pth1.css"])))=>i.map(i=>d[i]); -import{_ as b,C as L}from"./index-BBXHIMfY.js";import{_ as F}from"./dynamic-import-helper-BheWnx7M.js";import{F as C,l as P,ac as S,ad as $}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as w,l,k as a,e as p,y as _,q as i,A as o,J as m,m as n,x as u,a1 as O,a2 as T,K as z,u as y}from"./vendor-JxinjXxC.js";const A={props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},N=w(A,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/FlexibleTariffConfigMixin.vue"]]),G={name:"FlexibleTariffConfigFallback",mixins:[N]},U={class:"flexible-tariff-fallback"},I={key:1};function R(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",U,[Object.keys(t.flexibleTariff.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.flexibleTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",I,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.flexibleTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.flexibleTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.flexibleTariff.configuration,void 0,2)),1)]),_:1})]))])}const j=w(G,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffConfigFallback.vue"]]);P.add(S,$);const M={name:"OpenwbFlexibleTariffProxy",components:{FontAwesomeIcon:C},props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading flexible tariff: ${this.flexibleTariff.type}`),O({loader:()=>F(Object.assign({"./awattar/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Dlg38UZN.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./ekz/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-BbtEphLP.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./energycharts/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CNNa5OV-.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./fixed_hours/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CWf9GT1d.js"),__vite__mapDeps([13,1,2,4,3,5,6,7,8,9,10,14])),"./groupe_e/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-PmiVaPpv.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./octopusenergy/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DqMzly43.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./ostrom/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-ZQ3pyAsQ.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./rabot/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-D1LP0FYy.js"),__vite__mapDeps([18,8,1,2,3,4,5,6,7,9,10])),"./tibber/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-k72Cumcb.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./voltego/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-BAHUZdp_.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./westfalen_wind/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CTpYrhmT.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10]))}),`./${this.flexibleTariff.type}/flexible_tariff.vue`,3),errorComponent:j})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Z(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.flexibleTariff.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.flexibleTariff.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"flexible-tariff":d.flexibleTariff,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["flexible-tariff"]))],64)}const K=w(M,[["render",Z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffProxy.vue"]]),J={props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},H=w(J,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/GridFeeConfigMixin.vue"]]),Q={name:"GridFeeConfigFallback",mixins:[H]},X={class:"grid-fee-fallback"},Y={key:1};function ee(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",X,[Object.keys(t.gridFee.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.gridFee.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",Y,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.gridFee.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.gridFee.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.gridFee.configuration,void 0,2)),1)]),_:1})]))])}const te=w(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeConfigFallback.vue"]]);P.add(S,$);const ne={name:"OpenwbGridFeeProxy",components:{FontAwesomeIcon:C},props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading grid fee: ${this.gridFee.type}`),O({loader:()=>F(Object.assign({"./fixed_hours/grid_fee.vue":()=>b(()=>import("./grid_fee-BxlzNkwq.js"),__vite__mapDeps([22,1,2,4,3,5,6,7,8,9,10,23]))}),`./${this.gridFee.type}/grid_fee.vue`,3),errorComponent:te})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ie(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.gridFee.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.gridFee.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"grid-fee":d.gridFee,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["grid-fee"]))],64)}const oe=w(ne,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeProxy.vue"]]),re={name:"OpenwbGeneralChargeConfigView",components:{OpenwbFlexibleTariffProxy:K,OpenwbGridFeeProxy:oe},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/chargemode_config/unbalanced_load",writeable:!0},{topic:"openWB/general/chargemode_config/unbalanced_load_limit",writeable:!0},{topic:"openWB/general/prices/bat",writeable:!0},{topic:"openWB/general/prices/grid",writeable:!0},{topic:"openWB/general/prices/pv",writeable:!0},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!0},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!0},{topic:"openWB/optional/ocpp/config",writeable:!0},{topic:"openWB/system/configurable/flexible_tariffs",writeable:!1},{topic:"openWB/system/configurable/grid_fees",writeable:!1}]}},computed:{flexibleTariffList(){return this.$store.state.mqtt["openWB/system/configurable/flexible_tariffs"]},gridFeeList(){return this.$store.state.mqtt["openWB/system/configurable/grid_fees"]}},methods:{getFlexibleTariffDefaultConfiguration(t){const e=this.flexibleTariffList.find(d=>d.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedFlexibleTariff(t){this.updateState("openWB/optional/ep/flexible_tariff/provider",t,"type"),this.updateState("openWB/optional/ep/flexible_tariff/provider",this.getFlexibleTariffDefaultConfiguration(t))},getGridFeeDefaultConfiguration(t){const e=this.gridFeeList.find(d=>d.value==t);return e&&Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for grid fee type!",t),{})},updateSelectedGridFee(t){this.updateState("openWB/optional/ep/grid_fee/provider",t,"type"),this.updateState("openWB/optional/ep/grid_fee/provider",this.getGridFeeDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalChargeConfig"},le={name:"generalChargeConfigForm"},se={key:0},de={key:1},ue={key:0},pe={key:1},fe={key:1},ge={key:2},be={key:0},me={key:1},_e={key:0};function ce(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-button-group-input"),c=l("openwb-base-range-input"),v=l("openwb-base-card"),B=l("openwb-base-heading"),W=l("openwb-base-number-input"),x=l("openwb-base-select-input"),E=l("openwb-flexible-tariff-proxy"),D=l("openwb-grid-fee-proxy"),V=l("openwb-base-text-input"),q=l("openwb-base-submit-buttons");return a(),p("div",ae,[u("form",le,[n(v,{title:"Allgemein"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",se,[n(s,{subtype:"info"},{default:i(()=>[...e[15]||(e[15]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",de,[n(g,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load",r))},{help:i(()=>[...e[16]||(e[16]=[o(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),u("br",null,null,-1),o(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),_(c,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",r))},{help:i(()=>[...e[17]||(e[17]=[o(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])]),_:1},8,["model-value"])):y("",!0)]))]),_:1}),n(v,{title:"Energiekosten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",ue,[n(s,{subtype:"info"},{default:i(()=>[...e[18]||(e[18]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",pe,[n(B,{class:"mt-0"},{help:i(()=>[...e[19]||(e[19]=[o(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),u("br",null,null,-1),o(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])]),default:i(()=>[e[20]||(e[20]=o(" Berechnung der Ladekosten ",-1))]),_:1}),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[...e[21]||(e[21]=[o(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])]),_:1})):y("",!0),n(W,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/general/prices/grid",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateState("openWB/general/prices/bat",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateState("openWB/general/prices/pv",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),e[26]||(e[26]=u("hr",null,null,-1)),n(B,null,{default:i(()=>[...e[22]||(e[22]=[o(" Variable Strompreise ",-1)])]),_:1}),n(s,{subtype:"info"},{default:i(()=>[...e[23]||(e[23]=[u("p",null,' Ist in den Lademodi Eco und Zeitladen "Preisbasiertes Laden" gewählt, wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Zeiten geladen. ',-1),u("p",null,' Wenn keine Preise abgefragt werden können oder "Preisbasiertes Laden" abgewählt wurde, wird in Modus Eco immer geladen bzw. bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ',-1),u("p",null," Wenn sowohl dynamische Stromtarife als auch Netzentgelte konfiguriert sind, werden beide zum Gesamt-Strompreis verrechnet. Dabei wird angenommen, dass der Standardpreis der Netzentgelte in dem Stromtarif enthalten ist. Dementsprechend wird die Differenz zwischen dem Standardpreis der Netzentgelte und den aktuellen Netzentgelten zum Strompreis addiert, um den Gesamt-Strompreis zu ermitteln. ",-1),u("p",null,"Beispiel:",-1),u("ul",null,[u("li",null,"Standardpreis der Netzentgelte: 10 ct/kWh"),u("li",null,"Aktueller Preis der Netzentgelte: 5 ct/kWh"),u("li",null,"Strompreis: 20 ct/kWh"),u("li",null,"Gesamt-Strompreis: 20 + (5 - 10) = 15 ct/kWh")],-1)])]),_:1}),n(B,null,{default:i(()=>[...e[24]||(e[24]=[o(" Dynamische Stromtarife ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.flexibleTariffList,"model-value":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type:"","onUpdate:modelValue":e[5]||(e[5]=r=>f.updateSelectedFlexibleTariff(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),p("div",fe,[n(E,{"flexible-tariff":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"],"onUpdate:configuration":e[6]||(e[6]=r=>f.updateConfiguration("openWB/optional/ep/flexible_tariff/provider",r))},null,8,["flexible-tariff"])])):y("",!0),n(B,null,{default:i(()=>[...e[25]||(e[25]=[o(" Dynamische Netzentgelte ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.gridFeeList,"model-value":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=r=>f.updateSelectedGridFee(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]&&t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type?(a(),p("div",ge,[n(D,{"grid-fee":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"],"onUpdate:configuration":e[8]||(e[8]=r=>f.updateConfiguration("openWB/optional/ep/grid_fee/provider",r))},null,8,["grid-fee"])])):y("",!0)]))]),_:1}),n(v,{title:"OCPP Anbindung"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",be,[n(s,{subtype:"info"},{default:i(()=>[...e[27]||(e[27]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",me,[n(g,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active,"onUpdate:modelValue":e[9]||(e[9]=r=>t.updateState("openWB/optional/ocpp/config",r,"active"))},null,8,["model-value"]),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(a(),p("div",_e,[n(s,{subtype:"info"},{default:i(()=>[...e[28]||(e[28]=[o(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens sowie alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),u("br",null,null,-1),o(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB unter Einstellungen -> Konfiguration im zugehörigen -> Ladepunkt eingetragen werden. ",-1)])]),_:1}),n(V,{title:"URL des OCPP-Backends",subtype:"url","model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.url,"onUpdate:modelValue":e[10]||(e[10]=r=>t.updateState("openWB/optional/ocpp/config",r,"url"))},null,8,["model-value"]),n(x,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.version,"onUpdate:modelValue":e[11]||(e[11]=r=>t.updateState("openWB/optional/ocpp/config",r,"version"))},null,8,["model-value"])])):y("",!0)]))]),_:1}),n(q,{"form-name":"generalChargeConfigForm",onSave:e[12]||(e[12]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[13]||(e[13]=r=>t.$emit("reset")),onDefaults:e[14]||(e[14]=r=>t.$emit("defaults"))})])])}const ve=w(re,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfiguration.vue"]]),Be=Object.freeze(Object.defineProperty({__proto__:null,default:ve},Symbol.toStringTag,{value:"Module"}));export{N as F,H as G,Be as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/flexible_tariff-w7-xLoOe.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-CyH1Au4V.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/flexible_tariff-B7GMl0Rk.js","assets/flexible_tariff-CYFz2wtm.js","assets/flexible_tariff-BXSuQZLV.js","assets/flexible_tariff-gwuyMP87.css","assets/flexible_tariff-DTKfP5xv.js","assets/flexible_tariff-CTd9X6xC.js","assets/flexible_tariff-Dd4agfmV.js","assets/flexible_tariff-D2I_bbD1.js","assets/flexible_tariff-DguwaAtd.js","assets/flexible_tariff-DBcMB1Nb.js","assets/flexible_tariff-BmnVQBW5.js","assets/grid_fee-BoQDv0Kx.js","assets/grid_fee-Cs94pth1.css"])))=>i.map(i=>d[i]); +import{_ as b,C as L}from"./index-CyH1Au4V.js";import{_ as F}from"./dynamic-import-helper-BheWnx7M.js";import{F as C,l as P,ac as S,ad as $}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as w,l,k as a,e as p,y as _,q as i,A as o,J as m,m as n,x as u,a1 as O,a2 as T,K as z,u as y}from"./vendor-Bo8v-nQD.js";const A={props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},N=w(A,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/FlexibleTariffConfigMixin.vue"]]),G={name:"FlexibleTariffConfigFallback",mixins:[N]},U={class:"flexible-tariff-fallback"},I={key:1};function R(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",U,[Object.keys(t.flexibleTariff.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.flexibleTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",I,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.flexibleTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.flexibleTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.flexibleTariff.configuration,void 0,2)),1)]),_:1})]))])}const j=w(G,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffConfigFallback.vue"]]);P.add(S,$);const M={name:"OpenwbFlexibleTariffProxy",components:{FontAwesomeIcon:C},props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading flexible tariff: ${this.flexibleTariff.type}`),O({loader:()=>F(Object.assign({"./awattar/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-w7-xLoOe.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./ekz/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-B7GMl0Rk.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./energycharts/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CYFz2wtm.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./fixed_hours/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-BXSuQZLV.js"),__vite__mapDeps([13,1,2,4,3,5,6,7,8,9,10,14])),"./groupe_e/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DTKfP5xv.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./octopusenergy/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CTd9X6xC.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./ostrom/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Dd4agfmV.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./rabot/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-D2I_bbD1.js"),__vite__mapDeps([18,8,1,2,3,4,5,6,7,9,10])),"./tibber/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DguwaAtd.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./voltego/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DBcMB1Nb.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./westfalen_wind/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-BmnVQBW5.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10]))}),`./${this.flexibleTariff.type}/flexible_tariff.vue`,3),errorComponent:j})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Z(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.flexibleTariff.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.flexibleTariff.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"flexible-tariff":d.flexibleTariff,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["flexible-tariff"]))],64)}const K=w(M,[["render",Z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffProxy.vue"]]),J={props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},H=w(J,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/GridFeeConfigMixin.vue"]]),Q={name:"GridFeeConfigFallback",mixins:[H]},X={class:"grid-fee-fallback"},Y={key:1};function ee(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",X,[Object.keys(t.gridFee.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.gridFee.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",Y,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.gridFee.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.gridFee.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.gridFee.configuration,void 0,2)),1)]),_:1})]))])}const te=w(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeConfigFallback.vue"]]);P.add(S,$);const ne={name:"OpenwbGridFeeProxy",components:{FontAwesomeIcon:C},props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading grid fee: ${this.gridFee.type}`),O({loader:()=>F(Object.assign({"./fixed_hours/grid_fee.vue":()=>b(()=>import("./grid_fee-BoQDv0Kx.js"),__vite__mapDeps([22,1,2,4,3,5,6,7,8,9,10,23]))}),`./${this.gridFee.type}/grid_fee.vue`,3),errorComponent:te})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ie(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.gridFee.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.gridFee.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"grid-fee":d.gridFee,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["grid-fee"]))],64)}const oe=w(ne,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeProxy.vue"]]),re={name:"OpenwbGeneralChargeConfigView",components:{OpenwbFlexibleTariffProxy:K,OpenwbGridFeeProxy:oe},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/chargemode_config/unbalanced_load",writeable:!0},{topic:"openWB/general/chargemode_config/unbalanced_load_limit",writeable:!0},{topic:"openWB/general/prices/bat",writeable:!0},{topic:"openWB/general/prices/grid",writeable:!0},{topic:"openWB/general/prices/pv",writeable:!0},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!0},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!0},{topic:"openWB/optional/ocpp/config",writeable:!0},{topic:"openWB/system/configurable/flexible_tariffs",writeable:!1},{topic:"openWB/system/configurable/grid_fees",writeable:!1}]}},computed:{flexibleTariffList(){return this.$store.state.mqtt["openWB/system/configurable/flexible_tariffs"]},gridFeeList(){return this.$store.state.mqtt["openWB/system/configurable/grid_fees"]}},methods:{getFlexibleTariffDefaultConfiguration(t){const e=this.flexibleTariffList.find(d=>d.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedFlexibleTariff(t){this.updateState("openWB/optional/ep/flexible_tariff/provider",t,"type"),this.updateState("openWB/optional/ep/flexible_tariff/provider",this.getFlexibleTariffDefaultConfiguration(t))},getGridFeeDefaultConfiguration(t){const e=this.gridFeeList.find(d=>d.value==t);return e&&Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for grid fee type!",t),{})},updateSelectedGridFee(t){this.updateState("openWB/optional/ep/grid_fee/provider",t,"type"),this.updateState("openWB/optional/ep/grid_fee/provider",this.getGridFeeDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalChargeConfig"},le={name:"generalChargeConfigForm"},se={key:0},de={key:1},ue={key:0},pe={key:1},fe={key:1},ge={key:2},be={key:0},me={key:1},_e={key:0};function ce(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-button-group-input"),c=l("openwb-base-range-input"),v=l("openwb-base-card"),B=l("openwb-base-heading"),W=l("openwb-base-number-input"),x=l("openwb-base-select-input"),E=l("openwb-flexible-tariff-proxy"),D=l("openwb-grid-fee-proxy"),V=l("openwb-base-text-input"),q=l("openwb-base-submit-buttons");return a(),p("div",ae,[u("form",le,[n(v,{title:"Allgemein"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",se,[n(s,{subtype:"info"},{default:i(()=>[...e[15]||(e[15]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",de,[n(g,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load",r))},{help:i(()=>[...e[16]||(e[16]=[o(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),u("br",null,null,-1),o(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),_(c,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",r))},{help:i(()=>[...e[17]||(e[17]=[o(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])]),_:1},8,["model-value"])):y("",!0)]))]),_:1}),n(v,{title:"Energiekosten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",ue,[n(s,{subtype:"info"},{default:i(()=>[...e[18]||(e[18]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",pe,[n(B,{class:"mt-0"},{help:i(()=>[...e[19]||(e[19]=[o(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),u("br",null,null,-1),o(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])]),default:i(()=>[e[20]||(e[20]=o(" Berechnung der Ladekosten ",-1))]),_:1}),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[...e[21]||(e[21]=[o(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])]),_:1})):y("",!0),n(W,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/general/prices/grid",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateState("openWB/general/prices/bat",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateState("openWB/general/prices/pv",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),e[26]||(e[26]=u("hr",null,null,-1)),n(B,null,{default:i(()=>[...e[22]||(e[22]=[o(" Variable Strompreise ",-1)])]),_:1}),n(s,{subtype:"info"},{default:i(()=>[...e[23]||(e[23]=[u("p",null,' Ist in den Lademodi Eco und Zeitladen "Preisbasiertes Laden" gewählt, wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Zeiten geladen. ',-1),u("p",null,' Wenn keine Preise abgefragt werden können oder "Preisbasiertes Laden" abgewählt wurde, wird in Modus Eco immer geladen bzw. bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ',-1),u("p",null," Wenn sowohl dynamische Stromtarife als auch Netzentgelte konfiguriert sind, werden beide zum Gesamt-Strompreis verrechnet. Dabei wird angenommen, dass der Standardpreis der Netzentgelte in dem Stromtarif enthalten ist. Dementsprechend wird die Differenz zwischen dem Standardpreis der Netzentgelte und den aktuellen Netzentgelten zum Strompreis addiert, um den Gesamt-Strompreis zu ermitteln. ",-1),u("p",null,"Beispiel:",-1),u("ul",null,[u("li",null,"Standardpreis der Netzentgelte: 10 ct/kWh"),u("li",null,"Aktueller Preis der Netzentgelte: 5 ct/kWh"),u("li",null,"Strompreis: 20 ct/kWh"),u("li",null,"Gesamt-Strompreis: 20 + (5 - 10) = 15 ct/kWh")],-1)])]),_:1}),n(B,null,{default:i(()=>[...e[24]||(e[24]=[o(" Dynamische Stromtarife ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.flexibleTariffList,"model-value":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type:"","onUpdate:modelValue":e[5]||(e[5]=r=>f.updateSelectedFlexibleTariff(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),p("div",fe,[n(E,{"flexible-tariff":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"],"onUpdate:configuration":e[6]||(e[6]=r=>f.updateConfiguration("openWB/optional/ep/flexible_tariff/provider",r))},null,8,["flexible-tariff"])])):y("",!0),n(B,null,{default:i(()=>[...e[25]||(e[25]=[o(" Dynamische Netzentgelte ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.gridFeeList,"model-value":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=r=>f.updateSelectedGridFee(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]&&t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type?(a(),p("div",ge,[n(D,{"grid-fee":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"],"onUpdate:configuration":e[8]||(e[8]=r=>f.updateConfiguration("openWB/optional/ep/grid_fee/provider",r))},null,8,["grid-fee"])])):y("",!0)]))]),_:1}),n(v,{title:"OCPP Anbindung"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",be,[n(s,{subtype:"info"},{default:i(()=>[...e[27]||(e[27]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",me,[n(g,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active,"onUpdate:modelValue":e[9]||(e[9]=r=>t.updateState("openWB/optional/ocpp/config",r,"active"))},null,8,["model-value"]),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(a(),p("div",_e,[n(s,{subtype:"info"},{default:i(()=>[...e[28]||(e[28]=[o(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens sowie alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),u("br",null,null,-1),o(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB unter Einstellungen -> Konfiguration im zugehörigen -> Ladepunkt eingetragen werden. ",-1)])]),_:1}),n(V,{title:"URL des OCPP-Backends",subtype:"url","model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.url,"onUpdate:modelValue":e[10]||(e[10]=r=>t.updateState("openWB/optional/ocpp/config",r,"url"))},null,8,["model-value"]),n(x,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.version,"onUpdate:modelValue":e[11]||(e[11]=r=>t.updateState("openWB/optional/ocpp/config",r,"version"))},null,8,["model-value"])])):y("",!0)]))]),_:1}),n(q,{"form-name":"generalChargeConfigForm",onSave:e[12]||(e[12]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[13]||(e[13]=r=>t.$emit("reset")),onDefaults:e[14]||(e[14]=r=>t.$emit("defaults"))})])])}const ve=w(re,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfiguration.vue"]]),Be=Object.freeze(Object.defineProperty({__proto__:null,default:ve},Symbol.toStringTag,{value:"Module"}));export{N as F,H as G,Be as a}; diff --git a/web/settings/assets/GeneralConfiguration-D9XW5ejg.js b/web/settings/assets/GeneralConfiguration-CMMYSFfh.js similarity index 96% rename from web/settings/assets/GeneralConfiguration-D9XW5ejg.js rename to web/settings/assets/GeneralConfiguration-CMMYSFfh.js index 0ee446f395..cd90681216 100644 --- a/web/settings/assets/GeneralConfiguration-D9XW5ejg.js +++ b/web/settings/assets/GeneralConfiguration-CMMYSFfh.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/webTheme-Zd9UenAJ.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-DD1DIYBi.js","assets/index-BBXHIMfY.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/index-TrnuT1ez.css","assets/SystemVersion-ClVKOJRu.js","assets/dynamic-import-helper-BheWnx7M.js","assets/webTheme-BOkimBx9.js","assets/OpenwbSortableList-BnacrijU.js","assets/OpenwbSortableList-C11EhIQj.css","assets/webTheme-dYPxGIXZ.js"])))=>i.map(i=>d[i]); -import{F as S,l as k,ac as z,ad as E,ae as C,af as D,a6 as N,X as A,G as L,ap as U,aq as P,ar as J}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as B,C as O}from"./index-BBXHIMfY.js";import{S as M}from"./SystemVersion-ClVKOJRu.js";import{_ as R}from"./dynamic-import-helper-BheWnx7M.js";import{_ as v,l as p,k as r,e as m,y as f,q as o,A as s,J as c,m as n,x as d,a1 as F,a2 as x,K as I,u as b}from"./vendor-JxinjXxC.js";const j={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},G=v(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),H={name:"WebThemeFallback",mixins:[G]},Z={class:"web-theme-fallback"},K={key:1};function Q(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-textarea");return r(),m("div",Z,[Object.keys(t.webTheme.configuration).length==0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[s(' Das Web Theme "'+c(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),m("div",K,[n(g,{subtype:"warning"},{default:o(()=>[s(' Es wurde keine Konfigurationsseite für das Web Theme "'+c(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[s(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(g,{subtype:"info"},{default:o(()=>[d("pre",null,c(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const X=v(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);k.add(z,E,C,D);const Y={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:S},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),F({loader:()=>R(Object.assign({"./colors/webTheme.vue":()=>B(()=>import("./webTheme-Zd9UenAJ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./koala/webTheme.vue":()=>B(()=>import("./webTheme-BOkimBx9.js"),__vite__mapDeps([12,13,4,1,2,3,5,6,7,8,9,14,10,11])),"./standard_legacy/webTheme.vue":()=>B(()=>import("./webTheme-dYPxGIXZ.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.webTheme.type}/webTheme.vue`,3),errorComponent:X})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ee(t,e,u,W,V,_){const g=p("font-awesome-icon"),l=p("openwb-base-alert"),h=p("openwb-base-heading");return r(),m(I,null,[u.webTheme.official?(r(),f(l,{key:0,subtype:"success"},{default:o(()=>[n(g,{icon:["fas","certificate"]}),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(l,{key:1,subtype:"info"},{default:o(()=>[n(g,{icon:["fas","people-group"]}),e[1]||(e[1]=s(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1})),n(l,{subtype:u.webTheme.userManagementSupported?"success":"warning"},{default:o(()=>[n(g,{icon:["fas",u.webTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" unterstützt die Benutzerverwaltung'+c(u.webTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),n(h,null,{default:o(()=>[s(' Einstellungen für Web Theme "'+c(u.webTheme.name)+'" ',1)]),_:1}),(r(),f(x(_.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=w=>_.updateConfiguration(w))},null,40,["web-theme"]))],64)}const te=v(Y,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);k.add(N,A,L,U,P,J);const ne={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:te,FontAwesomeIcon:S},mixins:[O,M],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/allow_unencrypted_access",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!0},{topic:"openWB/general/control_interval",writeable:!0},{topic:"openWB/general/extern",writeable:!0},{topic:"openWB/general/grid_protection_configured",writeable:!0},{topic:"openWB/general/http_api",writeable:!0},{topic:"openWB/general/modbus_control",writeable:!0},{topic:"openWB/general/range_unit",writeable:!0},{topic:"openWB/general/temporary_charge_templates_active",writeable:!0},{topic:"openWB/general/web_theme",writeable:!0},{topic:"openWB/system/configurable/web_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.webThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},disableExternModeSwitch(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||this.$store.state.mqtt["openWB/general/allow_unencrypted_access"]===!1}},methods:{getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalConfig"},oe={name:"generalConfigForm"},se={key:1},le={key:1},re={key:2},ie={key:0},ue={key:0},de={key:1},ge={key:0},me={key:1},pe=["href"],be={key:0},fe={key:0},_e={key:1};function ce(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-button-group-input"),h=p("RouterLink"),w=p("openwb-base-card"),y=p("openwb-base-heading"),T=p("openwb-base-select-input"),q=p("openwb-web-theme-proxy"),i=p("font-awesome-icon"),$=p("openwb-base-submit-buttons");return r(),m("div",ae,[d("form",oe,[n(w,{title:"Steuerungsmodus"},{default:o(()=>[n(g,{subtype:"info"},{default:o(()=>[...e[32]||(e[32]=[d("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Diese werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),d("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])]),_:1}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],disabled:_.disableExternModeSwitch,"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateState("openWB/general/extern",a))},null,8,["disabled","model-value"]),_.disableExternModeSwitch?(r(),f(g,{key:0,subtype:"warning"},{default:o(()=>[e[34]||(e[34]=s(" Die Benutzerverwaltung ist aktiviert oder der unverschlüsselte Zugriff ist nicht erlaubt. Um den Steuerungsmodus ändern zu können, muss die Benutzerverwaltung im Bereich ",-1)),n(h,{to:"/System/SecurityConfiguration"},{default:o(()=>[...e[33]||(e[33]=[s("Sicherheit",-1)])]),_:1}),e[35]||(e[35]=s(" zunächst deaktiviert und der unverschlüsselte Zugang erlaubt werden. ",-1))]),_:1})):b("",!0),u.installAssistantActive?b("",!0):(r(),m("div",se,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),f(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateState("openWB/general/modbus_control",a))},{help:o(()=>[...e[36]||(e[36]=[s(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),d("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),s(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])]),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),m("div",le,[n(g,{subtype:"info",class:"mb-2"},{default:o(()=>[...e[37]||(e[37]=[s(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])]),_:1})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),m("div",re,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=a=>t.updateState("openWB/general/http_api",a))},{help:o(()=>[...e[38]||(e[38]=[d("p",null,[s(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),d("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),s(" dokumentiert. ")],-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/system/security/user_management_active"]===!0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[...e[39]||(e[39]=[s(" Die Benutzerverwaltung ist aktiviert. Es muss bei jedem HTTP-API Zugriff ein gültiger Benutzername und Passwort mittels HTTP Basic Auth übermittelt werden. Es wird empfohlen, hierfür einen separaten Benutzer mit eingeschränkten Rechten anzulegen. ",-1)])]),_:1})):b("",!0)]))]),_:1}),u.installAssistantActive?b("",!0):(r(),m("div",ie,[n(w,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ue,[n(g,{subtype:"info"},{default:o(()=>[...e[40]||(e[40]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),m("div",de,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=a=>t.updateState("openWB/general/control_interval",a))},{help:o(()=>[...e[41]||(e[41]=[s(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),d("br",null,null,-1),d("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])]),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=a=>t.updateState("openWB/general/grid_protection_configured",a))},{help:o(()=>[...e[42]||(e[42]=[s(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),d("br",null,null,-1),d("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])]),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),f(w,{key:1,title:"Bedienung & Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ge,[n(g,{subtype:"info"},{default:o(()=>[...e[43]||(e[43]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",me,[n(l,{title:"Temporäre Ladeeinstellungen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/temporary_charge_templates_active"],"onUpdate:modelValue":e[5]||(e[5]=a=>t.updateState("openWB/general/temporary_charge_templates_active",a))},{help:o(()=>[e[45]||(e[45]=d("p",null,[s(' Bei Auswahl "Ja" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB als "temporäre" Eingaben behandelt. Dies erlaubt z.B. das schnelle, temporäre Umschalten des Lademodus oder deren Detaileinstellungen für eine unplanmäßige Ladeanforderung (Bsp. Voreinstellung -> PV-Laden / unplanmäßig -> Sofort-Laden für Laden wegen unplanmäßigen Termins). '),d("br"),s(" Alle Einstellungen, die unter Einstellungen → Konfiguration → Fahrzeuge → Lade-Profil für das jeweilige Fahrzeug konfiguriert sind, gelten als persistent (dauerhaft). Diese werden bei jedem Abstecken des jeweiligen Fahrzeugs neu geladen - sind also Voreinstellungen (default). ")],-1)),e[46]||(e[46]=d("p",null,' Bei Auswahl "Nein" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB direkt als "persistente" (dauerhafte) Eingaben behandelt. ',-1)),d("p",null,[e[44]||(e[44]=s(" Eine ausführliche Erläuterung mit Beispielen findet Ihr im ",-1)),d("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:einstellungen:allgemein#temporaere_ladeeinstellungen`,target:"_blank",rel:"noopener noreferrer"}," openWB-DokuWiki ",8,pe)])]),_:1},8,["model-value"]),n(y,{class:"mt-0"},{default:o(()=>[...e[47]||(e[47]=[s(" Hauptseite ",-1)])]),_:1}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),m("div",be,[n(T,{class:"mb-2",title:"Theme",groups:_.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[6]||(e[6]=a=>_.updateSelectedWebTheme(a))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),f(q,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[7]||(e[7]=a=>_.updateConfiguration("openWB/general/web_theme",a))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),f(w,{key:2,title:"Lade-Protokoll"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",fe,[n(g,{subtype:"info"},{default:o(()=>[...e[48]||(e[48]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",_e,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[8]||(e[8]=a=>t.updateState("openWB/general/range_unit",a))},null,8,["model-value"]),n(y,null,{default:o(()=>[...e[49]||(e[49]=[s(" Auswahl der Datenfelder ",-1)])]),_:1}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_begin,"onUpdate:modelValue":e[9]||(e[9]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_begin"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[50]||(e[50]=s(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_end,"onUpdate:modelValue":e[10]||(e[10]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_end"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[51]||(e[51]=s(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_time_charged,"onUpdate:modelValue":e[11]||(e[11]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_time_charged"))},{title:o(()=>[n(i,{icon:["fas","clock"]}),e[52]||(e[52]=s(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_costs,"onUpdate:modelValue":e[12]||(e[12]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_costs"))},{title:o(()=>[n(i,{icon:["fas","coins"]}),e[53]||(e[53]=s(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_power_source,"onUpdate:modelValue":e[13]||(e[13]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_power_source"))},{title:o(()=>[n(i,{icon:["fas","pie-chart"]}),e[54]||(e[54]=s(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_name,"onUpdate:modelValue":e[14]||(e[14]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_name"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[55]||(e[55]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_chargemode,"onUpdate:modelValue":e[15]||(e[15]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_chargemode"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[56]||(e[56]=s(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_prio,"onUpdate:modelValue":e[16]||(e[16]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_prio"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[57]||(e[57]=s(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_rfid,"onUpdate:modelValue":e[17]||(e[17]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_rfid"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[58]||(e[58]=s(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_odometer,"onUpdate:modelValue":e[18]||(e[18]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_odometer"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[59]||(e[59]=s(" Kilometerstand ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_start,"onUpdate:modelValue":e[19]||(e[19]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_start"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[60]||(e[60]=s(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_end,"onUpdate:modelValue":e[20]||(e[20]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_end"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[61]||(e[61]=s(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_name,"onUpdate:modelValue":e[21]||(e[21]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_name"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[62]||(e[62]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_serial_number,"onUpdate:modelValue":e[22]||(e[22]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_serial_number"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[63]||(e[63]=s(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_imported_since_mode_switch,"onUpdate:modelValue":e[23]||(e[23]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_imported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[64]||(e[64]=s(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_start,"onUpdate:modelValue":e[24]||(e[24]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[65]||(e[65]=s(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_end,"onUpdate:modelValue":e[25]||(e[25]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[66]||(e[66]=s(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_exported_since_mode_switch,"onUpdate:modelValue":e[26]||(e[26]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_exported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[67]||(e[67]=s(" Entladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_start,"onUpdate:modelValue":e[27]||(e[27]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[68]||(e[68]=s(" Zählerstand bei Entladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_end,"onUpdate:modelValue":e[28]||(e[28]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[69]||(e[69]=s(" Zählerstand bei Entladeende ",-1))]),_:1},8,["model-value"])]))]),_:1})),n($,{"form-name":"generalConfigForm",onSave:e[29]||(e[29]=a=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[30]||(e[30]=a=>t.$emit("reset")),onDefaults:e[31]||(e[31]=a=>t.$emit("defaults"))})])])}const we=v(ne,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfiguration.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:we},Symbol.toStringTag,{value:"Module"}));export{we as G,G as W,ye as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/webTheme-DQBJkymH.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/webTheme-CUZsmlbL.js","assets/OpenwbSortableList-BORHS8nd.js","assets/OpenwbSortableList-C11EhIQj.css","assets/webTheme-D6gb9Bne.js"])))=>i.map(i=>d[i]); +import{F as S,l as k,ac as z,ad as E,ae as C,af as D,a6 as N,X as A,G as L,ap as U,aq as P,ar as J}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as O}from"./index-CyH1Au4V.js";import{S as M}from"./SystemVersion-DQAfG1DR.js";import{_ as R}from"./dynamic-import-helper-BheWnx7M.js";import{_ as v,l as p,k as r,e as m,y as f,q as o,A as s,J as c,m as n,x as d,a1 as F,a2 as x,K as I,u as b}from"./vendor-Bo8v-nQD.js";const j={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},G=v(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),H={name:"WebThemeFallback",mixins:[G]},Z={class:"web-theme-fallback"},K={key:1};function Q(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-textarea");return r(),m("div",Z,[Object.keys(t.webTheme.configuration).length==0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[s(' Das Web Theme "'+c(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),m("div",K,[n(g,{subtype:"warning"},{default:o(()=>[s(' Es wurde keine Konfigurationsseite für das Web Theme "'+c(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[s(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(g,{subtype:"info"},{default:o(()=>[d("pre",null,c(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const X=v(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);k.add(z,E,C,D);const Y={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:S},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),F({loader:()=>R(Object.assign({"./colors/webTheme.vue":()=>B(()=>import("./webTheme-DQBJkymH.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./koala/webTheme.vue":()=>B(()=>import("./webTheme-CUZsmlbL.js"),__vite__mapDeps([12,13,4,1,2,3,5,6,7,8,9,14,10,11])),"./standard_legacy/webTheme.vue":()=>B(()=>import("./webTheme-D6gb9Bne.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.webTheme.type}/webTheme.vue`,3),errorComponent:X})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ee(t,e,u,W,V,_){const g=p("font-awesome-icon"),l=p("openwb-base-alert"),h=p("openwb-base-heading");return r(),m(I,null,[u.webTheme.official?(r(),f(l,{key:0,subtype:"success"},{default:o(()=>[n(g,{icon:["fas","certificate"]}),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(l,{key:1,subtype:"info"},{default:o(()=>[n(g,{icon:["fas","people-group"]}),e[1]||(e[1]=s(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1})),n(l,{subtype:u.webTheme.userManagementSupported?"success":"warning"},{default:o(()=>[n(g,{icon:["fas",u.webTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" unterstützt die Benutzerverwaltung'+c(u.webTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),n(h,null,{default:o(()=>[s(' Einstellungen für Web Theme "'+c(u.webTheme.name)+'" ',1)]),_:1}),(r(),f(x(_.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=w=>_.updateConfiguration(w))},null,40,["web-theme"]))],64)}const te=v(Y,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);k.add(N,A,L,U,P,J);const ne={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:te,FontAwesomeIcon:S},mixins:[O,M],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/allow_unencrypted_access",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!0},{topic:"openWB/general/control_interval",writeable:!0},{topic:"openWB/general/extern",writeable:!0},{topic:"openWB/general/grid_protection_configured",writeable:!0},{topic:"openWB/general/http_api",writeable:!0},{topic:"openWB/general/modbus_control",writeable:!0},{topic:"openWB/general/range_unit",writeable:!0},{topic:"openWB/general/temporary_charge_templates_active",writeable:!0},{topic:"openWB/general/web_theme",writeable:!0},{topic:"openWB/system/configurable/web_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.webThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},disableExternModeSwitch(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||this.$store.state.mqtt["openWB/general/allow_unencrypted_access"]===!1}},methods:{getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalConfig"},oe={name:"generalConfigForm"},se={key:1},le={key:1},re={key:2},ie={key:0},ue={key:0},de={key:1},ge={key:0},me={key:1},pe=["href"],be={key:0},fe={key:0},_e={key:1};function ce(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-button-group-input"),h=p("RouterLink"),w=p("openwb-base-card"),y=p("openwb-base-heading"),T=p("openwb-base-select-input"),q=p("openwb-web-theme-proxy"),i=p("font-awesome-icon"),$=p("openwb-base-submit-buttons");return r(),m("div",ae,[d("form",oe,[n(w,{title:"Steuerungsmodus"},{default:o(()=>[n(g,{subtype:"info"},{default:o(()=>[...e[32]||(e[32]=[d("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Diese werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),d("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])]),_:1}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],disabled:_.disableExternModeSwitch,"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateState("openWB/general/extern",a))},null,8,["disabled","model-value"]),_.disableExternModeSwitch?(r(),f(g,{key:0,subtype:"warning"},{default:o(()=>[e[34]||(e[34]=s(" Die Benutzerverwaltung ist aktiviert oder der unverschlüsselte Zugriff ist nicht erlaubt. Um den Steuerungsmodus ändern zu können, muss die Benutzerverwaltung im Bereich ",-1)),n(h,{to:"/System/SecurityConfiguration"},{default:o(()=>[...e[33]||(e[33]=[s("Sicherheit",-1)])]),_:1}),e[35]||(e[35]=s(" zunächst deaktiviert und der unverschlüsselte Zugang erlaubt werden. ",-1))]),_:1})):b("",!0),u.installAssistantActive?b("",!0):(r(),m("div",se,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),f(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateState("openWB/general/modbus_control",a))},{help:o(()=>[...e[36]||(e[36]=[s(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),d("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),s(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])]),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),m("div",le,[n(g,{subtype:"info",class:"mb-2"},{default:o(()=>[...e[37]||(e[37]=[s(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])]),_:1})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),m("div",re,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=a=>t.updateState("openWB/general/http_api",a))},{help:o(()=>[...e[38]||(e[38]=[d("p",null,[s(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),d("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),s(" dokumentiert. ")],-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/system/security/user_management_active"]===!0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[...e[39]||(e[39]=[s(" Die Benutzerverwaltung ist aktiviert. Es muss bei jedem HTTP-API Zugriff ein gültiger Benutzername und Passwort mittels HTTP Basic Auth übermittelt werden. Es wird empfohlen, hierfür einen separaten Benutzer mit eingeschränkten Rechten anzulegen. ",-1)])]),_:1})):b("",!0)]))]),_:1}),u.installAssistantActive?b("",!0):(r(),m("div",ie,[n(w,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ue,[n(g,{subtype:"info"},{default:o(()=>[...e[40]||(e[40]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),m("div",de,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=a=>t.updateState("openWB/general/control_interval",a))},{help:o(()=>[...e[41]||(e[41]=[s(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),d("br",null,null,-1),d("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])]),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=a=>t.updateState("openWB/general/grid_protection_configured",a))},{help:o(()=>[...e[42]||(e[42]=[s(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),d("br",null,null,-1),d("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])]),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),f(w,{key:1,title:"Bedienung & Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ge,[n(g,{subtype:"info"},{default:o(()=>[...e[43]||(e[43]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",me,[n(l,{title:"Temporäre Ladeeinstellungen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/temporary_charge_templates_active"],"onUpdate:modelValue":e[5]||(e[5]=a=>t.updateState("openWB/general/temporary_charge_templates_active",a))},{help:o(()=>[e[45]||(e[45]=d("p",null,[s(' Bei Auswahl "Ja" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB als "temporäre" Eingaben behandelt. Dies erlaubt z.B. das schnelle, temporäre Umschalten des Lademodus oder deren Detaileinstellungen für eine unplanmäßige Ladeanforderung (Bsp. Voreinstellung -> PV-Laden / unplanmäßig -> Sofort-Laden für Laden wegen unplanmäßigen Termins). '),d("br"),s(" Alle Einstellungen, die unter Einstellungen → Konfiguration → Fahrzeuge → Lade-Profil für das jeweilige Fahrzeug konfiguriert sind, gelten als persistent (dauerhaft). Diese werden bei jedem Abstecken des jeweiligen Fahrzeugs neu geladen - sind also Voreinstellungen (default). ")],-1)),e[46]||(e[46]=d("p",null,' Bei Auswahl "Nein" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB direkt als "persistente" (dauerhafte) Eingaben behandelt. ',-1)),d("p",null,[e[44]||(e[44]=s(" Eine ausführliche Erläuterung mit Beispielen findet Ihr im ",-1)),d("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:einstellungen:allgemein#temporaere_ladeeinstellungen`,target:"_blank",rel:"noopener noreferrer"}," openWB-DokuWiki ",8,pe)])]),_:1},8,["model-value"]),n(y,{class:"mt-0"},{default:o(()=>[...e[47]||(e[47]=[s(" Hauptseite ",-1)])]),_:1}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),m("div",be,[n(T,{class:"mb-2",title:"Theme",groups:_.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[6]||(e[6]=a=>_.updateSelectedWebTheme(a))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),f(q,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[7]||(e[7]=a=>_.updateConfiguration("openWB/general/web_theme",a))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),f(w,{key:2,title:"Lade-Protokoll"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",fe,[n(g,{subtype:"info"},{default:o(()=>[...e[48]||(e[48]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",_e,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[8]||(e[8]=a=>t.updateState("openWB/general/range_unit",a))},null,8,["model-value"]),n(y,null,{default:o(()=>[...e[49]||(e[49]=[s(" Auswahl der Datenfelder ",-1)])]),_:1}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_begin,"onUpdate:modelValue":e[9]||(e[9]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_begin"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[50]||(e[50]=s(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_end,"onUpdate:modelValue":e[10]||(e[10]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_end"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[51]||(e[51]=s(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_time_charged,"onUpdate:modelValue":e[11]||(e[11]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_time_charged"))},{title:o(()=>[n(i,{icon:["fas","clock"]}),e[52]||(e[52]=s(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_costs,"onUpdate:modelValue":e[12]||(e[12]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_costs"))},{title:o(()=>[n(i,{icon:["fas","coins"]}),e[53]||(e[53]=s(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_power_source,"onUpdate:modelValue":e[13]||(e[13]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_power_source"))},{title:o(()=>[n(i,{icon:["fas","pie-chart"]}),e[54]||(e[54]=s(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_name,"onUpdate:modelValue":e[14]||(e[14]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_name"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[55]||(e[55]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_chargemode,"onUpdate:modelValue":e[15]||(e[15]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_chargemode"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[56]||(e[56]=s(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_prio,"onUpdate:modelValue":e[16]||(e[16]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_prio"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[57]||(e[57]=s(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_rfid,"onUpdate:modelValue":e[17]||(e[17]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_rfid"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[58]||(e[58]=s(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_odometer,"onUpdate:modelValue":e[18]||(e[18]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_odometer"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[59]||(e[59]=s(" Kilometerstand ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_start,"onUpdate:modelValue":e[19]||(e[19]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_start"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[60]||(e[60]=s(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_end,"onUpdate:modelValue":e[20]||(e[20]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_end"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[61]||(e[61]=s(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_name,"onUpdate:modelValue":e[21]||(e[21]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_name"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[62]||(e[62]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_serial_number,"onUpdate:modelValue":e[22]||(e[22]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_serial_number"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[63]||(e[63]=s(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_imported_since_mode_switch,"onUpdate:modelValue":e[23]||(e[23]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_imported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[64]||(e[64]=s(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_start,"onUpdate:modelValue":e[24]||(e[24]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[65]||(e[65]=s(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_end,"onUpdate:modelValue":e[25]||(e[25]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[66]||(e[66]=s(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_exported_since_mode_switch,"onUpdate:modelValue":e[26]||(e[26]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_exported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[67]||(e[67]=s(" Entladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_start,"onUpdate:modelValue":e[27]||(e[27]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[68]||(e[68]=s(" Zählerstand bei Entladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_end,"onUpdate:modelValue":e[28]||(e[28]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[69]||(e[69]=s(" Zählerstand bei Entladeende ",-1))]),_:1},8,["model-value"])]))]),_:1})),n($,{"form-name":"generalConfigForm",onSave:e[29]||(e[29]=a=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[30]||(e[30]=a=>t.$emit("reset")),onDefaults:e[31]||(e[31]=a=>t.$emit("defaults"))})])])}const we=v(ne,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfiguration.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:we},Symbol.toStringTag,{value:"Module"}));export{we as G,G as W,ye as a}; diff --git a/web/settings/assets/HardwareInstallation-BsQdwN_Y.js b/web/settings/assets/HardwareInstallation-BsQdwN_Y.js deleted file mode 100644 index d326f6c6d6..0000000000 --- a/web/settings/assets/HardwareInstallation-BsQdwN_Y.js +++ /dev/null @@ -1,2 +0,0 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/device-CkEwxrYs.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-DD1DIYBi.js","assets/index-BBXHIMfY.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/bat-7JGzH8pd.js","assets/device-D-pRIYiM.js","assets/device-hdWFSlG-.js","assets/counter-DGVFh31G.js","assets/device-BW7XDo1J.js","assets/device-_jQ1Q-kw.js","assets/device-Bdq6veVj.js","assets/bat-CgA4A-DW.js","assets/device-DqUpYhaq.js","assets/device-BPkP7kTF.js","assets/inverter-Hxi7PnqE.js","assets/device-eQnrxHxL.js","assets/counter-bKGHqli_.js","assets/device-CaA6R4P6.js","assets/counter-By6rXji5.js","assets/device-oqbvqB5h.js","assets/bat-BmVnIsK3.js","assets/counter-CLQGKxf9.js","assets/device-DbK7jIMj.js","assets/inverter-ByRR74u7.js","assets/counter-DP3HnvjD.js","assets/device-BLW9LjzN.js","assets/inverter-GRT_uJiI.js","assets/device-Db5wbl5h.js","assets/device-DdsXAHVY.js","assets/counter-DjAjHmkw.js","assets/device-B6CeiU8G.js","assets/inverter-BTshuvks.js","assets/bat-D37RLtNO.js","assets/device-DfZ_0fKf.js","assets/bat-DRknG4fw.js","assets/counter-BCluWY83.js","assets/device-6Kda_LQU.js","assets/inverter-CzXwYkHv.js","assets/bat-CgGWSHMY.js","assets/counter_sm-Dr8SNBvC.js","assets/device-CSEKL3kY.js","assets/inverter_production_meter-DfIqPquE.js","assets/inverter_secondary-CGqHCim3.js","assets/bat-CWRAY-SG.js","assets/counter-BjmUAD29.js","assets/device-CI2OAM8n.js","assets/inverter-BBWU2rw5.js","assets/bat-BN1YEpvE.js","assets/counter-BtWEtGR4.js","assets/device-BXojBGt2.js","assets/inverter-DsD3wquS.js","assets/bat-DKtRkxSv.js","assets/counter-DBa42c5b.js","assets/device-GRny4mHm.js","assets/inverter-CC2Mvp5q.js","assets/counter-DgvkQXQL.js","assets/bat-BRarMF4I.js","assets/device-DsgmCF5n.js","assets/device-BIDbmP4X.js","assets/device-C6CeoSzW.js","assets/device-Bb9MADhj.js","assets/bat-CmZvy5m2.js","assets/counter-D2hwzdNC.js","assets/device-DVo4zylj.js","assets/inverter-B_FABlgc.js","assets/device-jMvVzRzh.js","assets/counter-tXy6FaDb.js","assets/device-BKr8ZHKi.js","assets/bat-C6I23djd.js","assets/counter-DmfgTjlt.js","assets/device-QT8T_qSL.js","assets/inverter-C4YILAPZ.js","assets/device-B_aGjQ2l.js","assets/inverter-Dsj7QrSL.js","assets/counter-7w48jp2T.js","assets/device-Y3OiwDhZ.js","assets/inverter-CnZlUSck.js","assets/counter-DoHxJYIa.js","assets/device-BZ_nIgl8.js","assets/inverter-Crbr6-4Z.js","assets/device-BfCWTNEM.js","assets/bat-ClxDcwKU.js","assets/counter-Djlwa9Bh.js","assets/device-BqYI4kY3.js","assets/counter-BWJaZ8Em.js","assets/device-C9SjhtIi.js","assets/device-BQvmc-9M.js","assets/inverter-DApWASl8.js","assets/device-z2yHS3IO.js","assets/bat-CsaXkLHe.js","assets/device-7nie8LYK.js","assets/bat-2R_F_kER.js","assets/counter-CvGKgUX3.js","assets/device-B6cd6sbt.js","assets/inverter-Bkl9DTPR.js","assets/device-CjHCk_76.js","assets/counter-BaEuP6KK.js","assets/device-B_9GoR_C.js","assets/device-DH3Gi3n1.js","assets/inverter-DehorSAv.js","assets/bat-bkNSH294.js","assets/bat-BIrS6-PU.js","assets/counter-BJR0si-b.js","assets/inverter-DbMRw6Cx.js","assets/bat-CptO1Moh.js","assets/consumption_counter-BpJxB44l.js","assets/counter-DQqlicig.js","assets/device-Hp2tEOlj.js","assets/inverter-CxoMP6Jb.js","assets/inverter-DVr22Egy.js","assets/counter-CTm4GPYN.js","assets/device-DQEBMJF9.js","assets/counter-BAPZU0r9.js","assets/device-CzgpdtMj.js","assets/counter-5pxQAacz.js","assets/device-BtiaNiEm.js","assets/inverter-DIp3-cnM.js","assets/device-DYhwZZkT.js","assets/device-W6_kwen7.js","assets/device-C-iAJJ-o.js","assets/counter-DnDfTViH.js","assets/device-DhhSP7do.js","assets/device-BBC5ID1s.js","assets/device-UTh7kxrR.js","assets/bat-BQ8zXmoc.js","assets/counter-DMohbFiU.js","assets/device-CuyMfOZ0.js","assets/inverter-DV4a4maw.js","assets/counter-vfGAGxPT.js","assets/inverter-BFDThOJR.js","assets/bat-ByOTOieU.js","assets/bat_smart_energy-CPzH7Jpe.js","assets/counter-qhWGTyvQ.js","assets/device-DKuTl1vv.js","assets/inverter-O85bqWQC.js","assets/bat-C0s6O7-0.js","assets/device-By6KThCl.js","assets/device-zzcTsTtg.js","assets/counter-Vg4B6aCH.js","assets/device-DUDQimZY.js","assets/inverter-0iQRw2xt.js","assets/device-C3EDMzY3.js","assets/device-F6XhS-t5.js","assets/bat-9pc5iQFT.js","assets/device-D9TXMIH0.js","assets/inverter-n4m3hQuV.js","assets/counter-CgTgRAdg.js","assets/device-R9tnmWUQ.js","assets/device-FdkK1iVn.js","assets/inverter-NWk4UIGH.js","assets/device-r6j0r7A3.js","assets/device-B7cffUIf.js","assets/bat-D4M2B5kd.js","assets/counter-BIWzcwR0.js","assets/device-CAxd5L90.js","assets/external_inverter-CXGMSOOf.js","assets/inverter-Ct8TMqML.js","assets/bat-B0kr7NLZ.js","assets/counter_maxstorage-BtpuH_Y8.js","assets/device-CU-cwVGC.js","assets/inverter-CLRVWTl7.js","assets/inverter_maxstorage-CEwj2eYk.js","assets/device-B-FM1FI2.js","assets/bat-Bq_karx4.js","assets/counter-3vED9-83.js","assets/device-Z-QAbNy2.js","assets/inverter-DWNFmb91.js","assets/bat-b37DCPfB.js","assets/counter-Uah7XeY0.js","assets/counter_consumption-BITJZNE7.js","assets/device-CdKxLpnp.js","assets/bat-pjXdDuo7.js","assets/device-DYhfIW3A.js","assets/inverter-DiRXgTFp.js","assets/device-BFYx_CN0.js","assets/device-Nalxzfta.js","assets/device-B4KoucpX.js","assets/device-B4IBKY6X.js","assets/device-Bu9XgqYP.js","assets/device-B3ABOYFM.js","assets/counter-CGyjt9cy.js","assets/device-Sf2PbazK.js","assets/counter-BK2vVSqM.js","assets/device-DmGIHkAD.js","assets/device-BII9Q7B9.js","assets/device-1R4SV5Is.js","assets/inverter-B-0L9XYq.js","assets/bat-B8ywWV_I.js","assets/counter-BIrt9Gpi.js","assets/device-8WbkORGd.js","assets/inverter-Da-G6Y0c.js","assets/device-D7oGPfwz.js","assets/counter-wZOjez1P.js","assets/device-KmMBXMFM.js","assets/inverter-COE-nKvP.js","assets/device-C0roOLlE.js","assets/inverter-CUJI2Fyz.js"])))=>i.map(i=>d[i]); -import{F as U,l as q,d as S,y as G,as as K,aj as N,a4 as $,a3 as H,a2 as F}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as e,C as J}from"./index-BBXHIMfY.js";import{_ as C}from"./dynamic-import-helper-BheWnx7M.js";import{_ as D,l as p,k as s,e as g,y as E,q as i,A as v,J as O,m as d,x as l,a1 as z,a2 as Z,u as L,K as f,L as k,j as Q}from"./vendor-JxinjXxC.js";const X={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},j=D(X,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),Y={name:"DeviceFallback",mixins:[j]},ee={class:"device-fallback"},oe={key:1};function te(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ee,[Object.keys(t.device.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Gerät-Typ "'+O(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",oe,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+O(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=D(Y,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[j],props:{component:{type:Object,required:!0}}},re=D(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ue,[Object.keys(t.component.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Komponenten-Typ "'+O(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",de,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+O(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=D(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){return console.debug(`loading component: ${this.device?.type} / ${this.component?.type}`),this.component!==void 0?z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-CkEwxrYs.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/bat.vue":()=>e(()=>import("./bat-7JGzH8pd.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-D-pRIYiM.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-hdWFSlG-.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/counter.vue":()=>e(()=>import("./counter-DGVFh31G.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-BW7XDo1J.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-_jQ1Q-kw.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-Bdq6veVj.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/bat.vue":()=>e(()=>import("./bat-CgA4A-DW.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-DqUpYhaq.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-BPkP7kTF.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-Hxi7PnqE.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-eQnrxHxL.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-bKGHqli_.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-CaA6R4P6.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/counter.vue":()=>e(()=>import("./counter-By6rXji5.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-oqbvqB5h.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/bat.vue":()=>e(()=>import("./bat-BmVnIsK3.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/counter.vue":()=>e(()=>import("./counter-CLQGKxf9.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-DbK7jIMj.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-ByRR74u7.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-DP3HnvjD.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-BLW9LjzN.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-GRT_uJiI.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-Db5wbl5h.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-DdsXAHVY.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-DjAjHmkw.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-B6CeiU8G.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-BTshuvks.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/bat.vue":()=>e(()=>import("./bat-D37RLtNO.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-DfZ_0fKf.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-DRknG4fw.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-BCluWY83.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-6Kda_LQU.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-CzXwYkHv.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-CgGWSHMY.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-Dr8SNBvC.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-CSEKL3kY.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_production_meter.vue":()=>e(()=>import("./inverter_production_meter-DfIqPquE.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-CGqHCim3.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10])),"./generic/http/bat.vue":()=>e(()=>import("./bat-CWRAY-SG.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10])),"./generic/http/counter.vue":()=>e(()=>import("./counter-BjmUAD29.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-CI2OAM8n.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-BBWU2rw5.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8,9,10])),"./generic/json/bat.vue":()=>e(()=>import("./bat-BN1YEpvE.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10])),"./generic/json/counter.vue":()=>e(()=>import("./counter-BtWEtGR4.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-BXojBGt2.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-DsD3wquS.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-DKtRkxSv.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-DBa42c5b.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-GRny4mHm.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-CC2Mvp5q.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8,9,10])),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-DgvkQXQL.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-BRarMF4I.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-DsgmCF5n.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-BIDbmP4X.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-C6CeoSzW.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-Bb9MADhj.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-CmZvy5m2.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-D2hwzdNC.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-DVo4zylj.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-B_FABlgc.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-jMvVzRzh.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-tXy6FaDb.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-BKr8ZHKi.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/bat.vue":()=>e(()=>import("./bat-C6I23djd.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/counter.vue":()=>e(()=>import("./counter-DmfgTjlt.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-QT8T_qSL.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/inverter.vue":()=>e(()=>import("./inverter-C4YILAPZ.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-B_aGjQ2l.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-Dsj7QrSL.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-7w48jp2T.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-Y3OiwDhZ.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-CnZlUSck.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/counter.vue":()=>e(()=>import("./counter-DoHxJYIa.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-BZ_nIgl8.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/inverter.vue":()=>e(()=>import("./inverter-Crbr6-4Z.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-BfCWTNEM.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/bat.vue":()=>e(()=>import("./bat-ClxDcwKU.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-Djlwa9Bh.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-BqYI4kY3.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-BWJaZ8Em.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-C9SjhtIi.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-BQvmc-9M.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-DApWASl8.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-z2yHS3IO.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/bat.vue":()=>e(()=>import("./bat-CsaXkLHe.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-7nie8LYK.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-2R_F_kER.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-CvGKgUX3.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-B6cd6sbt.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-Bkl9DTPR.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-CjHCk_76.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-BaEuP6KK.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-B_9GoR_C.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DH3Gi3n1.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-DehorSAv.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-bkNSH294.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-BIrS6-PU.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-BJR0si-b.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-DbMRw6Cx.js"),__vite__mapDeps([110,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-CptO1Moh.js"),__vite__mapDeps([111,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-BpJxB44l.js"),__vite__mapDeps([112,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-DQqlicig.js"),__vite__mapDeps([113,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-Hp2tEOlj.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-CxoMP6Jb.js"),__vite__mapDeps([115,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-DVr22Egy.js"),__vite__mapDeps([116,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/counter.vue":()=>e(()=>import("./counter-CTm4GPYN.js"),__vite__mapDeps([117,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-DQEBMJF9.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-BAPZU0r9.js"),__vite__mapDeps([119,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-CzgpdtMj.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-5pxQAacz.js"),__vite__mapDeps([121,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-BtiaNiEm.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-DIp3-cnM.js"),__vite__mapDeps([123,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-DYhwZZkT.js"),__vite__mapDeps([124,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-W6_kwen7.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-C-iAJJ-o.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-DnDfTViH.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-DhhSP7do.js"),__vite__mapDeps([128,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-BBC5ID1s.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-UTh7kxrR.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-BQ8zXmoc.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-DMohbFiU.js"),__vite__mapDeps([132,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-CuyMfOZ0.js"),__vite__mapDeps([133,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-DV4a4maw.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-vfGAGxPT.js"),__vite__mapDeps([135,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-BFDThOJR.js"),__vite__mapDeps([136,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-ByOTOieU.js"),__vite__mapDeps([137,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-CPzH7Jpe.js"),__vite__mapDeps([138,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-qhWGTyvQ.js"),__vite__mapDeps([139,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-DKuTl1vv.js"),__vite__mapDeps([140,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-O85bqWQC.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-C0s6O7-0.js"),__vite__mapDeps([142,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-By6KThCl.js"),__vite__mapDeps([143,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-zzcTsTtg.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-Vg4B6aCH.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-DUDQimZY.js"),__vite__mapDeps([146,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-0iQRw2xt.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-C3EDMzY3.js"),__vite__mapDeps([148,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-F6XhS-t5.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/bat.vue":()=>e(()=>import("./bat-9pc5iQFT.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-D9TXMIH0.js"),__vite__mapDeps([151,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/inverter.vue":()=>e(()=>import("./inverter-n4m3hQuV.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-CgTgRAdg.js"),__vite__mapDeps([153,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-R9tnmWUQ.js"),__vite__mapDeps([154,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-FdkK1iVn.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-NWk4UIGH.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-r6j0r7A3.js"),__vite__mapDeps([157,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-B7cffUIf.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-D4M2B5kd.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-BIWzcwR0.js"),__vite__mapDeps([160,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-CAxd5L90.js"),__vite__mapDeps([161,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-CXGMSOOf.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-Ct8TMqML.js"),__vite__mapDeps([163,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-B0kr7NLZ.js"),__vite__mapDeps([164,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/counter_maxstorage.vue":()=>e(()=>import("./counter_maxstorage-BtpuH_Y8.js"),__vite__mapDeps([165,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-CU-cwVGC.js"),__vite__mapDeps([166,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-CLRVWTl7.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter_maxstorage.vue":()=>e(()=>import("./inverter_maxstorage-CEwj2eYk.js"),__vite__mapDeps([168,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-B-FM1FI2.js"),__vite__mapDeps([169,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/bat.vue":()=>e(()=>import("./bat-Bq_karx4.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/counter.vue":()=>e(()=>import("./counter-3vED9-83.js"),__vite__mapDeps([171,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-Z-QAbNy2.js"),__vite__mapDeps([172,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-DWNFmb91.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-b37DCPfB.js"),__vite__mapDeps([174,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-Uah7XeY0.js"),__vite__mapDeps([175,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-BITJZNE7.js"),__vite__mapDeps([176,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-CdKxLpnp.js"),__vite__mapDeps([177,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/bat.vue":()=>e(()=>import("./bat-pjXdDuo7.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-DYhfIW3A.js"),__vite__mapDeps([179,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-DiRXgTFp.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-BFYx_CN0.js"),__vite__mapDeps([181,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-Nalxzfta.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-B4KoucpX.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-B4IBKY6X.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-Bu9XgqYP.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-B3ABOYFM.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-CGyjt9cy.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-Sf2PbazK.js"),__vite__mapDeps([188,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-BK2vVSqM.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-DmGIHkAD.js"),__vite__mapDeps([190,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-BII9Q7B9.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-1R4SV5Is.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-B-0L9XYq.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/bat.vue":()=>e(()=>import("./bat-B8ywWV_I.js"),__vite__mapDeps([194,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/counter.vue":()=>e(()=>import("./counter-BIrt9Gpi.js"),__vite__mapDeps([195,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-8WbkORGd.js"),__vite__mapDeps([196,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-Da-G6Y0c.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-D7oGPfwz.js"),__vite__mapDeps([198,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-wZOjez1P.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-KmMBXMFM.js"),__vite__mapDeps([200,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-COE-nKvP.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-C0roOLlE.js"),__vite__mapDeps([202,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-CUJI2Fyz.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/${this.component?.type}.vue`,4),errorComponent:se}):z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-CkEwxrYs.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-D-pRIYiM.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-hdWFSlG-.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-BW7XDo1J.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-_jQ1Q-kw.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-Bdq6veVj.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-DqUpYhaq.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-BPkP7kTF.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-eQnrxHxL.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-CaA6R4P6.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-oqbvqB5h.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-DbK7jIMj.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-BLW9LjzN.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-Db5wbl5h.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-DdsXAHVY.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-B6CeiU8G.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-DfZ_0fKf.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-6Kda_LQU.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-CSEKL3kY.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-CI2OAM8n.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-BXojBGt2.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-GRny4mHm.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-DsgmCF5n.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-BIDbmP4X.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-C6CeoSzW.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-Bb9MADhj.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-DVo4zylj.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-jMvVzRzh.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-BKr8ZHKi.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-QT8T_qSL.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-B_aGjQ2l.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-Y3OiwDhZ.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-BZ_nIgl8.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-BfCWTNEM.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-BqYI4kY3.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-C9SjhtIi.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-BQvmc-9M.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-z2yHS3IO.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-7nie8LYK.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-B6cd6sbt.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-CjHCk_76.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-B_9GoR_C.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DH3Gi3n1.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-Hp2tEOlj.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-DQEBMJF9.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-CzgpdtMj.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-BtiaNiEm.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-DYhwZZkT.js"),__vite__mapDeps([124,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-W6_kwen7.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-C-iAJJ-o.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-DhhSP7do.js"),__vite__mapDeps([128,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-BBC5ID1s.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-UTh7kxrR.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-CuyMfOZ0.js"),__vite__mapDeps([133,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-DKuTl1vv.js"),__vite__mapDeps([140,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-By6KThCl.js"),__vite__mapDeps([143,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-zzcTsTtg.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-DUDQimZY.js"),__vite__mapDeps([146,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-C3EDMzY3.js"),__vite__mapDeps([148,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-F6XhS-t5.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-D9TXMIH0.js"),__vite__mapDeps([151,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-R9tnmWUQ.js"),__vite__mapDeps([154,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-FdkK1iVn.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-r6j0r7A3.js"),__vite__mapDeps([157,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-B7cffUIf.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-CAxd5L90.js"),__vite__mapDeps([161,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-CU-cwVGC.js"),__vite__mapDeps([166,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-B-FM1FI2.js"),__vite__mapDeps([169,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-Z-QAbNy2.js"),__vite__mapDeps([172,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-CdKxLpnp.js"),__vite__mapDeps([177,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-DYhfIW3A.js"),__vite__mapDeps([179,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-BFYx_CN0.js"),__vite__mapDeps([181,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-Nalxzfta.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-B4KoucpX.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-B4IBKY6X.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-Bu9XgqYP.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-B3ABOYFM.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-Sf2PbazK.js"),__vite__mapDeps([188,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-DmGIHkAD.js"),__vite__mapDeps([190,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-BII9Q7B9.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-1R4SV5Is.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-8WbkORGd.js"),__vite__mapDeps([196,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-D7oGPfwz.js"),__vite__mapDeps([198,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-KmMBXMFM.js"),__vite__mapDeps([200,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-C0roOLlE.js"),__vite__mapDeps([202,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/device.vue`,4),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,u,m,n,_){return s(),E(Z(_.getComponent()),{device:u.device,component:u.component,"component-id":u.component?u.component.id:void 0,"component-type":u.component?u.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=c=>_.updateConfiguration(c))},null,40,["device","component","component-id","component-type"])}const pe=D(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);q.add(S,G,K,N,$,H,F);const ce={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:U,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/configurable/devices_components",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!0},{topic:"openWB/system/device/+/config",writeable:!0}],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices(){const t=this.getWildcardTopics("openWB/system/device/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},installedComponents(){const t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},vendorList:{get(){const t=this.$store.state.mqtt["openWB/system/configurable/devices_components"];return t?Object.entries(t).map(([o,u])=>{const m=u?.vendors||{};return{label:u?.group_name||"",options:Object.entries(m).map(([n,_])=>({value:[o,n],text:_?.vendor_name||""})).sort((n,_)=>n.text.localeCompare(_.text))}}).sort((o,u)=>-o.label.localeCompare(u.label)):[]}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;const u=this.$store.state.mqtt["openWB/system/configurable/devices_components"]?.[t]?.vendors?.[o]?.devices;return u?Object.entries(u).map(([m,n])=>({value:[o,m],text:n.device_name})).sort((m,n)=>m.text.localeCompare(n.text)):[]}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,u){u.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,u,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:u,deviceVendor:o,type:m}})},removeComponentModal(t,o,u,m,n){n.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:u},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let u=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(u=Object.entries(m.vendors[t].devices[o].components).map(([_,c])=>({value:_,text:c.component_name}))),!1):!0),u},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},le={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},Oe={key:1},Te={key:0};function Ie(t,o,u,m,n,_){const c=p("openwb-base-modal-dialog"),A=p("router-link"),I=p("openwb-base-alert"),P=p("font-awesome-icon"),b=p("openwb-base-avatar"),R=p("openwb-base-text-input"),x=p("openwb-config-proxy"),B=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),M=p("openwb-base-submit-buttons");return s(),g(f,null,[d(c,{show:n.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeDevice},{default:i(()=>[v(' Willst Du das Gerät "'+O(n.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),d(c,{show:n.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeComponent},{default:i(()=>[v(' Willst Du die Komponente "'+O(n.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l("div",le,[l("form",Ee,[u.installAssistantActive?L("",!0):(s(),E(I,{key:0,subtype:"info"},{default:i(()=>[o[7]||(o[7]=v(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),d(A,{to:"/LoadManagementConfiguration"},{default:i(()=>[...o[6]||(o[6]=[v(" Lastmanagement ",-1)])]),_:1}),o[8]||(o[8]=v(" zu prüfen!",-1)),o[9]||(o[9]=l("br",null,null,-1)),o[10]||(o[10]=v(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung von Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1})),d(w,{title:"Geräte und Komponenten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(s(),g("div",ge,[d(I,{subtype:"info"},{default:i(()=>[...o[11]||(o[11]=[v(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(s(),g("div",Ve,[(s(!0),g(f,null,k(_.installedDevices,(r,h)=>(s(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:i(()=>[d(P,{icon:["fas","network-wired"]}),v(" "+O(r?.name),1)]),actions:i(a=>[a.collapsed?(s(),g("div",Oe,[(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),V=>(s(),E(b,{key:V?.id,class:Q("ml-1 bg-"+_.getComponentTypeClass(V?.type))},{default:i(()=>[d(P,{icon:_.getComponentTypeIcon(V?.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:V=>_.removeDeviceModal(r?.id,r?.name,V)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":r?.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=l("hr",null,null,-1)),d(x,{device:r,"onUpdate:configuration":a=>_.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=l("hr",null,null,-1)),d(B,null,{default:i(()=>[...o[12]||(o[12]=[v("Komponenten",-1)])]),_:1}),_.deviceHasConfiguredComponents(r?.id)?L("",!0):(s(),E(I,{key:0,subtype:"warning"},{default:i(()=>[...o[13]||(o[13]=[v(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1})),(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),(a,V)=>(s(),E(w,{key:a?.id,collapsible:!0,collapsed:!0,subtype:_.getComponentTypeClass(a?.type)},{header:i(()=>[d(P,{icon:_.getComponentTypeIcon(a?.type)},null,8,["icon"]),v(" "+O(a?.name),1)]),actions:i(T=>[T.collapsed?L("",!0):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:W=>_.removeComponentModal(r?.id,a?.id,a?.type,a?.name,W)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":a?.name,"onUpdate:modelValue":T=>t.updateState(V,T,"name")},null,8,["model-value","onUpdate:modelValue"]),d(R,{title:"Hersteller",subtype:"text","model-value":a?.info.manufacturer,"onUpdate:modelValue":T=>t.updateState(V,T,"info.manufacturer")},{help:i(()=>[...o[14]||(o[14]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),d(R,{title:"Modell",subtype:"text","model-value":a?.info.model,"onUpdate:modelValue":T=>t.updateState(V,T,"info.model")},{help:i(()=>[...o[15]||(o[15]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=l("hr",null,null,-1)),d(x,{device:r,component:a,"onUpdate:configuration":T=>_.updateConfiguration(V,T)},null,8,["device","component","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),o[21]||(o[21]=l("hr",null,null,-1)),_.getComponentList(r?.vendor,r?.type)?.length?(s(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:_.getComponentList(r?.vendor,r?.type),"model-value":n.componentToAdd[r?.id],"add-button":!0,"onUpdate:modelValue":a=>n.componentToAdd[r?.id]=a,"onInput:add":a=>_.addComponent(r?.id,r?.vendor,r?.type,n.componentToAdd[r?.id])},{help:i(()=>[...o[17]||(o[17]=[v(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue","onInput:add"])):(s(),E(I,{key:2,subtype:"info"},{default:i(()=>[...o[18]||(o[18]=[v(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1}))]),_:2},1024))),128)),Object.keys(_.installedDevices)?.length>0?(s(),g("hr",Te)):L("",!0),d(y,{modelValue:n.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=r=>n.selectedVendor=r),title:"Hersteller","not-selected":"Bitte auswählen",groups:_.vendorList},null,8,["modelValue","groups"]),d(y,{modelValue:n.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=r=>n.deviceToAdd=r),o[2]||(o[2]=r=>n.deviceToAdd=r)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:n.selectedVendor===void 0,options:_.deviceList,"model-value":n.deviceToAdd,"add-button":!0,"onInput:add":_.addDevice},{help:i(()=>[...o[22]||(o[22]=[l("p",null,[v(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),l("br"),v(' 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),l("p",null,[v(' 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.'),l("br"),v(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),l("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])]),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),d(M,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:o[4]||(o[4]=r=>t.$emit("reset")),onDefaults:o[5]||(o[5]=r=>t.$emit("defaults"))})])])],64)}const De=D(ce,[["render",Ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),fe=Object.freeze(Object.defineProperty({__proto__:null,default:De},Symbol.toStringTag,{value:"Module"}));export{re as C,j as D,De as H,fe as a}; diff --git a/web/settings/assets/HardwareInstallation-caZ0sA9z.js b/web/settings/assets/HardwareInstallation-caZ0sA9z.js new file mode 100644 index 0000000000..65663d3a85 --- /dev/null +++ b/web/settings/assets/HardwareInstallation-caZ0sA9z.js @@ -0,0 +1,2 @@ +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/device-C-avdMqj.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/bat-CE8ZvzxW.js","assets/device-BjgcGLL9.js","assets/device-CJ5CONRY.js","assets/counter-BLXfQQ6R.js","assets/device-DhOZN3TO.js","assets/device-DxhmA9hW.js","assets/device-DfKVgx7A.js","assets/bat-BERY8z9f.js","assets/device-C9aR_ErT.js","assets/device-8genQHND.js","assets/inverter-B88OrxMD.js","assets/device-DoYhIPYo.js","assets/counter-QsKjzQAu.js","assets/device-DXOtDi9V.js","assets/counter-hPhZIn1G.js","assets/device-BdmFfYpU.js","assets/bat-DwRFcEFG.js","assets/counter-CEU7NcUL.js","assets/device-dqP8cZ7r.js","assets/inverter-Bwj64g5e.js","assets/counter-DmRpgOsE.js","assets/device-C8-xjyT6.js","assets/inverter-CMmTSLWH.js","assets/device-B8HOK5np.js","assets/device-CMS4ZH9M.js","assets/counter-CXEiOT31.js","assets/device-DSzaLUMX.js","assets/inverter-lozsDiob.js","assets/bat-jEZsteDp.js","assets/device-CqqnDv7m.js","assets/bat-Dw1dp4yk.js","assets/counter-DwjPMM-K.js","assets/device-BkT_aSiu.js","assets/inverter-Dd8Zt71F.js","assets/bat-DAoCRKqd.js","assets/counter_sm-C8EnC_ax.js","assets/device-B1gW7XBg.js","assets/inverter_production_meter-BhLy0jS8.js","assets/inverter_secondary-Cke98mZd.js","assets/bat-XK6ruyYp.js","assets/counter-DaNvZOHB.js","assets/device-CJt9s3lV.js","assets/inverter-Da945LLX.js","assets/bat-26IrZ19X.js","assets/counter-BlNNf5pm.js","assets/device-Bz8u2WPE.js","assets/inverter-YmiFDBbL.js","assets/bat-DgzuvGkr.js","assets/counter-BT5q5wk9.js","assets/device-CLljSgUf.js","assets/inverter-f4xqdlX6.js","assets/counter-BHm4u10N.js","assets/bat-DtUSWouQ.js","assets/device-BPTQIU5L.js","assets/device-CJ9ee9IO.js","assets/device-2ydQEeHL.js","assets/device-CMt4xRX4.js","assets/bat-B0JSSnLj.js","assets/counter--_w9piHB.js","assets/device-CJ3OjUU2.js","assets/inverter-BpKMExBm.js","assets/device-B7DCatpp.js","assets/counter-CuyIQkwJ.js","assets/device-64nbgpYC.js","assets/bat-CnxJ24UF.js","assets/counter-CelzGZK-.js","assets/device-CgG28OWw.js","assets/inverter-7soLwDob.js","assets/device-B4WlrUah.js","assets/inverter-yrrMEiBw.js","assets/counter-6OwhKOcX.js","assets/device-D4Gw0lZJ.js","assets/inverter-CkuUw0Yu.js","assets/counter-Ckg8eTmY.js","assets/device-DE8Sn0RG.js","assets/inverter-CB0x6P9A.js","assets/device-CcmT-XYr.js","assets/bat-B4mETs5R.js","assets/counter-CyFXwCq_.js","assets/device-DHMJ0YEs.js","assets/counter-DEQJUFuW.js","assets/device-0LygQjSp.js","assets/device-GL-gGFSm.js","assets/inverter-CN_ruNlm.js","assets/device-BnrlrcLl.js","assets/bat--jkW4uM1.js","assets/device-DajujJNO.js","assets/bat-CQPOUTj3.js","assets/counter-DW8E1juF.js","assets/device-B0uzBvUm.js","assets/inverter-5EBX0iZo.js","assets/device-Djcanbbk.js","assets/counter-CRWkZPyn.js","assets/device-DSXRbJXc.js","assets/device-DdYCjXX-.js","assets/inverter-BB887ZYt.js","assets/bat-B0T6AimZ.js","assets/bat-BVitR6eQ.js","assets/counter-BCEBVxHj.js","assets/inverter-9sFbkMow.js","assets/bat-BCGKgQxP.js","assets/consumption_counter-Bdpmpdwz.js","assets/counter-DNHoKahk.js","assets/device-CHaeFEyt.js","assets/inverter-DL8Ty732.js","assets/inverter-CopsarJJ.js","assets/counter-CecO70YK.js","assets/device-MHTiTYZF.js","assets/counter-DtJWRRZK.js","assets/device-BJt2AdWR.js","assets/counter-CsLEIGLq.js","assets/device-DJivvwYM.js","assets/inverter-CgUUQeXE.js","assets/bat-DlQIYeS5.js","assets/device-Ce-zEVZN.js","assets/device-3d8A9kvB.js","assets/device-CmVz3KZr.js","assets/counter-Jn3S4DeN.js","assets/device-BsGQfX6W.js","assets/device-rzxKRkPl.js","assets/device-B3RxzTPC.js","assets/bat-DrOtsCLh.js","assets/counter-DyQR5TFM.js","assets/device-B6xK4kG_.js","assets/inverter-Dl-vr0bC.js","assets/counter-CrJU9pQp.js","assets/inverter-DrtnNh9-.js","assets/bat-Cn1EQGgB.js","assets/bat_smart_energy-CXDoZsZR.js","assets/counter-CC6Wx6xY.js","assets/device-TuHf60ob.js","assets/inverter-zzkwTxc_.js","assets/bat-EML-jKM6.js","assets/device-N5GdJSbQ.js","assets/device-DsVDr5dU.js","assets/counter-D7_oD-KG.js","assets/device-Cv_jSwrm.js","assets/inverter-D7eVv_21.js","assets/device-BSlk0jml.js","assets/device-Pg4epvz-.js","assets/bat-BbH2OvqQ.js","assets/device-B6NzT0C2.js","assets/inverter-BaOo9WeK.js","assets/counter-CTI3HQV5.js","assets/device-DdrUDEK_.js","assets/device-Xoa0qNQw.js","assets/inverter-CZxBgkMq.js","assets/device-Dqxkpm4s.js","assets/device-0TBG9Kdm.js","assets/bat-_7mtDj_h.js","assets/counter-0uEca16j.js","assets/device-ByIPJ75u.js","assets/external_inverter-yhBlc68v.js","assets/inverter-BI2ZqzaW.js","assets/bat-ByCHTSc9.js","assets/counter_maxstorage-Dfob-vfT.js","assets/device-CKqZ-eL3.js","assets/inverter-Bk86qHNm.js","assets/inverter_maxstorage-Da9O-iNa.js","assets/device-DaUzDfJC.js","assets/bat-eF5oA3Oa.js","assets/counter-DB0QI8WO.js","assets/device-Cu0yn-TS.js","assets/inverter-BvYIme5g.js","assets/bat-DZNpCoR7.js","assets/counter-D0K3UCGT.js","assets/counter_consumption-D5PXSIy2.js","assets/device-BpIfpmVY.js","assets/bat-Dbv3vNU1.js","assets/device-BSo6UKEK.js","assets/inverter-m3LVq5tF.js","assets/device-B9Y-E4ZO.js","assets/device-vwuASijr.js","assets/device-B-Mmd5Ze.js","assets/device-BPisqhc7.js","assets/device-DzDhZ3zK.js","assets/device-Cv-hQ-5K.js","assets/counter-CZ_dQPx3.js","assets/device-Cg5a2DJ_.js","assets/counter-CyagC1co.js","assets/device-CiV4hgD_.js","assets/device-C3SynQKw.js","assets/device-CiFemq5S.js","assets/inverter-YdmHIKyl.js","assets/bat-g-gN6DNl.js","assets/counter-B4eDF7ya.js","assets/device-BYcmVGRd.js","assets/inverter-DhjTWscc.js","assets/device-DYUFbFFV.js","assets/counter-CPpOsUI8.js","assets/device-BiPl0Xry.js","assets/inverter-BLcG2ney.js","assets/device-C4M0XOfA.js","assets/inverter-DLWFTpaZ.js"])))=>i.map(i=>d[i]); +import{F as q,l as U,d as S,y as G,as as K,aj as N,a4 as $,a3 as H,a2 as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as e,C as J}from"./index-CyH1Au4V.js";import{_ as C}from"./dynamic-import-helper-BheWnx7M.js";import{_ as D,l as p,k as s,e as g,y as E,q as i,A as v,J as O,m as d,x as l,a1 as z,a2 as Z,u as L,K as f,L as k,j as Q}from"./vendor-Bo8v-nQD.js";const X={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},j=D(X,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),Y={name:"DeviceFallback",mixins:[j]},ee={class:"device-fallback"},oe={key:1};function te(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ee,[Object.keys(t.device.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Gerät-Typ "'+O(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",oe,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+O(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=D(Y,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[j],props:{component:{type:Object,required:!0}}},re=D(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ue,[Object.keys(t.component.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Komponenten-Typ "'+O(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",de,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+O(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=D(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){return console.debug(`loading component: ${this.device?.type} / ${this.component?.type}`),this.component!==void 0?z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-C-avdMqj.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/bat.vue":()=>e(()=>import("./bat-CE8ZvzxW.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-BjgcGLL9.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-CJ5CONRY.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/counter.vue":()=>e(()=>import("./counter-BLXfQQ6R.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-DhOZN3TO.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DxhmA9hW.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-DfKVgx7A.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/bat.vue":()=>e(()=>import("./bat-BERY8z9f.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-C9aR_ErT.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-8genQHND.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-B88OrxMD.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-DoYhIPYo.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-QsKjzQAu.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-DXOtDi9V.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/counter.vue":()=>e(()=>import("./counter-hPhZIn1G.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-BdmFfYpU.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/bat.vue":()=>e(()=>import("./bat-DwRFcEFG.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/counter.vue":()=>e(()=>import("./counter-CEU7NcUL.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-dqP8cZ7r.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-Bwj64g5e.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-DmRpgOsE.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-C8-xjyT6.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-CMmTSLWH.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-B8HOK5np.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-CMS4ZH9M.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-CXEiOT31.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-DSzaLUMX.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-lozsDiob.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/bat.vue":()=>e(()=>import("./bat-jEZsteDp.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-CqqnDv7m.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-Dw1dp4yk.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-DwjPMM-K.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-BkT_aSiu.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-Dd8Zt71F.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-DAoCRKqd.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-C8EnC_ax.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-B1gW7XBg.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_production_meter.vue":()=>e(()=>import("./inverter_production_meter-BhLy0jS8.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-Cke98mZd.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10])),"./generic/http/bat.vue":()=>e(()=>import("./bat-XK6ruyYp.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10])),"./generic/http/counter.vue":()=>e(()=>import("./counter-DaNvZOHB.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-CJt9s3lV.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-Da945LLX.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8,9,10])),"./generic/json/bat.vue":()=>e(()=>import("./bat-26IrZ19X.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10])),"./generic/json/counter.vue":()=>e(()=>import("./counter-BlNNf5pm.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-Bz8u2WPE.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-YmiFDBbL.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-DgzuvGkr.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-BT5q5wk9.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CLljSgUf.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-f4xqdlX6.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8,9,10])),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-BHm4u10N.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-DtUSWouQ.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-BPTQIU5L.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-CJ9ee9IO.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-2ydQEeHL.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-CMt4xRX4.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-B0JSSnLj.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter--_w9piHB.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-CJ3OjUU2.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-BpKMExBm.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-B7DCatpp.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-CuyIQkwJ.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-64nbgpYC.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/bat.vue":()=>e(()=>import("./bat-CnxJ24UF.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/counter.vue":()=>e(()=>import("./counter-CelzGZK-.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-CgG28OWw.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/inverter.vue":()=>e(()=>import("./inverter-7soLwDob.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-B4WlrUah.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-yrrMEiBw.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-6OwhKOcX.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-D4Gw0lZJ.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-CkuUw0Yu.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/counter.vue":()=>e(()=>import("./counter-Ckg8eTmY.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-DE8Sn0RG.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/inverter.vue":()=>e(()=>import("./inverter-CB0x6P9A.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-CcmT-XYr.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/bat.vue":()=>e(()=>import("./bat-B4mETs5R.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-CyFXwCq_.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-DHMJ0YEs.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-DEQJUFuW.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-0LygQjSp.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-GL-gGFSm.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-CN_ruNlm.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-BnrlrcLl.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/bat.vue":()=>e(()=>import("./bat--jkW4uM1.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-DajujJNO.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-CQPOUTj3.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-DW8E1juF.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-B0uzBvUm.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-5EBX0iZo.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-Djcanbbk.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-CRWkZPyn.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-DSXRbJXc.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DdYCjXX-.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-BB887ZYt.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-B0T6AimZ.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-BVitR6eQ.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-BCEBVxHj.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-9sFbkMow.js"),__vite__mapDeps([110,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-BCGKgQxP.js"),__vite__mapDeps([111,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-Bdpmpdwz.js"),__vite__mapDeps([112,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-DNHoKahk.js"),__vite__mapDeps([113,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-CHaeFEyt.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-DL8Ty732.js"),__vite__mapDeps([115,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-CopsarJJ.js"),__vite__mapDeps([116,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/counter.vue":()=>e(()=>import("./counter-CecO70YK.js"),__vite__mapDeps([117,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-MHTiTYZF.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-DtJWRRZK.js"),__vite__mapDeps([119,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-BJt2AdWR.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-CsLEIGLq.js"),__vite__mapDeps([121,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-DJivvwYM.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-CgUUQeXE.js"),__vite__mapDeps([123,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/bat.vue":()=>e(()=>import("./bat-DlQIYeS5.js"),__vite__mapDeps([124,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-Ce-zEVZN.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-3d8A9kvB.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-CmVz3KZr.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-Jn3S4DeN.js"),__vite__mapDeps([128,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-BsGQfX6W.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-rzxKRkPl.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-B3RxzTPC.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-DrOtsCLh.js"),__vite__mapDeps([132,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-DyQR5TFM.js"),__vite__mapDeps([133,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-B6xK4kG_.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-Dl-vr0bC.js"),__vite__mapDeps([135,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-CrJU9pQp.js"),__vite__mapDeps([136,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-DrtnNh9-.js"),__vite__mapDeps([137,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-Cn1EQGgB.js"),__vite__mapDeps([138,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-CXDoZsZR.js"),__vite__mapDeps([139,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-CC6Wx6xY.js"),__vite__mapDeps([140,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-TuHf60ob.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-zzkwTxc_.js"),__vite__mapDeps([142,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-EML-jKM6.js"),__vite__mapDeps([143,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-N5GdJSbQ.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-DsVDr5dU.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-D7_oD-KG.js"),__vite__mapDeps([146,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-Cv_jSwrm.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-D7eVv_21.js"),__vite__mapDeps([148,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-BSlk0jml.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-Pg4epvz-.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/bat.vue":()=>e(()=>import("./bat-BbH2OvqQ.js"),__vite__mapDeps([151,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-B6NzT0C2.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/inverter.vue":()=>e(()=>import("./inverter-BaOo9WeK.js"),__vite__mapDeps([153,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-CTI3HQV5.js"),__vite__mapDeps([154,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-DdrUDEK_.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-Xoa0qNQw.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-CZxBgkMq.js"),__vite__mapDeps([157,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-Dqxkpm4s.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-0TBG9Kdm.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-_7mtDj_h.js"),__vite__mapDeps([160,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-0uEca16j.js"),__vite__mapDeps([161,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-ByIPJ75u.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-yhBlc68v.js"),__vite__mapDeps([163,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-BI2ZqzaW.js"),__vite__mapDeps([164,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-ByCHTSc9.js"),__vite__mapDeps([165,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/counter_maxstorage.vue":()=>e(()=>import("./counter_maxstorage-Dfob-vfT.js"),__vite__mapDeps([166,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-CKqZ-eL3.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-Bk86qHNm.js"),__vite__mapDeps([168,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter_maxstorage.vue":()=>e(()=>import("./inverter_maxstorage-Da9O-iNa.js"),__vite__mapDeps([169,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DaUzDfJC.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/bat.vue":()=>e(()=>import("./bat-eF5oA3Oa.js"),__vite__mapDeps([171,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/counter.vue":()=>e(()=>import("./counter-DB0QI8WO.js"),__vite__mapDeps([172,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-Cu0yn-TS.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-BvYIme5g.js"),__vite__mapDeps([174,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-DZNpCoR7.js"),__vite__mapDeps([175,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-D0K3UCGT.js"),__vite__mapDeps([176,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-D5PXSIy2.js"),__vite__mapDeps([177,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-BpIfpmVY.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/bat.vue":()=>e(()=>import("./bat-Dbv3vNU1.js"),__vite__mapDeps([179,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-BSo6UKEK.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-m3LVq5tF.js"),__vite__mapDeps([181,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-B9Y-E4ZO.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-vwuASijr.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-B-Mmd5Ze.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-BPisqhc7.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-DzDhZ3zK.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-Cv-hQ-5K.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-CZ_dQPx3.js"),__vite__mapDeps([188,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-Cg5a2DJ_.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-CyagC1co.js"),__vite__mapDeps([190,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-CiV4hgD_.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-C3SynQKw.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-CiFemq5S.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-YdmHIKyl.js"),__vite__mapDeps([194,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/bat.vue":()=>e(()=>import("./bat-g-gN6DNl.js"),__vite__mapDeps([195,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/counter.vue":()=>e(()=>import("./counter-B4eDF7ya.js"),__vite__mapDeps([196,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-BYcmVGRd.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-DhjTWscc.js"),__vite__mapDeps([198,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-DYUFbFFV.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-CPpOsUI8.js"),__vite__mapDeps([200,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-BiPl0Xry.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-BLcG2ney.js"),__vite__mapDeps([202,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-C4M0XOfA.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-DLWFTpaZ.js"),__vite__mapDeps([204,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/${this.component?.type}.vue`,4),errorComponent:se}):z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-C-avdMqj.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-BjgcGLL9.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-CJ5CONRY.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-DhOZN3TO.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DxhmA9hW.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-DfKVgx7A.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-C9aR_ErT.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-8genQHND.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-DoYhIPYo.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-DXOtDi9V.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-BdmFfYpU.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-dqP8cZ7r.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-C8-xjyT6.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-B8HOK5np.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-CMS4ZH9M.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-DSzaLUMX.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-CqqnDv7m.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-BkT_aSiu.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-B1gW7XBg.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-CJt9s3lV.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-Bz8u2WPE.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CLljSgUf.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-BPTQIU5L.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-CJ9ee9IO.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-2ydQEeHL.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-CMt4xRX4.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-CJ3OjUU2.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-B7DCatpp.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-64nbgpYC.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-CgG28OWw.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-B4WlrUah.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-D4Gw0lZJ.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-DE8Sn0RG.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-CcmT-XYr.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-DHMJ0YEs.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-0LygQjSp.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-GL-gGFSm.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-BnrlrcLl.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-DajujJNO.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-B0uzBvUm.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-Djcanbbk.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-DSXRbJXc.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DdYCjXX-.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-CHaeFEyt.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-MHTiTYZF.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-BJt2AdWR.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-DJivvwYM.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-Ce-zEVZN.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-3d8A9kvB.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-CmVz3KZr.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-BsGQfX6W.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-rzxKRkPl.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-B3RxzTPC.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-B6xK4kG_.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-TuHf60ob.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-N5GdJSbQ.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-DsVDr5dU.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-Cv_jSwrm.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-BSlk0jml.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-Pg4epvz-.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-B6NzT0C2.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-DdrUDEK_.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-Xoa0qNQw.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-Dqxkpm4s.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-0TBG9Kdm.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-ByIPJ75u.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-CKqZ-eL3.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DaUzDfJC.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-Cu0yn-TS.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-BpIfpmVY.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-BSo6UKEK.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-B9Y-E4ZO.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-vwuASijr.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-B-Mmd5Ze.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-BPisqhc7.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-DzDhZ3zK.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-Cv-hQ-5K.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-Cg5a2DJ_.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-CiV4hgD_.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-C3SynQKw.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-CiFemq5S.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-BYcmVGRd.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-DYUFbFFV.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-BiPl0Xry.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-C4M0XOfA.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/device.vue`,4),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,u,m,n,_){return s(),E(Z(_.getComponent()),{device:u.device,component:u.component,"component-id":u.component?u.component.id:void 0,"component-type":u.component?u.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=c=>_.updateConfiguration(c))},null,40,["device","component","component-id","component-type"])}const pe=D(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);U.add(S,G,K,N,$,H,F);const ce={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:q,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/configurable/devices_components",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!0},{topic:"openWB/system/device/+/config",writeable:!0}],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices(){const t=this.getWildcardTopics("openWB/system/device/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},installedComponents(){const t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},vendorList:{get(){const t=this.$store.state.mqtt["openWB/system/configurable/devices_components"];return t?Object.entries(t).map(([o,u])=>{const m=u?.vendors||{};return{label:u?.group_name||"",options:Object.entries(m).map(([n,_])=>({value:[o,n],text:_?.vendor_name||""})).sort((n,_)=>n.text.localeCompare(_.text))}}).sort((o,u)=>-o.label.localeCompare(u.label)):[]}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;const u=this.$store.state.mqtt["openWB/system/configurable/devices_components"]?.[t]?.vendors?.[o]?.devices;return u?Object.entries(u).map(([m,n])=>({value:[o,m],text:n.device_name})).sort((m,n)=>m.text.localeCompare(n.text)):[]}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,u){u.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,u,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:u,deviceVendor:o,type:m}})},removeComponentModal(t,o,u,m,n){n.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:u},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let u=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(u=Object.entries(m.vendors[t].devices[o].components).map(([_,c])=>({value:_,text:c.component_name}))),!1):!0),u},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},le={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},Oe={key:1},Te={key:0};function Ie(t,o,u,m,n,_){const c=p("openwb-base-modal-dialog"),A=p("router-link"),I=p("openwb-base-alert"),P=p("font-awesome-icon"),b=p("openwb-base-avatar"),R=p("openwb-base-text-input"),x=p("openwb-config-proxy"),B=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),M=p("openwb-base-submit-buttons");return s(),g(f,null,[d(c,{show:n.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeDevice},{default:i(()=>[v(' Willst Du das Gerät "'+O(n.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),d(c,{show:n.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeComponent},{default:i(()=>[v(' Willst Du die Komponente "'+O(n.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l("div",le,[l("form",Ee,[u.installAssistantActive?L("",!0):(s(),E(I,{key:0,subtype:"info"},{default:i(()=>[o[7]||(o[7]=v(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),d(A,{to:"/LoadManagementConfiguration"},{default:i(()=>[...o[6]||(o[6]=[v(" Lastmanagement ",-1)])]),_:1}),o[8]||(o[8]=v(" zu prüfen!",-1)),o[9]||(o[9]=l("br",null,null,-1)),o[10]||(o[10]=v(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung von Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1})),d(w,{title:"Geräte und Komponenten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(s(),g("div",ge,[d(I,{subtype:"info"},{default:i(()=>[...o[11]||(o[11]=[v(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(s(),g("div",Ve,[(s(!0),g(f,null,k(_.installedDevices,(r,h)=>(s(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:i(()=>[d(P,{icon:["fas","network-wired"]}),v(" "+O(r?.name),1)]),actions:i(a=>[a.collapsed?(s(),g("div",Oe,[(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),V=>(s(),E(b,{key:V?.id,class:Q("ml-1 bg-"+_.getComponentTypeClass(V?.type))},{default:i(()=>[d(P,{icon:_.getComponentTypeIcon(V?.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:V=>_.removeDeviceModal(r?.id,r?.name,V)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":r?.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=l("hr",null,null,-1)),d(x,{device:r,"onUpdate:configuration":a=>_.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=l("hr",null,null,-1)),d(B,null,{default:i(()=>[...o[12]||(o[12]=[v("Komponenten",-1)])]),_:1}),_.deviceHasConfiguredComponents(r?.id)?L("",!0):(s(),E(I,{key:0,subtype:"warning"},{default:i(()=>[...o[13]||(o[13]=[v(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1})),(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),(a,V)=>(s(),E(w,{key:a?.id,collapsible:!0,collapsed:!0,subtype:_.getComponentTypeClass(a?.type)},{header:i(()=>[d(P,{icon:_.getComponentTypeIcon(a?.type)},null,8,["icon"]),v(" "+O(a?.name),1)]),actions:i(T=>[T.collapsed?L("",!0):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:W=>_.removeComponentModal(r?.id,a?.id,a?.type,a?.name,W)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":a?.name,"onUpdate:modelValue":T=>t.updateState(V,T,"name")},null,8,["model-value","onUpdate:modelValue"]),d(R,{title:"Hersteller",subtype:"text","model-value":a?.info.manufacturer,"onUpdate:modelValue":T=>t.updateState(V,T,"info.manufacturer")},{help:i(()=>[...o[14]||(o[14]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),d(R,{title:"Modell",subtype:"text","model-value":a?.info.model,"onUpdate:modelValue":T=>t.updateState(V,T,"info.model")},{help:i(()=>[...o[15]||(o[15]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=l("hr",null,null,-1)),d(x,{device:r,component:a,"onUpdate:configuration":T=>_.updateConfiguration(V,T)},null,8,["device","component","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),o[21]||(o[21]=l("hr",null,null,-1)),_.getComponentList(r?.vendor,r?.type)?.length?(s(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:_.getComponentList(r?.vendor,r?.type),"model-value":n.componentToAdd[r?.id],"add-button":!0,"onUpdate:modelValue":a=>n.componentToAdd[r?.id]=a,"onInput:add":a=>_.addComponent(r?.id,r?.vendor,r?.type,n.componentToAdd[r?.id])},{help:i(()=>[...o[17]||(o[17]=[v(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue","onInput:add"])):(s(),E(I,{key:2,subtype:"info"},{default:i(()=>[...o[18]||(o[18]=[v(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1}))]),_:2},1024))),128)),Object.keys(_.installedDevices)?.length>0?(s(),g("hr",Te)):L("",!0),d(y,{modelValue:n.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=r=>n.selectedVendor=r),title:"Hersteller","not-selected":"Bitte auswählen",groups:_.vendorList},null,8,["modelValue","groups"]),d(y,{modelValue:n.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=r=>n.deviceToAdd=r),o[2]||(o[2]=r=>n.deviceToAdd=r)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:n.selectedVendor===void 0,options:_.deviceList,"model-value":n.deviceToAdd,"add-button":!0,"onInput:add":_.addDevice},{help:i(()=>[...o[22]||(o[22]=[l("p",null,[v(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),l("br"),v(' 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),l("p",null,[v(' 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.'),l("br"),v(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),l("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])]),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),d(M,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:o[4]||(o[4]=r=>t.$emit("reset")),onDefaults:o[5]||(o[5]=r=>t.$emit("defaults"))})])])],64)}const De=D(ce,[["render",Ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),fe=Object.freeze(Object.defineProperty({__proto__:null,default:De},Symbol.toStringTag,{value:"Module"}));export{re as C,j as D,De as H,fe as a}; diff --git a/web/settings/assets/IdentificationConfiguration-BapSq8DD.js b/web/settings/assets/IdentificationConfiguration-NvHT7cba.js similarity index 96% rename from web/settings/assets/IdentificationConfiguration-BapSq8DD.js rename to web/settings/assets/IdentificationConfiguration-NvHT7cba.js index eeb1d94919..457b60954f 100644 --- a/web/settings/assets/IdentificationConfiguration-BapSq8DD.js +++ b/web/settings/assets/IdentificationConfiguration-NvHT7cba.js @@ -1,2 +1,2 @@ -import{C as _}from"./index-BBXHIMfY.js";import{S as y}from"./SystemVersion-ClVKOJRu.js";import{_ as D,l as m,k as i,e as l,x as r,m as s,q as o,A as a,y as u,u as g,K as B,L as w,J as b}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";const I={name:"IdentificationConfigView",mixins:[_,y],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid_timestamp",writeable:!1},{topic:"openWB/chargepoint/+/get/vehicle_id",writeable:!1},{topic:"openWB/chargepoint/+/set/rfid",writeable:!1},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!0},{topic:"openWB/vehicle/+/charge_template",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0}],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},L={class:"optionalComponents"},q={name:"optionalComponentsForm"},F=["href"],V={key:2},S={key:0},T={key:2},E={key:0};function C(e,t,A,P,N,f){const d=m("openwb-base-alert"),c=m("openwb-base-button-group-input"),z=m("openwb-base-textarea"),v=m("openwb-base-card"),h=m("openwb-base-heading"),W=m("openwb-base-array-input"),$=m("openwb-base-submit-buttons");return i(),l("div",L,[r("form",q,[s(v,{title:"Identifikation"},{default:o(()=>[s(d,{subtype:"info"},{default:o(()=>[r("p",null,[t[4]||(t[4]=a(" Eine ausführliche Anleitung findest Du hier: ",-1)),r("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${e.systemVersion}:software:einstell-konfig:einstellungen:identifikation`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Identifikation ",8,F)]),t[5]||(t[5]=a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1)),t[6]||(t[6]=r("ul",null,[r("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),r("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),r("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1)),t[7]||(t[7]=r("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1)),t[8]||(t[8]=r("p",null,[a(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein Fragezeichen (?) entspricht dabei einem Zeichen, ein Stern (*) beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),r("br"),a(" Es wird davon abgeraten, Muster für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1))]),_:1}),s(c,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info",class:"mt-3"},{default:o(()=>[...t[9]||(t[9]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(z,{key:1,title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":f.idTagList.join(` +import{C as _}from"./index-CyH1Au4V.js";import{S as y}from"./SystemVersion-DQAfG1DR.js";import{_ as D,l as m,k as i,e as l,x as r,m as s,q as o,A as a,y as u,u as g,K as B,L as w,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const I={name:"IdentificationConfigView",mixins:[_,y],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid_timestamp",writeable:!1},{topic:"openWB/chargepoint/+/get/vehicle_id",writeable:!1},{topic:"openWB/chargepoint/+/set/rfid",writeable:!1},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!0},{topic:"openWB/vehicle/+/charge_template",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0}],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},L={class:"optionalComponents"},q={name:"optionalComponentsForm"},F=["href"],V={key:2},S={key:0},T={key:2},E={key:0};function C(e,t,A,P,N,f){const d=m("openwb-base-alert"),c=m("openwb-base-button-group-input"),z=m("openwb-base-textarea"),v=m("openwb-base-card"),h=m("openwb-base-heading"),W=m("openwb-base-array-input"),$=m("openwb-base-submit-buttons");return i(),l("div",L,[r("form",q,[s(v,{title:"Identifikation"},{default:o(()=>[s(d,{subtype:"info"},{default:o(()=>[r("p",null,[t[4]||(t[4]=a(" Eine ausführliche Anleitung findest Du hier: ",-1)),r("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${e.systemVersion}:software:einstell-konfig:einstellungen:identifikation`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Identifikation ",8,F)]),t[5]||(t[5]=a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1)),t[6]||(t[6]=r("ul",null,[r("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),r("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),r("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1)),t[7]||(t[7]=r("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1)),t[8]||(t[8]=r("p",null,[a(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein Fragezeichen (?) entspricht dabei einem Zeichen, ein Stern (*) beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),r("br"),a(" Es wird davon abgeraten, Muster für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1))]),_:1}),s(c,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info",class:"mt-3"},{default:o(()=>[...t[9]||(t[9]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(z,{key:1,title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":f.idTagList.join(` `)},null,8,["model-value"])):g("",!0)]),_:1}),s(h,null,{default:o(()=>[...t[10]||(t[10]=[a(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])]),_:1}),s(v,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info"},{default:o(()=>[...t[11]||(t[11]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' Die Konfiguration zum Entsperren von Ladepunkten bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(i(),u(d,{key:1,subtype:"info"},{default:o(()=>[...t[12]||(t[12]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})):(i(),l("div",V,[s(d,{subtype:"info"},{default:o(()=>[...t[13]||(t[13]=[a(" Hier zugeordnete ID-Tags entsperren beim Scannen das jeweilige Ladepunkt-Profil. Der ID-Tag kann an jedem Ladepunkt genutzt werden, dem das entsprechende Ladepunkt-Profil zugeordnet wurde. ",-1)])]),_:1}),(i(!0),l(B,null,w(f.chargePointTemplates,(n,p)=>(i(),l("div",{key:p},[f.getChargePointTemplateIndex(p)!=0?(i(),l("hr",S)):g("",!0),s(h,{class:"mt-0"},{default:o(()=>[a(b(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(W,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":n.valid_tags,"onUpdate:modelValue":k=>e.updateState(p,k,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),s(c,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.disable_after_unplug,"onUpdate:modelValue":k=>e.updateState(p,k,"disable_after_unplug")},{help:o(()=>[a(' Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+b(n.name)+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt. ',1)]),_:2},1032,["model-value","onUpdate:modelValue"])]))),128))]))]),_:1}),s(h,null,{default:o(()=>[...t[14]||(t[14]=[a(" Zuordnung von Fahrzeugen ",-1)])]),_:1}),s(v,{title:"Fahrzeuge",subtype:"info",collapsible:!0,collapsed:!0},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info"},{default:o(()=>[...t[15]||(t[15]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(i(),u(d,{key:1,subtype:"info"},{default:o(()=>[...t[16]||(t[16]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})):(i(),l("div",T,[s(d,{subtype:"info"},{default:o(()=>[...t[17]||(t[17]=[a(" Hier zugeordnete ID-Tags weisen dem Ladepunkt beim Scannen automatisch das jeweilige Fahrzeug zu. Ist bei Scannen des ID-Tags noch kein Fahrzeug angeschlossen muss dies zeitnah erfolgen, da der ID-Tag nach 5 Minuten verworfen wird. ",-1)])]),_:1}),(i(!0),l(B,null,w(f.vehicleIndexes,n=>(i(),l("div",{key:n},[n!=f.vehicleIndexes[0]?(i(),l("hr",E)):g("",!0),s(h,{class:"mt-0"},{default:o(()=>[a(b(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(W,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":p=>e.updateState("openWB/vehicle/"+n+"/tag_id",p)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),n!=0?(i(),u(c,{key:2,title:"Standard-Fahrzeug nach Abstecken zuordnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default,"onUpdate:modelValue":p=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],p,"load_default")},{help:o(()=>[a(' Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name)+'" gespeichert.',1),t[18]||(t[18]=r("br",null,null,-1)),a(' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge '+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?"aktiviert":"deaktiviert")+" , denen dieses Lade-Profil zugeordnet wurde. ",1)]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0)]))),128))]))]),_:1}),s($,{"form-name":"optionalComponentsForm",onSave:t[1]||(t[1]=n=>e.$emit("save",e.mqttTopicsToPublish)),onReset:t[2]||(t[2]=n=>e.$emit("reset")),onDefaults:t[3]||(t[3]=n=>e.$emit("defaults"))})])])}const H=D(I,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfiguration.vue"]]);export{H as default}; diff --git a/web/settings/assets/InstallAssistant-AdA1tpOL.js b/web/settings/assets/InstallAssistant-D7lW6Pyr.js similarity index 54% rename from web/settings/assets/InstallAssistant-AdA1tpOL.js rename to web/settings/assets/InstallAssistant-D7lW6Pyr.js index cca663ca41..c4a4b0b3ae 100644 --- a/web/settings/assets/InstallAssistant-AdA1tpOL.js +++ b/web/settings/assets/InstallAssistant-D7lW6Pyr.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/InstallAssistantStep0-BEHCt2pE.js","assets/index-BBXHIMfY.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-DD1DIYBi.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/index-TrnuT1ez.css","assets/InstallAssistantStepTemplate-BTH3zfoW.js","assets/InstallAssistantStepTemplate-DIMIp8sn.css","assets/InstallAssistantStep1-DD1OK8kT.js","assets/DataManagement-BquAussF.js","assets/dynamic-import-helper-BheWnx7M.js","assets/InstallAssistantStep10-C3aQ9rwj.js","assets/InstallAssistantStep2-DdXrpkfu.js","assets/SystemConfiguration-BZnhVkFh.js","assets/SystemConfiguration-BWslT2W-.css","assets/InstallAssistantStep20-Dd2k6G1i.js","assets/ChargePointInstallation-CN2wQ7QE.js","assets/SystemVersion-ClVKOJRu.js","assets/ChargePointInstallation-37TSBtDo.css","assets/InstallAssistantStep3-heZ7Rvkh.js","assets/GeneralConfiguration-D9XW5ejg.js","assets/InstallAssistantStep4-DOUSLsts.js","assets/IoConfiguration-cTbf922R.js","assets/InstallAssistantStep5-CW0634-j.js","assets/HardwareInstallation-BsQdwN_Y.js","assets/InstallAssistantStep6-CSFMizsR.js","assets/InstallAssistantStep7-CzfQtKIl.js","assets/LoadManagementConfiguration-BH64OBxz.js","assets/OpenwbSortableList-BnacrijU.js","assets/OpenwbSortableList-C11EhIQj.css","assets/InstallAssistantStep8-DFYWVFiO.js","assets/VehicleConfiguration--T3YyIjm.js","assets/InstallAssistantStep9-DP8jJHvD.js"])))=>i.map(i=>d[i]); -import{C as r,_ as t}from"./index-BBXHIMfY.js";import{_}from"./dynamic-import-helper-BheWnx7M.js";import{_ as m,l as p,k as i,e as d,m as u,q as A,A as v,y as E,a2 as I,a1 as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),c({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-BEHCt2pE.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-DD1OK8kT.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-C3aQ9rwj.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-DdXrpkfu.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11,17,18])),"../components/install_assistant/InstallAssistantStep20.vue":()=>t(()=>import("./InstallAssistantStep20-Dd2k6G1i.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-heZ7Rvkh.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,24,21,14])),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-DOUSLsts.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,26,14])),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-CW0634-j.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,28,14])),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-CSFMizsR.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-CzfQtKIl.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,11,31,32,33])),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-DFYWVFiO.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10,11,35,14])),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-DP8jJHvD.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-BTH3zfoW.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8,9,11]))}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`,4)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,a){const l=p("openwb-base-modal-dialog");return i(),d("div",null,[u(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:a.endAssistant},{default:A(()=>[...n[4]||(n[4]=[v(" Willst Du den Assistenten wirklich vorzeitig beenden? ",-1)])]),_:1},8,["show","onModalResult"]),(i(),E(I(a.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=e=>s.$emit("sendCommand",e)),onSave:n[1]||(n[1]=e=>s.$emit("save",e)),onReset:n[2]||(n[2]=e=>s.$emit("reset")),onDefaults:n[3]||(n[3]=e=>s.$emit("defaults")),onSwitchPage:a.switchPage,onEndAssistant:a.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const O=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{O as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/InstallAssistantStep0-DfZRc1of.js","assets/index-CyH1Au4V.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/InstallAssistantStepTemplate-DrvBpF-0.js","assets/InstallAssistantStepTemplate-DIMIp8sn.css","assets/InstallAssistantStep1-CfAxuVn6.js","assets/DataManagement-FAi2cjUn.js","assets/dynamic-import-helper-BheWnx7M.js","assets/InstallAssistantStep10-Dr52sUyf.js","assets/InstallAssistantStep2-BKDBrkQe.js","assets/SystemConfiguration-BYwqt7v1.js","assets/SystemConfiguration-BWslT2W-.css","assets/InstallAssistantStep20-Ci-UHX10.js","assets/ChargePointInstallation-C3IshOKk.js","assets/SystemVersion-DQAfG1DR.js","assets/ChargePointInstallation-37TSBtDo.css","assets/InstallAssistantStep3-B3u9R9nB.js","assets/GeneralConfiguration-CMMYSFfh.js","assets/InstallAssistantStep4-fJZIPmZy.js","assets/IoConfiguration-vfX10CsO.js","assets/InstallAssistantStep5-BZyeEizn.js","assets/HardwareInstallation-caZ0sA9z.js","assets/InstallAssistantStep6-D0cpR0xQ.js","assets/InstallAssistantStep7-ipX38vw1.js","assets/LoadManagementConfiguration-DVcGfr2E.js","assets/OpenwbSortableList-BORHS8nd.js","assets/OpenwbSortableList-C11EhIQj.css","assets/InstallAssistantStep8-CMR8ijwj.js","assets/VehicleConfiguration-TZSwJptx.js","assets/InstallAssistantStep9-DAbMQ63I.js"])))=>i.map(i=>d[i]); +import{C as r,_ as t}from"./index-CyH1Au4V.js";import{_}from"./dynamic-import-helper-BheWnx7M.js";import{_ as m,l as p,k as i,e as d,m as u,q as A,A as v,y as E,a2 as I,a1 as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),c({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-DfZRc1of.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-CfAxuVn6.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-Dr52sUyf.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-BKDBrkQe.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11,17,18])),"../components/install_assistant/InstallAssistantStep20.vue":()=>t(()=>import("./InstallAssistantStep20-Ci-UHX10.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-B3u9R9nB.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,24,21,14])),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-fJZIPmZy.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,26,14])),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-BZyeEizn.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,28,14])),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-D0cpR0xQ.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-ipX38vw1.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,11,31,32,33])),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-CMR8ijwj.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10,11,35,14])),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-DAbMQ63I.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-DrvBpF-0.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8,9,11]))}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`,4)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,a){const l=p("openwb-base-modal-dialog");return i(),d("div",null,[u(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:a.endAssistant},{default:A(()=>[...n[4]||(n[4]=[v(" Willst Du den Assistenten wirklich vorzeitig beenden? ",-1)])]),_:1},8,["show","onModalResult"]),(i(),E(I(a.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=e=>s.$emit("sendCommand",e)),onSave:n[1]||(n[1]=e=>s.$emit("save",e)),onReset:n[2]||(n[2]=e=>s.$emit("reset")),onDefaults:n[3]||(n[3]=e=>s.$emit("defaults")),onSwitchPage:a.switchPage,onEndAssistant:a.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const O=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{O as default}; diff --git a/web/settings/assets/InstallAssistantStep0-BEHCt2pE.js b/web/settings/assets/InstallAssistantStep0-DfZRc1of.js similarity index 87% rename from web/settings/assets/InstallAssistantStep0-BEHCt2pE.js rename to web/settings/assets/InstallAssistantStep0-DfZRc1of.js index 43f0fd5feb..0089cc1cea 100644 --- a/web/settings/assets/InstallAssistantStep0-BEHCt2pE.js +++ b/web/settings/assets/InstallAssistantStep0-DfZRc1of.js @@ -1 +1 @@ -import{C as m}from"./index-BBXHIMfY.js";import g from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{F as f}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as h,l as i,k as c,y as w,q as r,m as a,A as o,x as n}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopics:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,P,v,t){const l=i("openwb-base-modal-dialog"),d=i("FontAwesomeIcon"),u=i("InstallAssistantStepTemplate");return c(),w(u,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>[...e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])]),_:1},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(d,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const D=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{D as default}; +import{C as m}from"./index-CyH1Au4V.js";import g from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,l as i,k as c,y as w,q as r,m as a,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopics:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,P,v,t){const l=i("openwb-base-modal-dialog"),d=i("FontAwesomeIcon"),u=i("InstallAssistantStepTemplate");return c(),w(u,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>[...e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])]),_:1},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(d,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const D=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{D as default}; diff --git a/web/settings/assets/InstallAssistantStep1-DD1OK8kT.js b/web/settings/assets/InstallAssistantStep1-CfAxuVn6.js similarity index 78% rename from web/settings/assets/InstallAssistantStep1-DD1OK8kT.js rename to web/settings/assets/InstallAssistantStep1-CfAxuVn6.js index bb964835a3..adfc07261f 100644 --- a/web/settings/assets/InstallAssistantStep1-DD1OK8kT.js +++ b/web/settings/assets/InstallAssistantStep1-CfAxuVn6.js @@ -1 +1 @@ -import{C as m}from"./index-BBXHIMfY.js";import p from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{D as l}from"./DataManagement-BquAussF.js";import{_ as d,l as a,k as u,y as g,q as o,m as f,x as v}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(s,e,c,w,S,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[v("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])]),content:o(()=>[f(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; +import{C as m}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{D as l}from"./DataManagement-FAi2cjUn.js";import{_ as d,l as a,k as u,y as g,q as o,m as f,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(s,e,c,w,S,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[v("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])]),content:o(()=>[f(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep10-C3aQ9rwj.js b/web/settings/assets/InstallAssistantStep10-Dr52sUyf.js similarity index 78% rename from web/settings/assets/InstallAssistantStep10-C3aQ9rwj.js rename to web/settings/assets/InstallAssistantStep10-Dr52sUyf.js index 22e228df6a..2afa26e053 100644 --- a/web/settings/assets/InstallAssistantStep10-C3aQ9rwj.js +++ b/web/settings/assets/InstallAssistantStep10-Dr52sUyf.js @@ -1 +1 @@ -import{C as a}from"./index-BBXHIMfY.js";import o from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{_ as r,l,k as m,y as p,q as d,x as n}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";const g={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopics:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function u(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>[...s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(g,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; +import{C as a}from"./index-CyH1Au4V.js";import o from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{_ as r,l,k as m,y as p,q as d,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const g={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopics:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function u(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>[...s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(g,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; diff --git a/web/settings/assets/InstallAssistantStep2-DdXrpkfu.js b/web/settings/assets/InstallAssistantStep2-BKDBrkQe.js similarity index 79% rename from web/settings/assets/InstallAssistantStep2-DdXrpkfu.js rename to web/settings/assets/InstallAssistantStep2-BKDBrkQe.js index a20ee9b0c6..83f874da3f 100644 --- a/web/settings/assets/InstallAssistantStep2-DdXrpkfu.js +++ b/web/settings/assets/InstallAssistantStep2-BKDBrkQe.js @@ -1 +1 @@ -import{C as l}from"./index-BBXHIMfY.js";import p from"./InstallAssistantStepTemplate-BTH3zfoW.js";import d from"./SystemConfiguration-BZnhVkFh.js";import{_ as u,l as i,k as f,y as g,q as o,m as S,x as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";const w={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function A(s,t,v,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...t[4]||(t[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null," Bitte warten, bis die Versionsliste aktualisiert wurde. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ",-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])]),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:t[0]||(t[0]=e=>s.$emit("sendCommand",e)),onSave:t[1]||(t[1]=e=>s.$emit("save",e)),onReset:t[2]||(t[2]=e=>s.$emit("reset")),onDefaults:t[3]||(t[3]=e=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(w,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{I as default}; +import{C as l}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import d from"./SystemConfiguration-BYwqt7v1.js";import{_ as u,l as i,k as f,y as g,q as o,m as S,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const w={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function A(s,t,v,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...t[4]||(t[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null," Bitte warten, bis die Versionsliste aktualisiert wurde. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ",-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])]),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:t[0]||(t[0]=e=>s.$emit("sendCommand",e)),onSave:t[1]||(t[1]=e=>s.$emit("save",e)),onReset:t[2]||(t[2]=e=>s.$emit("reset")),onDefaults:t[3]||(t[3]=e=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(w,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{I as default}; diff --git a/web/settings/assets/InstallAssistantStep20-Dd2k6G1i.js b/web/settings/assets/InstallAssistantStep20-Ci-UHX10.js similarity index 80% rename from web/settings/assets/InstallAssistantStep20-Dd2k6G1i.js rename to web/settings/assets/InstallAssistantStep20-Ci-UHX10.js index 63f6fc588f..84286064d9 100644 --- a/web/settings/assets/InstallAssistantStep20-Dd2k6G1i.js +++ b/web/settings/assets/InstallAssistantStep20-Ci-UHX10.js @@ -1 +1 @@ -import{C as l}from"./index-BBXHIMfY.js";import d from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{b as m}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function k(s,e,v,B,c,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),t("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),t("p",null,' Trage unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wähle die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),t("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(P,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep20.vue"]]);export{z as default}; +import{C as l}from"./index-CyH1Au4V.js";import d from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{b as m}from"./ChargePointInstallation-C3IshOKk.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function k(s,e,v,B,c,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),t("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),t("p",null,' Trage unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wähle die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),t("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(P,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep20.vue"]]);export{z as default}; diff --git a/web/settings/assets/InstallAssistantStep3-heZ7Rvkh.js b/web/settings/assets/InstallAssistantStep3-B3u9R9nB.js similarity index 81% rename from web/settings/assets/InstallAssistantStep3-heZ7Rvkh.js rename to web/settings/assets/InstallAssistantStep3-B3u9R9nB.js index f95f5e388a..e02fc7e260 100644 --- a/web/settings/assets/InstallAssistantStep3-heZ7Rvkh.js +++ b/web/settings/assets/InstallAssistantStep3-B3u9R9nB.js @@ -1 +1 @@ -import{C as p}from"./index-BBXHIMfY.js";import d from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{G as m}from"./GeneralConfiguration-D9XW5ejg.js";import{_ as u,l as i,k as g,y as f,q as r,m as w,x as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigurationView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:4)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function P(n,e,S,A,c,s){const o=i("GeneralConfigurationView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>[...e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=u(k,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{E as default}; +import{C as p}from"./index-CyH1Au4V.js";import d from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{G as m}from"./GeneralConfiguration-CMMYSFfh.js";import{_ as u,l as i,k as g,y as f,q as r,m as w,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigurationView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:4)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function P(n,e,S,A,c,s){const o=i("GeneralConfigurationView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>[...e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=u(k,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{E as default}; diff --git a/web/settings/assets/InstallAssistantStep4-DOUSLsts.js b/web/settings/assets/InstallAssistantStep4-fJZIPmZy.js similarity index 82% rename from web/settings/assets/InstallAssistantStep4-DOUSLsts.js rename to web/settings/assets/InstallAssistantStep4-fJZIPmZy.js index 6fd4c69537..a7364c931f 100644 --- a/web/settings/assets/InstallAssistantStep4-DOUSLsts.js +++ b/web/settings/assets/InstallAssistantStep4-fJZIPmZy.js @@ -1 +1 @@ -import{C as l}from"./index-BBXHIMfY.js";import p from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{I as d}from"./IoConfiguration-cTbf922R.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const S={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(s,e,A,h,P,i){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),t("p",{class:"font-weight-bold"},"Optional:",-1),t("p",null,[c(" Wird die openWB nicht als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet, "),t("span",{class:"font-weight-bold"},"kann dieser Schritt übersprungen werden.")],-1),t("p",null," Soll die openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const W=u(S,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{W as default}; +import{C as l}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{I as d}from"./IoConfiguration-vfX10CsO.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const S={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(s,e,A,h,P,i){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),t("p",{class:"font-weight-bold"},"Optional:",-1),t("p",null,[c(" Wird die openWB nicht als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet, "),t("span",{class:"font-weight-bold"},"kann dieser Schritt übersprungen werden.")],-1),t("p",null," Soll die openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const W=u(S,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStep5-CW0634-j.js b/web/settings/assets/InstallAssistantStep5-BZyeEizn.js similarity index 84% rename from web/settings/assets/InstallAssistantStep5-CW0634-j.js rename to web/settings/assets/InstallAssistantStep5-BZyeEizn.js index 66bf1a1281..0fac892c2f 100644 --- a/web/settings/assets/InstallAssistantStep5-CW0634-j.js +++ b/web/settings/assets/InstallAssistantStep5-BZyeEizn.js @@ -1 +1 @@ -import{C as d}from"./index-BBXHIMfY.js";import m from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{H as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as r,k as g,y as w,q as a,m as f,x as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(n,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const x=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{x as default}; +import{C as d}from"./index-CyH1Au4V.js";import m from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{H as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as r,k as g,y as w,q as a,m as f,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(n,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const x=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{x as default}; diff --git a/web/settings/assets/InstallAssistantStep6-CSFMizsR.js b/web/settings/assets/InstallAssistantStep6-D0cpR0xQ.js similarity index 86% rename from web/settings/assets/InstallAssistantStep6-CSFMizsR.js rename to web/settings/assets/InstallAssistantStep6-D0cpR0xQ.js index 22eb838d61..30692f592d 100644 --- a/web/settings/assets/InstallAssistantStep6-CSFMizsR.js +++ b/web/settings/assets/InstallAssistantStep6-D0cpR0xQ.js @@ -1 +1 @@ -import{C as d}from"./index-BBXHIMfY.js";import p from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{b as u}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as m,l as a,k as h,y as g,q as r,m as w,x as n}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:p,ChargePointInstallationView:u},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(s,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const C=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{C as default}; +import{C as d}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{b as u}from"./ChargePointInstallation-C3IshOKk.js";import{_ as m,l as a,k as h,y as g,q as r,m as w,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:p,ChargePointInstallationView:u},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(s,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const C=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{C as default}; diff --git a/web/settings/assets/InstallAssistantStep7-CzfQtKIl.js b/web/settings/assets/InstallAssistantStep7-ipX38vw1.js similarity index 85% rename from web/settings/assets/InstallAssistantStep7-CzfQtKIl.js rename to web/settings/assets/InstallAssistantStep7-ipX38vw1.js index 3613b5b2e4..284d60e807 100644 --- a/web/settings/assets/InstallAssistantStep7-CzfQtKIl.js +++ b/web/settings/assets/InstallAssistantStep7-ipX38vw1.js @@ -1 +1 @@ -import{C as l}from"./index-BBXHIMfY.js";import m from"./InstallAssistantStepTemplate-BTH3zfoW.js";import u from"./LoadManagementConfiguration-BH64OBxz.js";import{_ as p,l as a,k as g,y as h,q as r,m as c,x as n}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./OpenwbSortableList-BnacrijU.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigurationView:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(s,e,S,w,A,i){const o=a("LoadManagementConfigurationView"),d=a("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{$ as default}; +import{C as l}from"./index-CyH1Au4V.js";import m from"./InstallAssistantStepTemplate-DrvBpF-0.js";import u from"./LoadManagementConfiguration-DVcGfr2E.js";import{_ as p,l as a,k as g,y as h,q as r,m as c,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./OpenwbSortableList-BORHS8nd.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigurationView:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(s,e,S,w,A,i){const o=a("LoadManagementConfigurationView"),d=a("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep8-DFYWVFiO.js b/web/settings/assets/InstallAssistantStep8-CMR8ijwj.js similarity index 85% rename from web/settings/assets/InstallAssistantStep8-DFYWVFiO.js rename to web/settings/assets/InstallAssistantStep8-CMR8ijwj.js index 83d9dd6351..8872b28198 100644 --- a/web/settings/assets/InstallAssistantStep8-DFYWVFiO.js +++ b/web/settings/assets/InstallAssistantStep8-CMR8ijwj.js @@ -1 +1 @@ -import{C as g}from"./index-BBXHIMfY.js";import p from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{a as h}from"./VehicleConfiguration--T3YyIjm.js";import{F as f}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as z,l as r,k as w,y as P,q as a,m as o,x as n,A as d}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigurationView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(s,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigurationView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=d(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),o(l,{icon:["far","question-circle"]}),e[5]||(e[5]=d(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[o(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{E as default}; +import{C as g}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{a as h}from"./VehicleConfiguration-TZSwJptx.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as z,l as r,k as w,y as P,q as a,m as o,x as n,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigurationView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(s,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigurationView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=d(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),o(l,{icon:["far","question-circle"]}),e[5]||(e[5]=d(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[o(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{E as default}; diff --git a/web/settings/assets/InstallAssistantStep9-DP8jJHvD.js b/web/settings/assets/InstallAssistantStep9-DAbMQ63I.js similarity index 81% rename from web/settings/assets/InstallAssistantStep9-DP8jJHvD.js rename to web/settings/assets/InstallAssistantStep9-DAbMQ63I.js index f12cdf523a..f0b973a202 100644 --- a/web/settings/assets/InstallAssistantStep9-DP8jJHvD.js +++ b/web/settings/assets/InstallAssistantStep9-DAbMQ63I.js @@ -1 +1 @@ -import{C as m}from"./index-BBXHIMfY.js";import p from"./InstallAssistantStepTemplate-BTH3zfoW.js";import{D as u}from"./DataManagement-BquAussF.js";import{_ as d,l as a,k as g,y as f,q as i,m as v,x as o}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:8)},endAssistant(){this.$emit("endAssistant")}}};function A(n,e,$,S,c,s){const r=a("DataManagement"),l=a("InstallAssistantStepTemplate");return g(),f(l,{title:`${s.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:i(()=>[...e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])]),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(P,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; +import{C as m}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{D as u}from"./DataManagement-FAi2cjUn.js";import{_ as d,l as a,k as g,y as f,q as i,m as v,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:8)},endAssistant(){this.$emit("endAssistant")}}};function A(n,e,$,S,c,s){const r=a("DataManagement"),l=a("InstallAssistantStepTemplate");return g(),f(l,{title:`${s.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:i(()=>[...e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])]),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(P,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-BTH3zfoW.js b/web/settings/assets/InstallAssistantStepTemplate-DrvBpF-0.js similarity index 87% rename from web/settings/assets/InstallAssistantStepTemplate-BTH3zfoW.js rename to web/settings/assets/InstallAssistantStepTemplate-DrvBpF-0.js index 199065566a..18eb2dc862 100644 --- a/web/settings/assets/InstallAssistantStepTemplate-BTH3zfoW.js +++ b/web/settings/assets/InstallAssistantStepTemplate-DrvBpF-0.js @@ -1 +1 @@ -import{C as g}from"./index-BBXHIMfY.js";import{F as v,l as w,aH as y,aI as x}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as k,l as r,k as a,e as i,m as t,q as s,x as n,f as _,A as c,u as p}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";const B="/openWB/web/settings/img/openWB_logo_light.png";w.add(y,x);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:v},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},I={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},N={class:"row justify-content-center"},S={class:"page-help-text col-md-3 py-2"},T={class:"col py-2"};function $(u,e,o,j,q,l){const m=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=f=>l.previousPage())},{default:s(()=>[t(m,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=f=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(m,{icon:["fas","caret-right"]})]),_:1})])),o.hideEnd?p("",!0):(a(),i("div",I,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=f=>l.endAssistant())},{default:s(()=>[...e[5]||(e[5]=[c(" Assistent beenden ",-1)])]),_:1})]))])]),default:s(()=>[n("div",N,[n("div",S,[_(u.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",T,[_(u.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; +import{C as g}from"./index-CyH1Au4V.js";import{F as v,l as w,aH as y,aI as x}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as k,l as r,k as a,e as i,m as t,q as s,x as n,f as _,A as c,u as p}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const B="/openWB/web/settings/img/openWB_logo_light.png";w.add(y,x);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:v},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},I={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},N={class:"row justify-content-center"},S={class:"page-help-text col-md-3 py-2"},T={class:"col py-2"};function $(u,e,o,j,q,l){const m=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=f=>l.previousPage())},{default:s(()=>[t(m,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=f=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(m,{icon:["fas","caret-right"]})]),_:1})])),o.hideEnd?p("",!0):(a(),i("div",I,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=f=>l.endAssistant())},{default:s(()=>[...e[5]||(e[5]=[c(" Assistent beenden ",-1)])]),_:1})]))])]),default:s(()=>[n("div",N,[n("div",S,[_(u.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",T,[_(u.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; diff --git a/web/settings/assets/IoConfiguration-cTbf922R.js b/web/settings/assets/IoConfiguration-vfX10CsO.js similarity index 92% rename from web/settings/assets/IoConfiguration-cTbf922R.js rename to web/settings/assets/IoConfiguration-vfX10CsO.js index 33c7fb5bb1..9003179d13 100644 --- a/web/settings/assets/IoConfiguration-cTbf922R.js +++ b/web/settings/assets/IoConfiguration-vfX10CsO.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/io_device-Bu2TTklo.js","assets/index-BBXHIMfY.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-DD1DIYBi.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/io_device-CSfBx0gv.js","assets/io_device-CMcMfpQL.js","assets/io_action-CP47oj7W.js","assets/OpenwbIoSinglePattern-B9zMWKVu.js","assets/io_action-BIaRo3Nw.js","assets/io_action-CCDa41WP.js","assets/OpenwbIoPattern-DH-SthiO.js","assets/OpenwbIoPattern-01UVkHjE.css","assets/io_action-BcRa5w4h.js"])))=>i.map(i=>d[i]); -import{F as q,l as L,aj as U}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as h,C as j}from"./index-BBXHIMfY.js";import{_ as E}from"./dynamic-import-helper-BheWnx7M.js";import{_ as I,l as d,k as o,e as c,y as f,q as i,A as r,J as p,m as a,x as v,a1 as T,K as C,L as B,u as D,a2 as M}from"./vendor-JxinjXxC.js";const z={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})},sendSystemCommand(t,e){this.$emit("sendCommand",{command:t,data:e})}}},F=I(z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),$={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},R={class:"io-device-config-fallback"},N={key:1};function G(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",R,[Object.keys(t.ioDevice.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Das I/O-Modul "'+p(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",N,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+p(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=I($,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),Q={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),T({loader:()=>E(Object.assign({"./add_on/io_device.vue":()=>h(()=>import("./io_device-Bu2TTklo.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./dimm_kit/io_device.vue":()=>h(()=>import("./io_device-CSfBx0gv.js"),__vite__mapDeps([11,2,3,4,1,5,6,7,8,9,10])),"./eebus/io_device.vue":()=>h(()=>import("./io_device-CMcMfpQL.js"),__vite__mapDeps([12,2,3,4,1,5,6,7,8,9,10]))}),`./${this.ioDevice.type}/io_device.vue`,3),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function H(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-copy-to-clipboard"),b=d("openwb-base-alert");return o(),c("div",null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Modul "'+p(l.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(o(),f(b,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=r(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),v("ul",null,[(o(!0),c(C,null,B(n.outputs,_=>(o(),c("li",{key:_},[a(y,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[r(p(_),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=r(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=v("br",null,null,-1)),e[5]||(e[5]=r(" Beispiel: ",-1)),e[6]||(e[6]=v("span",{class:"text-info"},"false",-1))]),_:1})):D("",!0),a(b,{subtype:"warning"},{default:i(()=>[e[7]||(e[7]=r(" Ist die ",-1)),e[8]||(e[8]=v("strong",null,"Benutzerverwaltung",-1)),e[9]||(e[9]=r(" aktiviert und sollen die Ausgänge über MQTT gesteuert werden, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),v("strong",null,`"Daten: Ein-/Ausgangs Gerät '`+p(l.ioDevice.name)+"' ("+p(l.ioDevice.id)+') MQTT-Input"',1),e[10]||(e[10]=r(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),(o(),f(M(n.myComponent),{"io-device":l.ioDevice,"onUpdate:configuration":e[0]||(e[0]=_=>n.updateConfiguration(_)),onSendCommand:e[1]||(e[1]=_=>n.sendCommand(_))},null,40,["io-device"]))])}const X=I(Q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[j],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=I(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function ne(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",ee,[Object.keys(t.ioAction?.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Die I/O-Aktion "'+p(t.ioAction?.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",te,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+p(t.ioAction?.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioAction?.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioAction?.configuration,void 0,2)),1)]),_:1})]))])}const oe=I(K,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io action: ${this.ioAction?.group} / ${this.ioAction?.type}`),T({loader:()=>E(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>h(()=>import("./io_action-CP47oj7W.js"),__vite__mapDeps([13,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>h(()=>import("./io_action-BIaRo3Nw.js"),__vite__mapDeps([15,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>h(()=>import("./io_action-CCDa41WP.js"),__vite__mapDeps([16,17,4,2,3,18,1,5,6,7,8,9,10])),"./generator_systems/stepwise_control/io_action.vue":()=>h(()=>import("./io_action-BcRa5w4h.js"),__vite__mapDeps([19,17,4,2,3,18,1,5,6,7,8,9,10]))}),`./${this.ioAction?.group}/${this.ioAction?.type}/io_action.vue`,4),errorComponent:oe})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>({value:this.ioDevices[t]?.id,text:this.ioDevices[t]?.name}))},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t?.id,text:t?.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t?.id,text:t?.name,type:t?.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray(this.ioAction.configuration?.input_pattern)){let e=this.ioAction.configuration.input_pattern.map(l=>({value:l.value,matrix:{}}));this.updateConfiguration(e,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-select-input");return o(),c(C,null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Aktion "'+p(l.ioAction?.name)+'" ',1)]),_:1}),a(y,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":l.ioAction?.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateIoDevice(b))},{help:i(()=>[...e[2]||(e[2]=[r(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])]),_:1},8,["options","model-value"]),l.ioAction?.configuration.io_device!==null?(o(),c("div",ae,[e[3]||(e[3]=v("hr",null,null,-1)),(o(),f(M(n.myComponent),{"io-action":l.ioAction,"io-device":l.ioDevices[`openWB/system/io/${l.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=b=>n.updateConfiguration(b))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):D("",!0)],64)}const re=I(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);L.add(U);const le={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:q,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[j],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!0},{topic:"openWB/system/configurable/io_actions",writeable:!1},{topic:"openWB/system/configurable/io_devices",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!0}],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){let t=this.$store.state.mqtt["openWB/system/configurable/io_devices"];return this.$store.state.mqtt["openWB/general/extern"]===!0?t?.filter(e=>e.value=="add_on"):t}},installedIoDevices(){const t=this.getWildcardTopics("openWB/system/io/+/config");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(l=>({value:[t,l.value],text:l.text})).sort((l,A)=>l.text.localeCompare(A.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.sendSystemCommand("addIoDevice",{type:this.ioDeviceToAdd})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoDevice",{id:t})},addIoAction(){this.sendSystemCommand("addIoAction",{type:this.ioActionToAdd})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoAction",{id:t})},sendSystemCommand(t,e){this.$emit("send-command",{command:t,data:e})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},de={class:"ioConfig"},ue={name:"ioConfigForm"},ce={key:0},pe={key:1},me={key:0};function ge(t,e,l,A,u,n){const m=d("openwb-base-modal-dialog"),y=d("font-awesome-icon"),b=d("openwb-base-avatar"),_=d("openwb-base-text-input"),P=d("openwb-io-device-proxy"),k=d("openwb-base-card"),x=d("openwb-base-select-input"),W=d("openwb-base-alert"),S=d("openwb-io-action-proxy"),V=d("openwb-base-submit-buttons");return o(),c(C,null,[a(m,{show:u.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeIoDevice(u.modalIoDeviceIndex,s))},{default:i(()=>[r(' Willst Du das Ein-/Ausgangs-Gerät "'+p(n.getIoDeviceName(u.modalIoDeviceIndex))+'" (ID: '+p(u.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(m,{show:u.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeIoAction(u.modalIoActionIndex,s))},{default:i(()=>[r(' Willst Du die Aktion "'+p(n.getIoDeviceName(u.modalIoActionIndex))+'" (ID: '+p(u.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),v("div",de,[v("form",ue,[a(k,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(o(!0),c(C,null,B(n.installedIoDevices,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoDeviceModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[w].type},null,8,["model-value"]),e[8]||(e[8]=v("hr",null,null,-1)),a(P,{"io-device":s,"onUpdate:configuration":g=>n.updateConfiguration(w,g),onSendCommand:e[2]||(e[2]=g=>n.sendSystemCommand(g.command,g.data))},null,8,["io-device","onUpdate:configuration"])]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(o(),c("hr",ce)):D("",!0),a(x,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":u.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=s=>u.ioDeviceToAdd=s),"onInput:add":n.addIoDevice},{help:i(()=>[...e[9]||(e[9]=[r(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1}),a(k,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),f(W,{key:0,subtype:"info"},{default:i(()=>[...e[10]||(e[10]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(o(),c("div",pe,[(o(!0),c(C,null,B(n.installedIoActions,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoActionModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[s?.group,s?.type].join(" / ")},null,8,["model-value"]),e[11]||(e[11]=v("hr",null,null,-1)),s!==void 0?(o(),f(S,{key:0,"io-action":s,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":g=>n.updateConfiguration(w,g)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):D("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(o(),c("hr",me)):D("",!0),Object.keys(n.installedIoDevices).length>0?(o(),f(x,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":u.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[4]||(e[4]=s=>u.ioActionToAdd=s),"onInput:add":n.addIoAction},{help:i(()=>[...e[12]||(e[12]=[r(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])]),_:1},8,["groups","model-value","onInput:add"])):(o(),f(W,{key:2,subtype:"warning"},{default:i(()=>[...e[13]||(e[13]=[r(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),v("br",null,null,-1),r(" Bitte füge zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Du Aktionen konfigurierst. ",-1)])]),_:1}))]))]),_:1}),a(V,{"form-name":"ioConfigForm",onSave:e[5]||(e[5]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[6]||(e[6]=s=>t.$emit("reset")),onDefaults:e[7]||(e[7]=s=>t.$emit("defaults"))})])])],64)}const be=I(le,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfiguration.vue"]]),we=Object.freeze(Object.defineProperty({__proto__:null,default:be},Symbol.toStringTag,{value:"Module"}));export{be as I,F as O,Z as a,we as b}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/io_device-1ouhD8vS.js","assets/index-CyH1Au4V.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/io_device-BFTcDSy5.js","assets/io_device-B-Ykhm08.js","assets/io_action-BlGNVQOy.js","assets/OpenwbIoSinglePattern-C4hsIwwW.js","assets/io_action-XIjORj2n.js","assets/io_action-CcAuqDqD.js","assets/OpenwbIoPattern-DAvfzRSb.js","assets/OpenwbIoPattern-01UVkHjE.css","assets/io_action-CNib3IIZ.js"])))=>i.map(i=>d[i]); +import{F as q,l as L,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,C as j}from"./index-CyH1Au4V.js";import{_ as E}from"./dynamic-import-helper-BheWnx7M.js";import{_ as I,l as d,k as o,e as c,y as f,q as i,A as r,J as p,m as a,x as v,a1 as T,K as C,L as B,u as D,a2 as M}from"./vendor-Bo8v-nQD.js";const z={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})},sendSystemCommand(t,e){this.$emit("sendCommand",{command:t,data:e})}}},F=I(z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),$={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},R={class:"io-device-config-fallback"},N={key:1};function G(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",R,[Object.keys(t.ioDevice.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Das I/O-Modul "'+p(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",N,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+p(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=I($,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),Q={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),T({loader:()=>E(Object.assign({"./add_on/io_device.vue":()=>h(()=>import("./io_device-1ouhD8vS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./dimm_kit/io_device.vue":()=>h(()=>import("./io_device-BFTcDSy5.js"),__vite__mapDeps([11,2,3,4,1,5,6,7,8,9,10])),"./eebus/io_device.vue":()=>h(()=>import("./io_device-B-Ykhm08.js"),__vite__mapDeps([12,2,3,4,1,5,6,7,8,9,10]))}),`./${this.ioDevice.type}/io_device.vue`,3),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function H(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-copy-to-clipboard"),b=d("openwb-base-alert");return o(),c("div",null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Modul "'+p(l.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(o(),f(b,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=r(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),v("ul",null,[(o(!0),c(C,null,B(n.outputs,_=>(o(),c("li",{key:_},[a(y,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[r(p(_),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=r(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=v("br",null,null,-1)),e[5]||(e[5]=r(" Beispiel: ",-1)),e[6]||(e[6]=v("span",{class:"text-info"},"false",-1))]),_:1})):D("",!0),a(b,{subtype:"warning"},{default:i(()=>[e[7]||(e[7]=r(" Ist die ",-1)),e[8]||(e[8]=v("strong",null,"Benutzerverwaltung",-1)),e[9]||(e[9]=r(" aktiviert und sollen die Ausgänge über MQTT gesteuert werden, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),v("strong",null,`"Daten: Ein-/Ausgangs Gerät '`+p(l.ioDevice.name)+"' ("+p(l.ioDevice.id)+') MQTT-Input"',1),e[10]||(e[10]=r(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),(o(),f(M(n.myComponent),{"io-device":l.ioDevice,"onUpdate:configuration":e[0]||(e[0]=_=>n.updateConfiguration(_)),onSendCommand:e[1]||(e[1]=_=>n.sendCommand(_))},null,40,["io-device"]))])}const X=I(Q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[j],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=I(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function ne(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",ee,[Object.keys(t.ioAction?.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Die I/O-Aktion "'+p(t.ioAction?.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",te,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+p(t.ioAction?.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioAction?.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioAction?.configuration,void 0,2)),1)]),_:1})]))])}const oe=I(K,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io action: ${this.ioAction?.group} / ${this.ioAction?.type}`),T({loader:()=>E(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>h(()=>import("./io_action-BlGNVQOy.js"),__vite__mapDeps([13,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>h(()=>import("./io_action-XIjORj2n.js"),__vite__mapDeps([15,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>h(()=>import("./io_action-CcAuqDqD.js"),__vite__mapDeps([16,17,4,2,3,18,1,5,6,7,8,9,10])),"./generator_systems/stepwise_control/io_action.vue":()=>h(()=>import("./io_action-CNib3IIZ.js"),__vite__mapDeps([19,17,4,2,3,18,1,5,6,7,8,9,10]))}),`./${this.ioAction?.group}/${this.ioAction?.type}/io_action.vue`,4),errorComponent:oe})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>({value:this.ioDevices[t]?.id,text:this.ioDevices[t]?.name}))},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t?.id,text:t?.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t?.id,text:t?.name,type:t?.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray(this.ioAction.configuration?.input_pattern)){let e=this.ioAction.configuration.input_pattern.map(l=>({value:l.value,matrix:{}}));this.updateConfiguration(e,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-select-input");return o(),c(C,null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Aktion "'+p(l.ioAction?.name)+'" ',1)]),_:1}),a(y,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":l.ioAction?.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateIoDevice(b))},{help:i(()=>[...e[2]||(e[2]=[r(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])]),_:1},8,["options","model-value"]),l.ioAction?.configuration.io_device!==null?(o(),c("div",ae,[e[3]||(e[3]=v("hr",null,null,-1)),(o(),f(M(n.myComponent),{"io-action":l.ioAction,"io-device":l.ioDevices[`openWB/system/io/${l.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=b=>n.updateConfiguration(b))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):D("",!0)],64)}const re=I(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);L.add(U);const le={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:q,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[j],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!0},{topic:"openWB/system/configurable/io_actions",writeable:!1},{topic:"openWB/system/configurable/io_devices",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!0}],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){let t=this.$store.state.mqtt["openWB/system/configurable/io_devices"];return this.$store.state.mqtt["openWB/general/extern"]===!0?t?.filter(e=>e.value=="add_on"):t}},installedIoDevices(){const t=this.getWildcardTopics("openWB/system/io/+/config");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(l=>({value:[t,l.value],text:l.text})).sort((l,A)=>l.text.localeCompare(A.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.sendSystemCommand("addIoDevice",{type:this.ioDeviceToAdd})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoDevice",{id:t})},addIoAction(){this.sendSystemCommand("addIoAction",{type:this.ioActionToAdd})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoAction",{id:t})},sendSystemCommand(t,e){this.$emit("send-command",{command:t,data:e})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},de={class:"ioConfig"},ue={name:"ioConfigForm"},ce={key:0},pe={key:1},me={key:0};function ge(t,e,l,A,u,n){const m=d("openwb-base-modal-dialog"),y=d("font-awesome-icon"),b=d("openwb-base-avatar"),_=d("openwb-base-text-input"),P=d("openwb-io-device-proxy"),k=d("openwb-base-card"),x=d("openwb-base-select-input"),W=d("openwb-base-alert"),S=d("openwb-io-action-proxy"),V=d("openwb-base-submit-buttons");return o(),c(C,null,[a(m,{show:u.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeIoDevice(u.modalIoDeviceIndex,s))},{default:i(()=>[r(' Willst Du das Ein-/Ausgangs-Gerät "'+p(n.getIoDeviceName(u.modalIoDeviceIndex))+'" (ID: '+p(u.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(m,{show:u.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeIoAction(u.modalIoActionIndex,s))},{default:i(()=>[r(' Willst Du die Aktion "'+p(n.getIoDeviceName(u.modalIoActionIndex))+'" (ID: '+p(u.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),v("div",de,[v("form",ue,[a(k,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(o(!0),c(C,null,B(n.installedIoDevices,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoDeviceModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[w].type},null,8,["model-value"]),e[8]||(e[8]=v("hr",null,null,-1)),a(P,{"io-device":s,"onUpdate:configuration":g=>n.updateConfiguration(w,g),onSendCommand:e[2]||(e[2]=g=>n.sendSystemCommand(g.command,g.data))},null,8,["io-device","onUpdate:configuration"])]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(o(),c("hr",ce)):D("",!0),a(x,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":u.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=s=>u.ioDeviceToAdd=s),"onInput:add":n.addIoDevice},{help:i(()=>[...e[9]||(e[9]=[r(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1}),a(k,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),f(W,{key:0,subtype:"info"},{default:i(()=>[...e[10]||(e[10]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(o(),c("div",pe,[(o(!0),c(C,null,B(n.installedIoActions,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoActionModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[s?.group,s?.type].join(" / ")},null,8,["model-value"]),e[11]||(e[11]=v("hr",null,null,-1)),s!==void 0?(o(),f(S,{key:0,"io-action":s,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":g=>n.updateConfiguration(w,g)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):D("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(o(),c("hr",me)):D("",!0),Object.keys(n.installedIoDevices).length>0?(o(),f(x,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":u.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[4]||(e[4]=s=>u.ioActionToAdd=s),"onInput:add":n.addIoAction},{help:i(()=>[...e[12]||(e[12]=[r(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])]),_:1},8,["groups","model-value","onInput:add"])):(o(),f(W,{key:2,subtype:"warning"},{default:i(()=>[...e[13]||(e[13]=[r(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),v("br",null,null,-1),r(" Bitte füge zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Du Aktionen konfigurierst. ",-1)])]),_:1}))]))]),_:1}),a(V,{"form-name":"ioConfigForm",onSave:e[5]||(e[5]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[6]||(e[6]=s=>t.$emit("reset")),onDefaults:e[7]||(e[7]=s=>t.$emit("defaults"))})])])],64)}const be=I(le,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfiguration.vue"]]),we=Object.freeze(Object.defineProperty({__proto__:null,default:be},Symbol.toStringTag,{value:"Module"}));export{be as I,F as O,Z as a,we as b}; diff --git a/web/settings/assets/LegalSettings-g7-88rjM.js b/web/settings/assets/LegalSettings-DO80lenG.js similarity index 92% rename from web/settings/assets/LegalSettings-g7-88rjM.js rename to web/settings/assets/LegalSettings-DO80lenG.js index cd02695ae4..42bfeb4a47 100644 --- a/web/settings/assets/LegalSettings-g7-88rjM.js +++ b/web/settings/assets/LegalSettings-DO80lenG.js @@ -1 +1 @@ -import{F as k,l as y,an as v}from"./vendor-fortawesome-DD1DIYBi.js";import{C as B}from"./index-BBXHIMfY.js";import{_ as $,l as n,k as u,e as W,x as o,m as s,q as a,y as g,A as d,u as b}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";y.add(v);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:k},mixins:[B],emits:["sendCommand","save"],data(){return{mqttTopics:[{topic:"openWB/system/dataprotection_acknowledged",writeable:!0},{topic:"openWB/system/usage_terms_acknowledged",writeable:!0}]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},async onSaveLegal(){this.$emit("save",this.mqttTopicsToPublish),await new Promise(e=>{const i=this.$watch(()=>this.$store.state.local.savingData,r=>{r===!1&&(i(),e())})}),this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]||await new Promise(e=>{const i=this.$watch(()=>this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],r=>{r&&(i(),e())})}),await this.$store.getters.installAssistantDone||this.$router.push({name:"InstallAssistant"})}}},z={class:"dataProtection"},A={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function D(t,e,i,r,q,m){const p=n("openwb-base-button-group-input"),w=n("font-awesome-icon"),_=n("openwb-base-click-button"),c=n("openwb-base-alert"),f=n("openwb-base-submit-buttons"),h=n("openwb-base-card");return u(),W("div",z,[o("form",A,[s(h,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[s(f,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:m.onSaveLegal},null,8,["onSave"])]),default:a(()=>[e[6]||(e[6]=o("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[7]||(e[7]=o("hr",null,null,-1)),s(p,{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]=l=>t.updateState("openWB/system/usage_terms_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?b("",!0):(u(),g(c,{key:0,subtype:"danger",class:"mb-1"},{default:a(()=>[e[4]||(e[4]=d(" Du musst die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),o("div",C,[o("div",V,[s(_,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=l=>m.sendSystemCommand("systemShutdown"))},{default:a(()=>[e[3]||(e[3]=d(" Nicht akzeptieren und ausschalten ",-1)),s(w,{icon:["fas","power-off"]})]),_:1})])])]),_:1})),s(p,{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]=l=>t.updateState("openWB/system/dataprotection_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?b("",!0):(u(),g(c,{key:1,subtype:"warning"},{default:a(()=>[...e[5]||(e[5]=[d(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])]),_:1}))]),_:1})])])}const j=$(S,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{j as default}; +import{F as k,l as y,an as v}from"./vendor-fortawesome-CBc-2W7w.js";import{C as B}from"./index-CyH1Au4V.js";import{_ as $,l as n,k as u,e as W,x as o,m as s,q as a,y as g,A as d,u as b}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";y.add(v);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:k},mixins:[B],emits:["sendCommand","save"],data(){return{mqttTopics:[{topic:"openWB/system/dataprotection_acknowledged",writeable:!0},{topic:"openWB/system/usage_terms_acknowledged",writeable:!0}]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},async onSaveLegal(){this.$emit("save",this.mqttTopicsToPublish),await new Promise(e=>{const i=this.$watch(()=>this.$store.state.local.savingData,r=>{r===!1&&(i(),e())})}),this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]||await new Promise(e=>{const i=this.$watch(()=>this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],r=>{r&&(i(),e())})}),await this.$store.getters.installAssistantDone||this.$router.push({name:"InstallAssistant"})}}},z={class:"dataProtection"},A={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function D(t,e,i,r,q,m){const p=n("openwb-base-button-group-input"),w=n("font-awesome-icon"),_=n("openwb-base-click-button"),c=n("openwb-base-alert"),f=n("openwb-base-submit-buttons"),h=n("openwb-base-card");return u(),W("div",z,[o("form",A,[s(h,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[s(f,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:m.onSaveLegal},null,8,["onSave"])]),default:a(()=>[e[6]||(e[6]=o("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[7]||(e[7]=o("hr",null,null,-1)),s(p,{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]=l=>t.updateState("openWB/system/usage_terms_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?b("",!0):(u(),g(c,{key:0,subtype:"danger",class:"mb-1"},{default:a(()=>[e[4]||(e[4]=d(" Du musst die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),o("div",C,[o("div",V,[s(_,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=l=>m.sendSystemCommand("systemShutdown"))},{default:a(()=>[e[3]||(e[3]=d(" Nicht akzeptieren und ausschalten ",-1)),s(w,{icon:["fas","power-off"]})]),_:1})])])]),_:1})),s(p,{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]=l=>t.updateState("openWB/system/dataprotection_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?b("",!0):(u(),g(c,{key:1,subtype:"warning"},{default:a(()=>[...e[5]||(e[5]=[d(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])]),_:1}))]),_:1})])])}const j=$(S,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{j as default}; diff --git a/web/settings/assets/LoadManagementConfiguration-BH64OBxz.js b/web/settings/assets/LoadManagementConfiguration-DVcGfr2E.js similarity index 97% rename from web/settings/assets/LoadManagementConfiguration-BH64OBxz.js rename to web/settings/assets/LoadManagementConfiguration-DVcGfr2E.js index 62319622d5..8d500d2ce1 100644 --- a/web/settings/assets/LoadManagementConfiguration-BH64OBxz.js +++ b/web/settings/assets/LoadManagementConfiguration-DVcGfr2E.js @@ -1 +1 @@ -import{F as L,l as V,a3 as x,a2 as q}from"./vendor-fortawesome-DD1DIYBi.js";import{C as Z}from"./index-BBXHIMfY.js";import{S as $}from"./OpenwbSortableList-BnacrijU.js";import{_ as A,l as u,k as l,e as m,x as d,m as o,q as r,A as i,y as f,u as M,K as v,L as W,J as _}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";V.add(x,q);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:$,FontAwesomeIcon:L},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/config/max_power",writeable:!0},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/counter/+/config/max_currents",writeable:!0},{topic:"openWB/counter/+/config/max_power_errorcase",writeable:!0},{topic:"openWB/counter/+/config/max_total_power",writeable:!0},{topic:"openWB/counter/config/consider_less_charging",writeable:!0},{topic:"openWB/counter/config/home_consumption_source_id",writeable:!0},{topic:"openWB/counter/get/hierarchy",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/pv/+/config/max_ac_out",writeable:!0},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},componentConfigs:{get(){return t=>{let e=this.componentConfigurations;return Object.keys(e).filter(s=>e[s]?.type.includes(t)).reduce((s,b)=>({...s,[b]:e[b]}),{})}}},counterConfigs:{get(){return this.componentConfigs("counter")}},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.sort((e,s)=>e.text==s.text?0:e.text>s.text?1:-1)},inverterConfigs:{get(){return this.componentConfigs("inverter")}},batConfigs:{get(){return this.componentConfigs("bat")}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let s=this.getChargePoint(t.id);s&&(e[t.id]=s.name)}else{let s=this.getComponent(t.id);s&&(e[t.id]=s.name)}return t.children.forEach(s=>{e={...e,...this.getElementTreeNames(s)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},isComponentType(t,e){return t?.split("_").includes(e)}}},U={class:"loadManagementConfig"},D={name:"loadManagementConfigForm"},F={key:0},P={key:1},O={key:0},H={key:1};function N(t,e,s,b,T,g){const h=u("openwb-base-alert"),B=u("router-link"),S=u("openwb-base-button-group-input"),z=u("openwb-base-select-input"),w=u("openwb-base-heading"),k=u("font-awesome-icon"),p=u("openwb-base-number-input"),c=u("openwb-base-card"),y=u("sortable-list"),C=u("openwb-base-submit-buttons");return l(),m("div",U,[d("form",D,[o(c,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",F,[o(h,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",P,[s.installAssistantActive?M("",!0):(l(),f(h,{key:0,subtype:"info"},{default:r(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),o(B,{to:"/IoConfiguration"},{default:r(()=>[...e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])]),_:1}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1})),o(S,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/counter/config/consider_less_charging",n))},{help:r(()=>[...e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])]),_:1},8,["model-value"]),o(z,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateState("openWB/counter/config/home_consumption_source_id",n))},{help:r(()=>[...e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])]),_:1},8,["options","groups","model-value"]),o(w,null,{default:r(()=>[...e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])]),_:1}),o(h,{subtype:"info"},{default:r(()=>[...e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Üblicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])]),_:1}),(l(!0),m(v,null,W(g.counterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:r(()=>[o(k,{icon:["fas","gauge-high"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:r(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:r(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:r(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:r(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_power_errorcase",a*1e3)},{help:r(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.inverterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:r(()=>[o(k,{icon:["fas","solar-panel"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:r(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[21]||(e[21]=[i(" Vorhandene Speichermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.batConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[o(k,{icon:["fas","car-battery"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung des Speichers",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/config/max_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/bat/"+n.id+"/config/max_power",a*1e3)},{help:r(()=>[...e[22]||(e[22]=[i(" Die maximale Leistung wird lediglich für eine Plausibilitätsprüfung der Speicherwerte genutzt. Bei 0kW erfolgt keine Prüfung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),o(c,{title:"Struktur",collapsible:!0,collapsed:!0},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",O,[o(h,{subtype:"info"},{default:r(()=>[...e[23]||(e[23]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",H,[o(y,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateState("openWB/counter/get/hierarchy",n))},{help:r(()=>[...e[24]||(e[24]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])]),_:1},8,["model-value","labels"])]))]),_:1}),o(C,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[4]||(e[4]=n=>t.$emit("reset")),onDefaults:e[5]||(e[5]=n=>t.$emit("defaults"))})])])}const X=A(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfiguration.vue"]]);export{X as default}; +import{F as L,l as V,a3 as x,a2 as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as Z}from"./index-CyH1Au4V.js";import{S as $}from"./OpenwbSortableList-BORHS8nd.js";import{_ as A,l as u,k as l,e as m,x as d,m as o,q as r,A as i,y as f,u as M,K as v,L as W,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";V.add(x,q);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:$,FontAwesomeIcon:L},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/config/max_power",writeable:!0},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/counter/+/config/max_currents",writeable:!0},{topic:"openWB/counter/+/config/max_power_errorcase",writeable:!0},{topic:"openWB/counter/+/config/max_total_power",writeable:!0},{topic:"openWB/counter/config/consider_less_charging",writeable:!0},{topic:"openWB/counter/config/home_consumption_source_id",writeable:!0},{topic:"openWB/counter/get/hierarchy",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/pv/+/config/max_ac_out",writeable:!0},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},componentConfigs:{get(){return t=>{let e=this.componentConfigurations;return Object.keys(e).filter(s=>e[s]?.type.includes(t)).reduce((s,b)=>({...s,[b]:e[b]}),{})}}},counterConfigs:{get(){return this.componentConfigs("counter")}},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.sort((e,s)=>e.text==s.text?0:e.text>s.text?1:-1)},inverterConfigs:{get(){return this.componentConfigs("inverter")}},batConfigs:{get(){return this.componentConfigs("bat")}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let s=this.getChargePoint(t.id);s&&(e[t.id]=s.name)}else{let s=this.getComponent(t.id);s&&(e[t.id]=s.name)}return t.children.forEach(s=>{e={...e,...this.getElementTreeNames(s)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},isComponentType(t,e){return t?.split("_").includes(e)}}},U={class:"loadManagementConfig"},D={name:"loadManagementConfigForm"},F={key:0},P={key:1},O={key:0},H={key:1};function N(t,e,s,b,T,g){const h=u("openwb-base-alert"),B=u("router-link"),S=u("openwb-base-button-group-input"),z=u("openwb-base-select-input"),w=u("openwb-base-heading"),k=u("font-awesome-icon"),p=u("openwb-base-number-input"),c=u("openwb-base-card"),y=u("sortable-list"),C=u("openwb-base-submit-buttons");return l(),m("div",U,[d("form",D,[o(c,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",F,[o(h,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",P,[s.installAssistantActive?M("",!0):(l(),f(h,{key:0,subtype:"info"},{default:r(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),o(B,{to:"/IoConfiguration"},{default:r(()=>[...e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])]),_:1}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1})),o(S,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/counter/config/consider_less_charging",n))},{help:r(()=>[...e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])]),_:1},8,["model-value"]),o(z,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateState("openWB/counter/config/home_consumption_source_id",n))},{help:r(()=>[...e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])]),_:1},8,["options","groups","model-value"]),o(w,null,{default:r(()=>[...e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])]),_:1}),o(h,{subtype:"info"},{default:r(()=>[...e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Üblicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])]),_:1}),(l(!0),m(v,null,W(g.counterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:r(()=>[o(k,{icon:["fas","gauge-high"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:r(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:r(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:r(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:r(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_power_errorcase",a*1e3)},{help:r(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.inverterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:r(()=>[o(k,{icon:["fas","solar-panel"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:r(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[21]||(e[21]=[i(" Vorhandene Speichermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.batConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[o(k,{icon:["fas","car-battery"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung des Speichers",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/config/max_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/bat/"+n.id+"/config/max_power",a*1e3)},{help:r(()=>[...e[22]||(e[22]=[i(" Die maximale Leistung wird lediglich für eine Plausibilitätsprüfung der Speicherwerte genutzt. Bei 0kW erfolgt keine Prüfung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),o(c,{title:"Struktur",collapsible:!0,collapsed:!0},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",O,[o(h,{subtype:"info"},{default:r(()=>[...e[23]||(e[23]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",H,[o(y,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateState("openWB/counter/get/hierarchy",n))},{help:r(()=>[...e[24]||(e[24]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])]),_:1},8,["model-value","labels"])]))]),_:1}),o(C,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[4]||(e[4]=n=>t.$emit("reset")),onDefaults:e[5]||(e[5]=n=>t.$emit("defaults"))})])])}const X=A(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfiguration.vue"]]);export{X as default}; diff --git a/web/settings/assets/MqttBridgeConfiguration-DM8X-gxb.js b/web/settings/assets/MqttBridgeConfiguration-hMk_UUpV.js similarity index 97% rename from web/settings/assets/MqttBridgeConfiguration-DM8X-gxb.js rename to web/settings/assets/MqttBridgeConfiguration-hMk_UUpV.js index 88da38bcea..8c7e14be58 100644 --- a/web/settings/assets/MqttBridgeConfiguration-DM8X-gxb.js +++ b/web/settings/assets/MqttBridgeConfiguration-hMk_UUpV.js @@ -1 +1 @@ -import{F as z,l as D,d as A,aj as C}from"./vendor-fortawesome-DD1DIYBi.js";import{C as W}from"./index-BBXHIMfY.js";import{_ as q,l as u,k as m,e as b,m as a,q as o,A as s,J as L,x as g,y as _,u as B,K as T,L as Q}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";D.add(A,C);const Z={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:z},mixins:[W],emits:["sendCommand","save","reset"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0}],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){const t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");if(!t||typeof t!="object")return{};const e={...t};for(const[v,h]of Object.entries(e))h?.remote?.is_openwb_cloud&&delete e[v];return e}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},y={class:"mqttBridgeConfiguration"},E={key:0},I={key:1},N=["name"];function P(t,e,v,h,f,i){const S=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),w=u("font-awesome-icon"),k=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),U=u("openwb-base-number-input"),x=u("openwb-base-submit-buttons"),M=u("openwb-base-card");return m(),b(T,null,[a(S,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Willst Du die MQTT-Brücke "'+L(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",y,[a(c,{subtype:"danger"},{default:o(()=>[...e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])]),_:1}),a(M,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),_(k,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(w,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",E,[a(c,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),_(c,{key:0,subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])]),_:1})):B("",!0),(m(!0),b(T,null,Q(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(M,{title:l?.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(k,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(w,{icon:["fas","trash"]})]),_:1},8,["onClick"])]),footer:o(()=>[a(x,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l?.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l?.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l?.remote?.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l?.remote?.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l?.remote?.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l?.remote?.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l?.remote?.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l?.remote?.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l?.remote?.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l?.remote?.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.remote?.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=q(Z,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfiguration.vue"]]);export{J as default}; +import{F as z,l as D,d as A,aj as C}from"./vendor-fortawesome-CBc-2W7w.js";import{C as W}from"./index-CyH1Au4V.js";import{_ as q,l as u,k as m,e as b,m as a,q as o,A as s,J as L,x as g,y as _,u as B,K as T,L as Q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";D.add(A,C);const Z={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:z},mixins:[W],emits:["sendCommand","save","reset"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0}],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){const t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");if(!t||typeof t!="object")return{};const e={...t};for(const[v,h]of Object.entries(e))h?.remote?.is_openwb_cloud&&delete e[v];return e}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},y={class:"mqttBridgeConfiguration"},E={key:0},I={key:1},N=["name"];function P(t,e,v,h,f,i){const S=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),w=u("font-awesome-icon"),k=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),U=u("openwb-base-number-input"),x=u("openwb-base-submit-buttons"),M=u("openwb-base-card");return m(),b(T,null,[a(S,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Willst Du die MQTT-Brücke "'+L(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",y,[a(c,{subtype:"danger"},{default:o(()=>[...e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])]),_:1}),a(M,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),_(k,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(w,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",E,[a(c,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),_(c,{key:0,subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])]),_:1})):B("",!0),(m(!0),b(T,null,Q(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(M,{title:l?.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(k,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(w,{icon:["fas","trash"]})]),_:1},8,["onClick"])]),footer:o(()=>[a(x,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l?.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l?.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l?.remote?.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l?.remote?.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l?.remote?.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l?.remote?.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l?.remote?.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l?.remote?.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l?.remote?.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l?.remote?.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.remote?.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=q(Z,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfiguration.vue"]]);export{J as default}; diff --git a/web/settings/assets/OpenwbIoPattern-DH-SthiO.js b/web/settings/assets/OpenwbIoPattern-DAvfzRSb.js similarity index 98% rename from web/settings/assets/OpenwbIoPattern-DH-SthiO.js rename to web/settings/assets/OpenwbIoPattern-DAvfzRSb.js index 0afb715f01..3b8181410d 100644 --- a/web/settings/assets/OpenwbIoPattern-DH-SthiO.js +++ b/web/settings/assets/OpenwbIoPattern-DAvfzRSb.js @@ -1 +1 @@ -import{F as M,l as D,n as E,o as C,p as y,q as A,aj as z,d as I,V as O,f as S,a as j}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as B,l as P,k as n,e as l,x as i,J as k,u as c,K as m,L as p,m as o,q as f,z as h,j as V,y as T,F as N,f as H,A as v}from"./vendor-JxinjXxC.js";D.add(E,C,y,A,z,I,O,S,j);const _={undefined:{value:void 0,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:void 0}},F={name:"IoActionContactPattern",components:{FontAwesomeIcon:M},inheritAttrs:!1,props:{contacts:{type:Object,required:!0},modelValue:{type:Array,required:!0},title:{type:String,required:!1,default:"Eingangsmuster"},actionTitle:{type:String,required:!1,default:"Verhalten"},enableAddDelete:{type:Boolean,default:!0},minPatterns:{type:Number,default:1},maxPatterns:{type:Number,default:10},showCheckPattern:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],data(){return{showTestPattern:!1,testPattern:{...this.contacts}}},computed:{value:{get(){return this.modelValue},set(s){this.$emit("update:modelValue",s)}},numContacts(){return Object.keys(this.contacts).length},addPatternDisabled(){return this.value.length>=this.maxPatterns},addPatternTooltip(){return this.addPatternDisabled?this.maxPatterns===1?"Es kann maximal ein Muster definiert werden":`Es können maximal ${this.maxPatterns} Muster definiert werden`:"Muster hinzufügen"},deletePatternDisabled(){return this.value.length<=this.minPatterns},deletePatternTooltip(){return this.deletePatternDisabled?this.minPatterns===1?"Es muss mindestens ein Muster definiert sein":`Es müssen mindestens ${this.minPatterns} Muster definiert sein`:"Muster löschen"}},watch:{contacts(){this.testPattern={...this.contacts}}},mounted(){for(;this.value.lengththis.testPattern[e]===void 0?!0:this.value[s].matrix[e]===this.testPattern[e])},deletePattern(s){delete this.value.splice(s,1)},addPattern(){this.value.push({matrix:{},value:null})}}},Q={class:"w-100 mb-2"},L=["span"],G=["colspan"],J={key:0,rowspan:"2",class:"contact-header"},U=["colspan"],W={key:0},R={key:0,class:"text-center"},X={key:1},Y={key:0},Z=["colspan"],K={key:1,class:"bg-info"},$=["colspan"];function ee(s,e,r,te,u,a){const g=P("font-awesome-icon"),x=P("openwb-base-click-button"),w=P("openwb-base-tooltip"),q=P("openwb-base-button-group-input");return n(),l(m,null,[i("table",Q,[i("colgroup",null,[i("col",{span:a.numContacts,class:"bg-white",style:{border:"1px solid #dee2e6"}},null,8,L)]),i("thead",null,[i("tr",null,[i("th",{colspan:a.numContacts},k(r.title),9,G),u.showTestPattern?(n(),l("th",J,[...e[6]||(e[6]=[i("div",null,"Prüfergebnis",-1)])])):c("",!0),i("th",{colspan:r.enableAddDelete?2:1},null,8,U)]),i("tr",null,[(n(!0),l(m,null,p(Object.keys(r.contacts),t=>(n(),l("th",{key:t,class:"contact-header"},[i("div",null,k(t),1)]))),128)),i("th",null,k(r.actionTitle),1),r.enableAddDelete?(n(),l("th",W,[o(x,{class:"bg-success text-white",tooltip:a.addPatternTooltip,disabled:a.addPatternDisabled,onClick:e[0]||(e[0]=t=>a.addPattern())},{default:f(()=>[o(g,{icon:["fas","plus"]})]),_:1},8,["tooltip","disabled"])])):c("",!0)])]),i("tbody",null,[(n(!0),l(m,null,p(a.value,(t,b)=>(n(),l("tr",{key:b},[(n(!0),l(m,null,p(Object.keys(r.contacts),d=>(n(),l("td",{key:d,class:"text-center"},[o(w,{description:a.getTitle(t.matrix[d])},{default:f(()=>[o(g,{icon:a.getIcon(t.matrix[d]),class:V([a.getIconClass(t.matrix[d]),"fa-fw clickable"]),size:"2x",transform:t.matrix[d]==null?"shrink-6":null,mask:t.matrix[d]==null?["fas","square"]:null,onClick:h(se=>a.toggleContact(b,d),["stop","prevent"]),onMousedown:e[1]||(e[1]=h(()=>{},["stop","prevent"])),onMouseup:e[2]||(e[2]=h(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128)),u.showTestPattern?(n(),l("td",R,[a.patternMatch(b)?(n(),T(w,{key:0,description:"Muster passt"},{default:f(()=>[o(g,{icon:["fas","check-circle"],class:"text-success fa-fw"})]),_:1})):c("",!0)])):c("",!0),i("td",N({ref_for:!0},s.$attrs),[H(s.$slots,"default",{pattern:t},()=>[v(k(t.value),1)],!0)],16),r.enableAddDelete?(n(),l("td",X,[o(x,{class:"bg-danger text-white",tooltip:a.deletePatternTooltip,disabled:a.deletePatternDisabled,onClick:d=>a.deletePattern(b)},{default:f(()=>[o(g,{icon:["fas","trash"]})]),_:1},8,["tooltip","disabled","onClick"])])):c("",!0)]))),128)),u.showTestPattern?(n(),l("tr",Y,[(n(!0),l(m,null,p(Object.keys(r.contacts),t=>(n(),l("td",{key:t,class:"pt-4"},"   "))),128)),i("td",{colspan:r.enableAddDelete?3:2},null,8,Z)])):c("",!0),u.showTestPattern?(n(),l("tr",K,[(n(!0),l(m,null,p(Object.keys(r.contacts),t=>(n(),l("td",{key:t,class:"text-center text-body"},[o(w,{description:a.getTitle(u.testPattern[t])},{default:f(()=>[o(g,{icon:a.getIcon(u.testPattern[t]),class:V([a.getIconClass(u.testPattern[t]),"fa-fw clickable"]),size:"2x",transform:u.testPattern[t]==null?"shrink-6":null,mask:u.testPattern[t]==null?["fas","square"]:null,onClick:h(b=>a.toggleTestPattern(t),["stop","prevent"]),onMousedown:e[3]||(e[3]=h(()=>{},["stop","prevent"])),onMouseup:e[4]||(e[4]=h(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128)),i("td",{class:"pl-2",colspan:r.enableAddDelete?3:2}," Simulierter Eingang ",8,$)])):c("",!0)])]),r.showCheckPattern?(n(),T(q,{key:0,modelValue:u.showTestPattern,"onUpdate:modelValue":e[5]||(e[5]=t=>u.showTestPattern=t),title:"Simulierter Eingang",buttons:[{buttonValue:!1,text:"Verbergen"},{buttonValue:!0,text:"Anzeigen"}]},{help:f(()=>[...e[7]||(e[7]=[v(' Der simulierte Eingang ist eine Hilfe um zu testen, ob die Eingangsmuster zum gewünschten Verhalten passen. Ein grüner Haken in der Spalte "Prüfergebnis" zeigt an, dass das Eingangsmuster zum simulierten Eingang passt. Eingangsmuster mit unterschiedlichem Verhalten dürfen nicht gleichzeitig passen, da sonst das Verhalten nicht eindeutig ist. ',-1)])]),_:1},8,["modelValue"])):c("",!0)],64)}const le=B(F,[["render",ee],["__scopeId","data-v-3624c649"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoPattern.vue"]]);export{le as O}; +import{F as M,l as D,n as E,o as C,p as y,q as A,aj as z,d as I,V as O,f as S,a as j}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,l as P,k as n,e as l,x as i,J as k,u as c,K as m,L as p,m as o,q as f,z as h,j as V,y as T,F as N,f as H,A as v}from"./vendor-Bo8v-nQD.js";D.add(E,C,y,A,z,I,O,S,j);const _={undefined:{value:void 0,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:void 0}},F={name:"IoActionContactPattern",components:{FontAwesomeIcon:M},inheritAttrs:!1,props:{contacts:{type:Object,required:!0},modelValue:{type:Array,required:!0},title:{type:String,required:!1,default:"Eingangsmuster"},actionTitle:{type:String,required:!1,default:"Verhalten"},enableAddDelete:{type:Boolean,default:!0},minPatterns:{type:Number,default:1},maxPatterns:{type:Number,default:10},showCheckPattern:{type:Boolean,required:!1,default:!0}},emits:["update:modelValue"],data(){return{showTestPattern:!1,testPattern:{...this.contacts}}},computed:{value:{get(){return this.modelValue},set(s){this.$emit("update:modelValue",s)}},numContacts(){return Object.keys(this.contacts).length},addPatternDisabled(){return this.value.length>=this.maxPatterns},addPatternTooltip(){return this.addPatternDisabled?this.maxPatterns===1?"Es kann maximal ein Muster definiert werden":`Es können maximal ${this.maxPatterns} Muster definiert werden`:"Muster hinzufügen"},deletePatternDisabled(){return this.value.length<=this.minPatterns},deletePatternTooltip(){return this.deletePatternDisabled?this.minPatterns===1?"Es muss mindestens ein Muster definiert sein":`Es müssen mindestens ${this.minPatterns} Muster definiert sein`:"Muster löschen"}},watch:{contacts(){this.testPattern={...this.contacts}}},mounted(){for(;this.value.lengththis.testPattern[e]===void 0?!0:this.value[s].matrix[e]===this.testPattern[e])},deletePattern(s){delete this.value.splice(s,1)},addPattern(){this.value.push({matrix:{},value:null})}}},Q={class:"w-100 mb-2"},L=["span"],G=["colspan"],J={key:0,rowspan:"2",class:"contact-header"},U=["colspan"],W={key:0},R={key:0,class:"text-center"},X={key:1},Y={key:0},Z=["colspan"],K={key:1,class:"bg-info"},$=["colspan"];function ee(s,e,r,te,u,a){const g=P("font-awesome-icon"),x=P("openwb-base-click-button"),w=P("openwb-base-tooltip"),q=P("openwb-base-button-group-input");return n(),l(m,null,[i("table",Q,[i("colgroup",null,[i("col",{span:a.numContacts,class:"bg-white",style:{border:"1px solid #dee2e6"}},null,8,L)]),i("thead",null,[i("tr",null,[i("th",{colspan:a.numContacts},k(r.title),9,G),u.showTestPattern?(n(),l("th",J,[...e[6]||(e[6]=[i("div",null,"Prüfergebnis",-1)])])):c("",!0),i("th",{colspan:r.enableAddDelete?2:1},null,8,U)]),i("tr",null,[(n(!0),l(m,null,p(Object.keys(r.contacts),t=>(n(),l("th",{key:t,class:"contact-header"},[i("div",null,k(t),1)]))),128)),i("th",null,k(r.actionTitle),1),r.enableAddDelete?(n(),l("th",W,[o(x,{class:"bg-success text-white",tooltip:a.addPatternTooltip,disabled:a.addPatternDisabled,onClick:e[0]||(e[0]=t=>a.addPattern())},{default:f(()=>[o(g,{icon:["fas","plus"]})]),_:1},8,["tooltip","disabled"])])):c("",!0)])]),i("tbody",null,[(n(!0),l(m,null,p(a.value,(t,b)=>(n(),l("tr",{key:b},[(n(!0),l(m,null,p(Object.keys(r.contacts),d=>(n(),l("td",{key:d,class:"text-center"},[o(w,{description:a.getTitle(t.matrix[d])},{default:f(()=>[o(g,{icon:a.getIcon(t.matrix[d]),class:V([a.getIconClass(t.matrix[d]),"fa-fw clickable"]),size:"2x",transform:t.matrix[d]==null?"shrink-6":null,mask:t.matrix[d]==null?["fas","square"]:null,onClick:h(se=>a.toggleContact(b,d),["stop","prevent"]),onMousedown:e[1]||(e[1]=h(()=>{},["stop","prevent"])),onMouseup:e[2]||(e[2]=h(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128)),u.showTestPattern?(n(),l("td",R,[a.patternMatch(b)?(n(),T(w,{key:0,description:"Muster passt"},{default:f(()=>[o(g,{icon:["fas","check-circle"],class:"text-success fa-fw"})]),_:1})):c("",!0)])):c("",!0),i("td",N({ref_for:!0},s.$attrs),[H(s.$slots,"default",{pattern:t},()=>[v(k(t.value),1)],!0)],16),r.enableAddDelete?(n(),l("td",X,[o(x,{class:"bg-danger text-white",tooltip:a.deletePatternTooltip,disabled:a.deletePatternDisabled,onClick:d=>a.deletePattern(b)},{default:f(()=>[o(g,{icon:["fas","trash"]})]),_:1},8,["tooltip","disabled","onClick"])])):c("",!0)]))),128)),u.showTestPattern?(n(),l("tr",Y,[(n(!0),l(m,null,p(Object.keys(r.contacts),t=>(n(),l("td",{key:t,class:"pt-4"},"   "))),128)),i("td",{colspan:r.enableAddDelete?3:2},null,8,Z)])):c("",!0),u.showTestPattern?(n(),l("tr",K,[(n(!0),l(m,null,p(Object.keys(r.contacts),t=>(n(),l("td",{key:t,class:"text-center text-body"},[o(w,{description:a.getTitle(u.testPattern[t])},{default:f(()=>[o(g,{icon:a.getIcon(u.testPattern[t]),class:V([a.getIconClass(u.testPattern[t]),"fa-fw clickable"]),size:"2x",transform:u.testPattern[t]==null?"shrink-6":null,mask:u.testPattern[t]==null?["fas","square"]:null,onClick:h(b=>a.toggleTestPattern(t),["stop","prevent"]),onMousedown:e[3]||(e[3]=h(()=>{},["stop","prevent"])),onMouseup:e[4]||(e[4]=h(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128)),i("td",{class:"pl-2",colspan:r.enableAddDelete?3:2}," Simulierter Eingang ",8,$)])):c("",!0)])]),r.showCheckPattern?(n(),T(q,{key:0,modelValue:u.showTestPattern,"onUpdate:modelValue":e[5]||(e[5]=t=>u.showTestPattern=t),title:"Simulierter Eingang",buttons:[{buttonValue:!1,text:"Verbergen"},{buttonValue:!0,text:"Anzeigen"}]},{help:f(()=>[...e[7]||(e[7]=[v(' Der simulierte Eingang ist eine Hilfe um zu testen, ob die Eingangsmuster zum gewünschten Verhalten passen. Ein grüner Haken in der Spalte "Prüfergebnis" zeigt an, dass das Eingangsmuster zum simulierten Eingang passt. Eingangsmuster mit unterschiedlichem Verhalten dürfen nicht gleichzeitig passen, da sonst das Verhalten nicht eindeutig ist. ',-1)])]),_:1},8,["modelValue"])):c("",!0)],64)}const le=B(F,[["render",ee],["__scopeId","data-v-3624c649"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoPattern.vue"]]);export{le as O}; diff --git a/web/settings/assets/OpenwbIoSinglePattern-B9zMWKVu.js b/web/settings/assets/OpenwbIoSinglePattern-C4hsIwwW.js similarity index 97% rename from web/settings/assets/OpenwbIoSinglePattern-B9zMWKVu.js rename to web/settings/assets/OpenwbIoSinglePattern-C4hsIwwW.js index b8af4b4a58..68992661da 100644 --- a/web/settings/assets/OpenwbIoSinglePattern-B9zMWKVu.js +++ b/web/settings/assets/OpenwbIoSinglePattern-C4hsIwwW.js @@ -1 +1 @@ -import{_ as m,l as i,k as l,e as p,m as f,q as r,A as s,J as u,y as g,u as h,K as b}from"./vendor-JxinjXxC.js";const v={name:"IoActionSinglePattern",inheritAttrs:!1,props:{modelValue:{type:Array,required:!0},contacts:{type:Object,required:!0},contactType:{type:String,required:!1,default:"input",validator:e=>["input","output"].includes(e)},title:{type:String,required:!1,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},contactTitle(){return this.title!==void 0?this.title:this.contactType==="input"?"Eingang":"Ausgang"},contactHelpText(){return this.contactType==="input"?"Bitte den Eingang auswählen, auf welchen reagiert werden soll. Es kann nur ein Eingang ausgewählt werden.":"Bitte den Ausgang auswählen, welcher geschaltet werden soll. Es kann nur ein Ausgang ausgewählt werden."},normalModeHelpText(){return this.contactType==="input"?"Bitte Einstellen, ob der Eingang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist.":"Bitte Einstellen, ob der Ausgang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist."},definedContact:{get(){return this.value!==void 0&&Object.keys(this.value[0].matrix).length!==0?Object.keys(this.value[0].matrix)[0]:null},set(e){if(Object.keys(this.value[0].matrix).length===0){this.value=[{value:!0,matrix:{[e]:!0}},{value:!1,matrix:{[e]:!1}}];return}this.value=[{value:!0,matrix:{[e]:this.definedNormalMode}},{value:!1,matrix:{[e]:!this.definedNormalMode}}]}},definedNormalMode:{get(){return Object.values(this.value[0].matrix)[0]},set(e){this.value=[{value:!0,matrix:{[this.definedContact]:e}},{value:!1,matrix:{[this.definedContact]:!e}}]}},contactOptions(){return Object.keys(this.contacts).map(e=>({value:e,text:e}))}}};function x(e,n,o,_,y,t){const d=i("openwb-base-select-input"),c=i("openwb-base-button-group-input");return l(),p(b,null,[f(d,{modelValue:t.definedContact,"onUpdate:modelValue":n[0]||(n[0]=a=>t.definedContact=a),title:t.contactTitle,required:"","not-selected":"Bitte auswählen","empty-value":null,options:t.contactOptions},{help:r(()=>[s(u(t.contactHelpText),1)]),_:1},8,["modelValue","title","options"]),o.contactType==="input"?(l(),g(c,{key:0,modelValue:t.definedNormalMode,"onUpdate:modelValue":n[1]||(n[1]=a=>t.definedNormalMode=a),title:"Normaler Zustand",buttons:[{buttonValue:!1,text:"geschlossen (NC)"},{buttonValue:!0,text:"geöffnet (NO)"}],disabled:!t.definedContact,required:""},{help:r(()=>[s(u(t.normalModeHelpText),1)]),_:1},8,["modelValue","disabled"])):h("",!0)],64)}const N=m(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoSinglePattern.vue"]]);export{N as O}; +import{_ as m,l as i,k as l,e as p,m as f,q as r,A as s,J as u,y as g,u as h,K as b}from"./vendor-Bo8v-nQD.js";const v={name:"IoActionSinglePattern",inheritAttrs:!1,props:{modelValue:{type:Array,required:!0},contacts:{type:Object,required:!0},contactType:{type:String,required:!1,default:"input",validator:e=>["input","output"].includes(e)},title:{type:String,required:!1,default:void 0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},contactTitle(){return this.title!==void 0?this.title:this.contactType==="input"?"Eingang":"Ausgang"},contactHelpText(){return this.contactType==="input"?"Bitte den Eingang auswählen, auf welchen reagiert werden soll. Es kann nur ein Eingang ausgewählt werden.":"Bitte den Ausgang auswählen, welcher geschaltet werden soll. Es kann nur ein Ausgang ausgewählt werden."},normalModeHelpText(){return this.contactType==="input"?"Bitte Einstellen, ob der Eingang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist.":"Bitte Einstellen, ob der Ausgang für den normalen Betrieb (nicht aktiv, nicht gedimmt etc.) geschlossen (NC) oder geöffnet (NO) ist."},definedContact:{get(){return this.value!==void 0&&Object.keys(this.value[0].matrix).length!==0?Object.keys(this.value[0].matrix)[0]:null},set(e){if(Object.keys(this.value[0].matrix).length===0){this.value=[{value:!0,matrix:{[e]:!0}},{value:!1,matrix:{[e]:!1}}];return}this.value=[{value:!0,matrix:{[e]:this.definedNormalMode}},{value:!1,matrix:{[e]:!this.definedNormalMode}}]}},definedNormalMode:{get(){return Object.values(this.value[0].matrix)[0]},set(e){this.value=[{value:!0,matrix:{[this.definedContact]:e}},{value:!1,matrix:{[this.definedContact]:!e}}]}},contactOptions(){return Object.keys(this.contacts).map(e=>({value:e,text:e}))}}};function x(e,n,o,_,y,t){const d=i("openwb-base-select-input"),c=i("openwb-base-button-group-input");return l(),p(b,null,[f(d,{modelValue:t.definedContact,"onUpdate:modelValue":n[0]||(n[0]=a=>t.definedContact=a),title:t.contactTitle,required:"","not-selected":"Bitte auswählen","empty-value":null,options:t.contactOptions},{help:r(()=>[s(u(t.contactHelpText),1)]),_:1},8,["modelValue","title","options"]),o.contactType==="input"?(l(),g(c,{key:0,modelValue:t.definedNormalMode,"onUpdate:modelValue":n[1]||(n[1]=a=>t.definedNormalMode=a),title:"Normaler Zustand",buttons:[{buttonValue:!1,text:"geschlossen (NC)"},{buttonValue:!0,text:"geöffnet (NO)"}],disabled:!t.definedContact,required:""},{help:r(()=>[s(u(t.normalModeHelpText),1)]),_:1},8,["modelValue","disabled"])):h("",!0)],64)}const N=m(v,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoSinglePattern.vue"]]);export{N as O}; diff --git a/web/settings/assets/OpenwbSortableList-BnacrijU.js b/web/settings/assets/OpenwbSortableList-BORHS8nd.js similarity index 93% rename from web/settings/assets/OpenwbSortableList-BnacrijU.js rename to web/settings/assets/OpenwbSortableList-BORHS8nd.js index e39c246a06..3309ffcbc8 100644 --- a/web/settings/assets/OpenwbSortableList-BnacrijU.js +++ b/web/settings/assets/OpenwbSortableList-BORHS8nd.js @@ -1 +1 @@ -import{O as V}from"./index-BBXHIMfY.js";import{_ as b,a4 as v,l as o,k as l,y as r,q as d,x as f,j as k,m as S,u as p,A as g,J as _,D as B,f as m,e as O}from"./vendor-JxinjXxC.js";import{F as L,l as A,at as C,au as E,X as N,a4 as q,a3 as j,a2 as x}from"./vendor-fortawesome-DD1DIYBi.js";A.add(C,E,N,q,j,x);const D={name:"OpenwbNestedList",components:{draggable:v,FontAwesomeIcon:L},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0},nesting:{type:Boolean,default:!0}},methods:{classes(e){var a="";switch(e.type){case"bat":a+="battery";break;case"cp":a+="charge-point";break;default:a+=e.type;break}return a},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function U(e,a,t,w,h,n){const i=o("font-awesome-icon"),u=o("openwb-nested-list",!0),c=o("draggable");return l(),r(c,{class:"dragArea w-100 mb-0",tag:"ul",list:t.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[f("li",null,[f("div",{class:k(["element-titel",n.classes(s)])},[f("span",null,[S(i,{class:"handle",icon:["fas",t.nesting?"arrows-alt":"arrows-up-down"]},null,8,["icon"]),n.getElementIcon(s)?(l(),r(i,{key:0,icon:n.getElementIcon(s)},null,8,["icon"])):p("",!0),g(" "+_(n.getElementLabel(s.id)),1)])],2),t.nesting&&s.children?(l(),r(u,{key:0,modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:t.labels,nesting:t.nesting},null,8,["modelValue","onUpdate:modelValue","labels","nesting"])):p("",!0)])]),_:1},8,["list"])}const I=b(D,[["render",U],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),W={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:V,OpenwbNestedList:I},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0},nesting:{type:Boolean,default:!0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},F={key:1};function z(e,a,t,w,h,n){const i=o("openwb-nested-list"),u=o("openwb-base-setting-element");return l(),r(u,null,B({title:d(()=>[m(e.$slots,"title",{},()=>[g(_(t.title),1)])]),default:d(()=>[n.value!==void 0?(l(),r(i,{key:0,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=c=>n.value=c),labels:t.labels,nesting:t.nesting},null,8,["modelValue","labels","nesting"])):(l(),O("div",F,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[m(e.$slots,"help")]),key:"0"}:void 0]),1024)}const P=b(W,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{P as S}; +import{O as V}from"./index-CyH1Au4V.js";import{_ as b,a4 as v,l as o,k as l,y as r,q as d,x as f,j as k,m as S,u as p,A as g,J as _,D as B,f as m,e as O}from"./vendor-Bo8v-nQD.js";import{F as L,l as A,at as C,au as E,X as N,a4 as q,a3 as j,a2 as x}from"./vendor-fortawesome-CBc-2W7w.js";A.add(C,E,N,q,j,x);const D={name:"OpenwbNestedList",components:{draggable:v,FontAwesomeIcon:L},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0},nesting:{type:Boolean,default:!0}},methods:{classes(e){var a="";switch(e.type){case"bat":a+="battery";break;case"cp":a+="charge-point";break;default:a+=e.type;break}return a},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function U(e,a,t,w,h,n){const i=o("font-awesome-icon"),u=o("openwb-nested-list",!0),c=o("draggable");return l(),r(c,{class:"dragArea w-100 mb-0",tag:"ul",list:t.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[f("li",null,[f("div",{class:k(["element-titel",n.classes(s)])},[f("span",null,[S(i,{class:"handle",icon:["fas",t.nesting?"arrows-alt":"arrows-up-down"]},null,8,["icon"]),n.getElementIcon(s)?(l(),r(i,{key:0,icon:n.getElementIcon(s)},null,8,["icon"])):p("",!0),g(" "+_(n.getElementLabel(s.id)),1)])],2),t.nesting&&s.children?(l(),r(u,{key:0,modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:t.labels,nesting:t.nesting},null,8,["modelValue","onUpdate:modelValue","labels","nesting"])):p("",!0)])]),_:1},8,["list"])}const I=b(D,[["render",U],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),W={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:V,OpenwbNestedList:I},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0},nesting:{type:Boolean,default:!0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},F={key:1};function z(e,a,t,w,h,n){const i=o("openwb-nested-list"),u=o("openwb-base-setting-element");return l(),r(u,null,B({title:d(()=>[m(e.$slots,"title",{},()=>[g(_(t.title),1)])]),default:d(()=>[n.value!==void 0?(l(),r(i,{key:0,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=c=>n.value=c),labels:t.labels,nesting:t.nesting},null,8,["modelValue","labels","nesting"])):(l(),O("div",F,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[m(e.$slots,"help")]),key:"0"}:void 0]),1024)}const P=b(W,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{P as S}; diff --git a/web/settings/assets/SecurityConfiguration-7o6Gg3lo.js b/web/settings/assets/SecurityConfiguration-BMtEoSIk.js similarity index 99% rename from web/settings/assets/SecurityConfiguration-7o6Gg3lo.js rename to web/settings/assets/SecurityConfiguration-BMtEoSIk.js index 28e009fed3..1cc7e7e2e0 100644 --- a/web/settings/assets/SecurityConfiguration-7o6Gg3lo.js +++ b/web/settings/assets/SecurityConfiguration-BMtEoSIk.js @@ -1,2 +1,2 @@ -import{F as q,l as M,A as _,af as E,B as P,ao as L,d as T,aj as Z}from"./vendor-fortawesome-DD1DIYBi.js";import{C as I}from"./index-BBXHIMfY.js";import{_ as O,l as w,k as u,e as f,m as i,q as r,A as l,x as d,y as g,J as k,u as b,K as U,L as W,z as N,j as H}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";M.add(_,E,P,L,T,Z);const F={name:"OpenwbSecurityView",components:{FontAwesomeIcon:q},mixins:[I],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","sendCommand"],data(){return{mqttTopics:[{topic:"$CONTROL/dynamic-security/v1/response",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/allow_unencrypted_access",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/web_theme",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!1},{topic:"openWB/optional/int_display/theme",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!1}],activeControlCommand:null,controlCommandsQueue:[],clients:[],clientDetails:{},groups:[],groupDetails:{},rawRoles:[],roleDetails:{},rolesVersion:null,showAddUserModal:!1,newClientName:null,newClientEmail:null,newClientPassword:null,newClientPasswordConfirmation:null,showAddGroupModal:!1,newGroupName:null,anonymousGroupName:null,dynSecAdminRoleName:"dynsec-admin",userGroupName:"user",displayGroupName:"display",defaultAclAccess:[],showResetModal:!1,skipInit:!1}},computed:{dynSecResponse(){return this.$store.state.mqtt["$CONTROL/dynamic-security/v1/response"]},loggedInUser(){return this.$store.state.local.username||null},userManagementActive:{get(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},set(t){this.skipInit=!0,this.updateState("openWB/system/security/user_management_active",t)}},addUserDisabled(){return!this.newClientName||!this.newClientEmail||!this.newClientPassword||!this.newClientPasswordConfirmation||this.newClientPassword!==this.newClientPasswordConfirmation||this.clients.includes(this.newClientName)},addGroupDisabled(){return!this.newGroupName||this.groups.includes(this.newGroupName)},readableAcls(){return t=>!t||!Array.isArray(t)?"":t.sort((e,h)=>e.topich.topic?1:0).map(e=>{const v={publishClientSend:"Veröffentlichen",publishClientReceive:"Empfangen",subscribe:"Abonnieren",unsubscribe:"Abonnement aufheben",subscribeLiteral:"Abonnieren (exakt)",unsubscribeLiteral:"Abonnement aufheben (exakt)",subscribePattern:"Abonnieren (Muster)",unsubscribePattern:"Abonnement aufheben (Muster)"}[e.acltype]||e.acltype,s=e.allow===!0?"erlaubt":e.allow===!1?"verboten":"unbekannt";return`${e.topic?'"'+e.topic+'"':""} -> ${v} ${s}`}).join(` +import{F as q,l as M,A as _,af as E,B as P,ao as L,d as T,aj as Z}from"./vendor-fortawesome-CBc-2W7w.js";import{C as I}from"./index-CyH1Au4V.js";import{_ as O,l as w,k as u,e as f,m as i,q as r,A as l,x as d,y as g,J as k,u as b,K as U,L as W,z as N,j as H}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";M.add(_,E,P,L,T,Z);const F={name:"OpenwbSecurityView",components:{FontAwesomeIcon:q},mixins:[I],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","sendCommand"],data(){return{mqttTopics:[{topic:"$CONTROL/dynamic-security/v1/response",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/allow_unencrypted_access",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/web_theme",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!1},{topic:"openWB/optional/int_display/theme",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!1}],activeControlCommand:null,controlCommandsQueue:[],clients:[],clientDetails:{},groups:[],groupDetails:{},rawRoles:[],roleDetails:{},rolesVersion:null,showAddUserModal:!1,newClientName:null,newClientEmail:null,newClientPassword:null,newClientPasswordConfirmation:null,showAddGroupModal:!1,newGroupName:null,anonymousGroupName:null,dynSecAdminRoleName:"dynsec-admin",userGroupName:"user",displayGroupName:"display",defaultAclAccess:[],showResetModal:!1,skipInit:!1}},computed:{dynSecResponse(){return this.$store.state.mqtt["$CONTROL/dynamic-security/v1/response"]},loggedInUser(){return this.$store.state.local.username||null},userManagementActive:{get(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},set(t){this.skipInit=!0,this.updateState("openWB/system/security/user_management_active",t)}},addUserDisabled(){return!this.newClientName||!this.newClientEmail||!this.newClientPassword||!this.newClientPasswordConfirmation||this.newClientPassword!==this.newClientPasswordConfirmation||this.clients.includes(this.newClientName)},addGroupDisabled(){return!this.newGroupName||this.groups.includes(this.newGroupName)},readableAcls(){return t=>!t||!Array.isArray(t)?"":t.sort((e,h)=>e.topich.topic?1:0).map(e=>{const v={publishClientSend:"Veröffentlichen",publishClientReceive:"Empfangen",subscribe:"Abonnieren",unsubscribe:"Abonnement aufheben",subscribeLiteral:"Abonnieren (exakt)",unsubscribeLiteral:"Abonnement aufheben (exakt)",subscribePattern:"Abonnieren (Muster)",unsubscribePattern:"Abonnement aufheben (Muster)"}[e.acltype]||e.acltype,s=e.allow===!0?"erlaubt":e.allow===!1?"verboten":"unbekannt";return`${e.topic?'"'+e.topic+'"':""} -> ${v} ${s}`}).join(` `)},componentName(){return t=>{const e=`openWB/system/device/+/component/${t}/config`;return Object.values(this.getWildcardTopics(e))[0]?.name||void 0}},chargePointName(){return t=>{const e=`openWB/chargepoint/${t}/config`;return this.$store.state.mqtt[e]?.name||void 0}},vehicleName(){return t=>{const e=`openWB/vehicle/${t}/name`;return this.$store.state.mqtt[e]||void 0}},ioDeviceName(){return t=>{const e=`openWB/system/io/${t}/config`;return this.$store.state.mqtt[e]?.name||void 0}},ioActionName(){return t=>{const e=`openWB/io/action/${t}/config`;return this.$store.state.mqtt[e]?.name||void 0}},routes(){return this.$router.getRoutes()},routeName(){return t=>{const e=t.split("-").map(v=>v.charAt(0).toUpperCase()+v.slice(1)).join(""),h=this.routes.find(v=>v.name===e);if(h===void 0){console.warn("No route found for view:",t,"(searched for route name:",e+")");return}return h.meta.heading}},friendlyRoleName(){return t=>{const e=o=>{switch(o[0]){case"counter":return"Zähler";case"inverter":return"Wechselrichter";case"bat":return"Speicher";case"chargepoint":return"Ladepunkt";case"vehicle":return"Fahrzeug";case"io":switch(o[1]){case"device":return"Ein-/Ausgangs Gerät";case"action":return"Ein-/Ausgangs Aktion"}break;default:return o[0]}},h=o=>{let c=o[1],p=e(o),m="",z;switch(o[0]){case"counter":case"inverter":case"bat":m=this.componentName(c)||c;break;case"chargepoint":m=this.chargePointName(c)||c;break;case"vehicle":m=this.vehicleName(c)||c;break;case"io":switch(c=o[2],o[1]){case"device":m=this.ioDeviceName(c)||c;break;case"action":m=this.ioActionName(c)||c;break;default:m=c}break}return s[s.length-2]=="write"?z="MQTT-Input":(z="lesen",["chargepoint","vehicle"].includes(o[0])&&(z+=" und bedienen")),`Daten: ${p} '${m}' (${c}) ${z}`};let v=null;switch(t){case"charge-log-access":case"install-assistant-access":case"data-management-access":case"legal-settings-access":v=t.replace("-access","");break;case"settings-access":return"Einstellungen: Zugang ermöglichen";case"legacy-smart-home-configuration-access":return"Einstellungen: Konfiguration - SmartHome";case"full-access":return"Voller Zugang lesen und schreiben";case this.dynSecAdminRoleName:return"Sicherheits-Administrator";case"basic-display-data":return"Basisdaten: Display";case"basic-system-data":return"Basisdaten: System";case"basic-theme-data":return"Basisdaten: Hauptseite/Theme";case"basic-user-data":return"Basisdaten: Benutzer";case"other-data":return"Daten: Externe Anwendungen lesen und schreiben";case"electricity-price-access":return"Daten: Strompreise lesen";case"graph-access":return"Daten: Verlaufsdiagramm lesen";case"home-consumption-access":return"Daten: Hausverbrauch lesen"}const s=t.split("-");if((t.endsWith("-configuration-access")||t.endsWith("-installation-access")||t.endsWith("-access")&&s.length==2)&&(v=t.replace("-access","")),v!==null){const o=this.routeName(v);if(o!==void 0)return`Einstellungen: ${o}`}if(s[1]=="sum")switch(s[0]){case"inverter":return"Daten: Wechselrichter Summendaten lesen";case"bat":return"Daten: Speicher Summendaten lesen";case"chargepoint":return"Daten: Ladepunkt Summendaten lesen"}if(!isNaN(s[1])&&["counter","inverter","bat","chargepoint","vehicle"].includes(s[0]))return h(s);switch(s[0]){case"vehicle":if(s[1]==="configuration")return"Einstellungen: Fahrzeuge";break;case"io":return s[1]==="configuration"?"Einstellungen: Ein-/Ausgänge":h(s)}return`*${t}*`}},rolesList(){return this.roles.map(t=>({name:t,friendlyName:this.friendlyRoleName(t)})).sort((t,e)=>t.friendlyNamee.friendlyName?1:0)},webThemeSupported(){return this.$store.state.mqtt["openWB/general/web_theme"]?.userManagementSupported===!0},displayThemeSupported(){return this.$store.state.mqtt["openWB/optional/int_display/theme"]?.userManagementSupported===!0}},watch:{dynSecResponse(t){t&&t.responses&&t.responses.forEach(e=>{switch(e.command){case"listClients":this.clients=JSON.parse(JSON.stringify(e.data.clients));break;case"getClient":this.clientDetails[e.data.client.username]=JSON.parse(JSON.stringify(e.data.client));break;case"createClient":case"disableClient":case"enableClient":this.getClientList();break;case"modifyClient":case"deleteClient":this.getClientList(),this.getGroupsDetails();break;case"listGroups":this.groups=JSON.parse(JSON.stringify(e.data.groups));break;case"getAnonymousGroup":this.anonymousGroupName=e.data.group.groupname;break;case"getGroup":this.groupDetails[e.data.group.groupname]=JSON.parse(JSON.stringify(e.data.group));break;case"createGroup":this.getGroupList();break;case"modifyGroup":case"deleteGroup":this.getGroupList(),this.getClientsDetails();break;case"listRoles":this.roles=JSON.parse(JSON.stringify(e.data.roles)).filter(h=>h.startsWith("openwb-version:")?(this.rolesVersion=h.split(":")[1],!1):!0);break;case"getRole":this.roleDetails[e.data.role.rolename]=JSON.parse(JSON.stringify(e.data.role));break;case"getDefaultACLAccess":this.defaultAclAccess=JSON.parse(JSON.stringify(e.data.acls));break;default:console.warn("Unhandled dynamic security response:",e);break}}),this.activeControlCommand=null,this.processControlCommandQueue()},loggedInUser(t,e){t!==e&&this.$router.go()},userManagementActive(t,e){t!==e&&this.init()}},mounted(){this.init()},methods:{init(){if(this.skipInit){console.debug("Skipping initialization of Security view."),this.skipInit=!1;return}this.clients=[],this.clientDetails={},this.groups=[],this.groupDetails={},this.roles=[],this.roleDetails={},this.userManagementActive&&(console.debug("Initializing Security view for user:",this.loggedInUser),this.getAnonymousGroupName(),this.getDefaultAclAccess(),this.getClientList(),this.getGroupList(),this.getRoleList())},handleResetModal(t){this.showResetModal=!1,t==="confirm"&&this.$emit("sendCommand",{command:"resetUserManagement"})},saveSecuritySettings(){this.userManagementActive||(console.info("User management deactivated, removing mqtt cookie."),this.$cookies.remove("mqtt")),this.$emit("save",this.mqttTopicsToPublish)},sendControlCommand(t,e={}){if(this.activeControlCommand!==null){console.warn("Control command already running, please wait.");return}this.activeControlCommand=t;const h={commands:[{command:t,...e}]};console.debug("$CONTROL command:",h),this.$root.doPublish("$CONTROL/dynamic-security/v1",h)},queueControlCommand(t,e={}){this.controlCommandsQueue.push({command:t,payload:e}),this.processControlCommandQueue()},processControlCommandQueue(){if(this.activeControlCommand!==null||this.controlCommandsQueue.length===0)return;const{command:t,payload:e}=this.controlCommandsQueue.shift();this.sendControlCommand(t,e)},getClientList(){this.queueControlCommand("listClients")},getClientsDetails(){this.clients.forEach(t=>{this.queueControlCommand("getClient",{username:t})})},getClient(t){this.queueControlCommand("getClient",{username:t})},createClient(t){if(t==="confirm"){if(!this.newClientName||!this.newClientEmail||!this.newClientPassword||this.newClientPassword!==this.newClientPasswordConfirmation){this.$root.postClientMessage("Ungültige Eingaben. Bitte stelle sicher, dass der Benutzername, die E-Mail-Adresse und das Passwort ausgefüllt sind und die Passwortbestätigung übereinstimmt.","danger");return}this.queueControlCommand("createClient",{username:this.newClientName,password:this.newClientPassword,textname:this.newClientEmail})}this.showAddUserModal=!1,this.newClientName=null,this.newClientEmail=null,this.newClientPassword=null,this.newClientPasswordConfirmation=null},deleteClient(t){if(t===this.loggedInUser){console.error("Cannot delete currently logged in user:",t),this.$root.postClientMessage("Der aktuell angemeldete Benutzer kann nicht gelöscht werden.","danger");return}this.queueControlCommand("deleteClient",{username:t})},toggleClientDisabled(t){const e=this.clientDetails[t]?.disabled||!1;if(t===this.loggedInUser&&e===!1){console.error("Cannot disable currently logged in user:",t),this.$root.postClientMessage("Der aktuell angemeldete Benutzer kann nicht deaktiviert werden.","danger");return}this.queueControlCommand(e?"enableClient":"disableClient",{username:t}),this.queueControlCommand("getClient",{username:t})},modifyClient(t){if(t===this.loggedInUser&&!this.clientDetails[t]?.roles.map(e=>e.rolename).includes(this.dynSecAdminRoleName)&&(console.error(`Cannot remove ${this.dynSecAdminRoleName} role from currently logged in user:`,t),this.$root.postClientMessage(`Die Rolle '${this.friendlyRoleName(this.dynSecAdminRoleName)}' kann vom aktuell angemeldeten Benutzer nicht entfernt werden und wird automatisch wieder hinzugefügt, da sie für die Verwaltung der Benutzerrechte benötigt wird. Bitte wechsle vor der Bearbeitung zu einem anderen Benutzer, um die Rolle zu entfernen.`,"warning"),this.clientDetails[t].roles.push({rolename:this.dynSecAdminRoleName})),[null,void 0,""].includes(this.clientDetails[t].password))delete this.clientDetails[t].password;else if(this.clientDetails[t].username==="admin"){console.warn("Admin password change requested, sending updateAdminPassword command to openWB."),this.$emit("sendCommand",{command:"updateAdminPassword",data:{newPassword:this.clientDetails[t].password}}),setTimeout(()=>{console.warn("Admin password updated via openWB command, updating dynamic security plugin with new password."),this.queueControlCommand("modifyClient",{username:t,...this.clientDetails[t]})},500);return}this.queueControlCommand("modifyClient",{username:t,...this.clientDetails[t]})},getGroupList(){this.queueControlCommand("listGroups")},getAnonymousGroupName(){this.queueControlCommand("getAnonymousGroup")},getGroupsDetails(){this.groups.forEach(t=>{this.queueControlCommand("getGroup",{groupname:t})})},getGroup(t){this.queueControlCommand("getGroup",{groupname:t})},createGroup(t){if(t==="confirm"){if(!this.newGroupName||this.groups.includes(this.newGroupName)){this.$root.postClientMessage("Ungültige Eingabe. Bitte stelle sicher, dass der Gruppenname ausgefüllt ist und noch nicht existiert.","danger");return}this.queueControlCommand("createGroup",{groupname:this.newGroupName})}this.showAddGroupModal=!1,this.newGroupName=null},deleteGroup(t){this.queueControlCommand("deleteGroup",{groupname:t})},modifyGroup(t){this.queueControlCommand("modifyGroup",{groupname:t,...this.groupDetails[t]})},getRoleList(){this.queueControlCommand("listRoles")},getRole(t){this.queueControlCommand("getRole",{rolename:t})},getDefaultAclAccess(){this.queueControlCommand("getDefaultACLAccess")}}},J={class:"security"},Q={name:"addUserForm"},j={name:"addGroupForm"},K={key:1},X={name:"accessForm"},Y={key:0},$={key:1},ee=["title","onClick"],ne={key:0},te=["name"],se={key:1},re={key:1},ie={key:0},le=["name"],ae={key:1},oe={key:1},ue={key:0},de=["name"],me={key:1},pe={key:1};function ge(t,e,h,v,s,o){const c=w("openwb-base-modal-dialog"),p=w("openwb-base-alert"),m=w("openwb-base-text-input"),z=w("openwb-base-button-group-input"),G=w("router-link"),x=w("openwb-base-button-input"),R=w("openwb-base-submit-buttons"),D=w("openwb-base-card"),B=w("FontAwesomeIcon"),y=w("font-awesome-icon"),A=w("openwb-base-avatar"),V=w("openwb-base-array-input"),S=w("openwb-base-textarea");return u(),f("div",J,[i(c,{show:s.showResetModal,title:"Benutzerverwaltung zurücksetzen",subtype:"danger",buttons:[{text:"Alles zurücksetzen!",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=n=>o.handleResetModal(n))},{default:r(()=>[...e[16]||(e[16]=[l(" Bist Du sicher, dass Du die openWB Benutzerverwaltung zurücksetzen möchtest? Hiermit werden alle Benutzer, Gruppen und Rollen gelöscht und auf die Werkseinstellungen zurückgesetzt. Diese Aktion ist irreversibel! ",-1)])]),_:1},8,["show"]),i(c,{show:s.showAddUserModal,title:"Benutzer hinzufügen",subtype:"success",buttons:[{text:"Benutzer hinzufügen",event:"confirm",subtype:"success",disabled:o.addUserDisabled}],onModalResult:e[5]||(e[5]=n=>o.createClient(n))},{default:r(()=>[d("form",Q,[i(p,{subtype:"info"},{default:r(()=>[...e[17]||(e[17]=[l(" Der Benutzername kann nicht mehr geändert werden! ",-1)])]),_:1}),i(m,{modelValue:s.newClientName,"onUpdate:modelValue":e[1]||(e[1]=n=>s.newClientName=n),title:"Benutzername",subtype:"user",required:"",validator:n=>s.clients.includes(n)?"Dieser Benutzername ist bereits vergeben":!0},null,8,["modelValue","validator"]),i(m,{modelValue:s.newClientEmail,"onUpdate:modelValue":e[2]||(e[2]=n=>s.newClientEmail=n),title:"E-Mail",subtype:"email",required:""},null,8,["modelValue"]),i(m,{modelValue:s.newClientPassword,"onUpdate:modelValue":e[3]||(e[3]=n=>s.newClientPassword=n),title:"Passwort",subtype:"password",required:""},null,8,["modelValue"]),i(m,{modelValue:s.newClientPasswordConfirmation,"onUpdate:modelValue":e[4]||(e[4]=n=>s.newClientPasswordConfirmation=n),title:"Passwort bestätigen",subtype:"password",required:"",validator:n=>n===s.newClientPassword||"Kennwörter stimmen nicht überein"},null,8,["modelValue","validator"])])]),_:1},8,["show","buttons"]),i(c,{show:s.showAddGroupModal,title:"Gruppe hinzufügen",subtype:"success",buttons:[{text:"Gruppe hinzufügen",event:"confirm",subtype:"success",disabled:o.addGroupDisabled}],onModalResult:e[7]||(e[7]=n=>o.createGroup(n))},{default:r(()=>[d("form",j,[i(p,{subtype:"info"},{default:r(()=>[...e[18]||(e[18]=[l(" Der Gruppenname kann nicht mehr geändert werden! ",-1)])]),_:1}),i(m,{modelValue:s.newGroupName,"onUpdate:modelValue":e[6]||(e[6]=n=>s.newGroupName=n),title:"Gruppenname",subtype:"user",required:"",validator:n=>s.groups.includes(n)?"Dieser Gruppenname ist bereits vergeben":!0},null,8,["modelValue","validator"])])]),_:1},8,["show","buttons"]),t.$store.state.mqtt["openWB/general/extern"]!==!1?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[l(" Die Einstellungen zur Sicherheit und Benutzerverwaltung werden aktuell nur für primary openWB unterstützt! ",-1)])]),_:1})):(u(),f("div",K,[d("form",X,[i(D,{title:"Allgemein"},{footer:r(()=>[i(R,{"form-name":"accessForm",onSave:o.saveSecuritySettings,onReset:e[11]||(e[11]=n=>t.$emit("reset")),onDefaults:e[12]||(e[12]=n=>t.$emit("defaults"))},null,8,["onSave"])]),default:r(()=>[i(p,{subtype:"danger"},{default:r(()=>[...e[20]||(e[20]=[l(" Der ",-1),d("strong",null,"Safari Browser",-1),l(" hat in der aktuellen ",-1),d("strong",null,"MacOS/iOS Version 26.x",-1),l(" Probleme mit Websocket-Verbindungen über HTTPs, wenn eine IP anstelle des Hostnamens verwendet wird. Das äußert sich darin, dass die Verbindung nicht zuverlässig hergestellt werden kann. Häufig sind mehrere Verbindungsversuche (Seite neu laden) notwendig, damit die Verbindung steht. Sobald die Verbindung hergestellt werden konnte, funktioniert der Zugriff für die aktuelle Sitzung auch mit Safari zuverlässig. Es wird empfohlen, einen anderen Browser zu verwenden oder die openWB über einen Hostnamen aufzurufen, um dieses Problem zu umgehen. ",-1)])]),_:1}),i(z,{title:"Unverschlüsselten Zugang erlauben","model-value":t.$store.state.mqtt["openWB/general/allow_unencrypted_access"],disabled:o.userManagementActive,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/general/allow_unencrypted_access",n))},{help:r(()=>[...e[21]||(e[21]=[d("p",null," Hier kann eingestellt werden, ob unverschlüsselter Zugang zu openWB erlaubt ist. Dies betrifft sowohl den Zugriff über MQTT (Ports 1883 und 9001) als auch über HTTP (Port 80) (Weboberfläche). ",-1),d("p",null,[d("strong",null,"Hinweis:"),l(" Aus Sicherheitsgründen sollte der unverschlüsselte Zugang nur in geschützten Netzwerken aktiviert werden. Um die Benutzerverwaltung zu aktivieren, muss der unverschlüsselte Zugang zuerst deaktiviert werden. ")],-1)])]),_:1},8,["model-value","disabled"]),i(z,{title:"Benutzerverwaltung","model-value":o.userManagementActive,disabled:t.$store.state.mqtt["openWB/general/allow_unencrypted_access"]===!0||!o.webThemeSupported||!o.displayThemeSupported,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>o.userManagementActive=n)},{help:r(()=>[...e[22]||(e[22]=[d("p",null," Hier kann die integrierte Benutzerverwaltung von openWB aktiviert oder deaktiviert werden. Mit aktivierter Benutzerverwaltung ist der Zugriff auf den Mosquitto Broker (MQTT) und davon abhängige Dienste (Weboberfläche, API) nur mit einem gültigen Benutzerkonto (oder anonym ohne Anmeldung, falls erlaubt) möglich. ",-1)])]),_:1},8,["model-value","disabled"]),i(p,{subtype:"warning",class:"mt-2"},{default:r(()=>[e[26]||(e[26]=d("p",null,[d("strong",null,"Die Benutzerverwaltung erfordert zwingend die Abschaltung des unverschlüsselten Zugangs!")],-1)),d("p",null,[e[24]||(e[24]=l(" Werden Änderungen an dem unverschlüsselten Zugang oder dem Status der Benutzerverwaltung vorgenommen, so ist zwingend ein ",-1)),i(G,{to:"/System/SystemConfiguration"},{default:r(()=>[...e[23]||(e[23]=[l("Neustart dieser openWB",-1)])]),_:1}),e[25]||(e[25]=l(" erforderlich, damit die Änderungen wirksam werden! Erst danach können Benutzer, Gruppen und Rollen angelegt und verwaltet werden. ",-1))]),e[27]||(e[27]=d("p",null,"Standard-Admin-Benutzer nach der ersten Aktivierung oder dem Zurücksetzen:",-1)),e[28]||(e[28]=d("ul",null,[d("li",null,[l("Benutzername: "),d("strong",null,"admin")]),d("li",null,[l("Passwort: "),d("strong",null,"openwb")])],-1))]),_:1}),i(p,{subtype:"danger"},{default:r(()=>[...e[29]||(e[29]=[l(" Einige Bereiche sind noch nicht kompatibel mit der Benutzerverwaltung. Bitte überprüfe vor der Aktivierung, ob Du eine oder mehrere dieser Funktionen nutzt: ",-1),d("ul",null,[d("li",null,"SmartHome"),d("li",null,"SimpleAPI")],-1)])]),_:1}),o.webThemeSupported?b("",!0):(u(),g(p,{key:0,subtype:"danger",class:"mt-2"},{default:r(()=>[l(' Das ausgewählte Theme "'+k(t.$store.state.mqtt["openWB/general/web_theme"]?.name)+'" für die ',1),i(G,{to:"/GeneralConfiguration"},{default:r(()=>[...e[30]||(e[30]=[l("Hauptseite",-1)])]),_:1}),e[31]||(e[31]=l(" unterstützt die Benutzerverwaltung nicht. ",-1))]),_:1})),o.displayThemeSupported?b("",!0):(u(),g(p,{key:1,subtype:"danger",class:"mt-2"},{default:r(()=>[l(' Das ausgewählte Theme "'+k(t.$store.state.mqtt["openWB/optional/int_display/theme"]?.name)+'" für das ',1),i(G,{to:"/DisplayConfiguration"},{default:r(()=>[...e[32]||(e[32]=[l("Display",-1)])]),_:1}),e[33]||(e[33]=l(" unterstützt die Benutzerverwaltung nicht. ",-1))]),_:1})),e[35]||(e[35]=d("hr",null,null,-1)),i(x,{title:"Benutzerverwaltung zurücksetzen","button-text":"Zurücksetzen",subtype:"danger",disabled:o.userManagementActive||o.loggedInUser!==null,onButtonClicked:e[10]||(e[10]=n=>s.showResetModal=!0)},{help:r(()=>[...e[34]||(e[34]=[l(" Hiermit werden alle Benutzer, Gruppen und Rollen der openWB Benutzerverwaltung gelöscht und auf die Werkseinstellungen zurückgesetzt. Diese Aktion ist irreversibel!",-1),d("br",null,null,-1),d("strong",null,"Hinweis:",-1),l(" Die Benutzerverwaltung muss deaktiviert sein und danach ein erforderlicher Neustart durchgeführt werden, um die Benutzerverwaltung zurücksetzen zu können. ",-1)])]),_:1},8,["disabled"])]),_:1})]),o.userManagementActive&&s.anonymousGroupName!==null?(u(),f("div",Y,[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(u(),g(p,{key:0,subtype:"warning"},{default:r(()=>[e[37]||(e[37]=l(" Sie müssen der ",-1)),i(G,{to:"/System/LegalSettings"},{default:r(()=>[...e[36]||(e[36]=[l("Datenschutzerklärung",-1)])]),_:1}),e[38]||(e[38]=l(' zustimmen, um die Funktion "Kennwort vergessen" nutzen zu können! ',-1))]),_:1})):b("",!0),i(D,{collapsible:!0,collapsed:!0,onExpanded:e[14]||(e[14]=n=>o.getClientsDetails())},{header:r(()=>[i(B,{icon:["fas","user"]}),e[39]||(e[39]=l(" Benutzer ",-1))]),actions:r(n=>[n.collapsed?b("",!0):(u(),g(A,{key:0,class:"bg-success clickable",title:"Neuen Benutzer erstellen",onClick:e[13]||(e[13]=N(a=>s.showAddUserModal=!0,["stop"]))},{default:r(()=>[i(y,{icon:["fas","plus"]})]),_:1}))]),default:r(()=>[s.clients.length===0?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[40]||(e[40]=[l(" Es sind noch keine Benutzer angelegt oder Du hast nicht die benötigten Rechte, Daten anzuzeigen. ",-1)])]),_:1})):(u(),f("div",$,[(u(!0),f(U,null,W(s.clients,n=>(u(),g(D,{key:n,collapsible:!0,collapsed:!0,onExpanded:a=>o.getClient(n)},{header:r(()=>[i(B,{icon:["fas",s.clientDetails[n]?.disabled?"user-slash":"user"]},null,8,["icon"]),l(" "+k(n),1)]),actions:r(a=>[a.collapsed?b("",!0):(u(),f("span",{key:0,class:H(["pill mr-2",[s.clientDetails[n]?.disabled?"bg-danger":"bg-success",{clickable:o.loggedInUser!==n}]]),title:o.loggedInUser!==n?`Benutzer ${s.clientDetails[n]?.disabled?"aktivieren":"deaktivieren"}`:"Der aktuell angemeldete Benutzer kann nicht deaktiviert werden.",onClick:N(C=>{o.loggedInUser!==n&&o.toggleClientDisabled(n)},["stop"])},k(s.clientDetails[n]?.disabled?"Deaktiviert":"Aktiv"),11,ee)),!a.collapsed&&o.loggedInUser!==n&&!n.startsWith("Display-")?(u(),g(A,{key:1,class:"bg-danger clickable",title:"Benutzer löschen",onClick:N(C=>{o.loggedInUser!==n&&o.deleteClient(n)},["stop"])},{default:r(()=>[i(y,{icon:["fas","trash"]})]),_:1},8,["onClick"])):b("",!0)]),footer:r(()=>[i(R,{"form-name":`clientForm-${n}`,"save-id":`saveClientBtn-${n}`,"hide-reset":!0,"hide-defaults":!0,onSave:a=>o.modifyClient(n)},null,8,["form-name","save-id","onSave"])]),default:r(()=>[s.clientDetails[n]?(u(),f("div",ne,[d("form",{name:`clientForm-${n}`},[i(m,{modelValue:s.clientDetails[n].username,"onUpdate:modelValue":a=>s.clientDetails[n].username=a,title:"Benutzername",subtype:"user",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),s.clientDetails[n].username.startsWith("Display-")?b("",!0):(u(),g(m,{key:0,modelValue:s.clientDetails[n].textname,"onUpdate:modelValue":a=>s.clientDetails[n].textname=a,title:"E-Mail",subtype:"email",required:!s.clientDetails[n].username.startsWith("Display-")},{help:r(()=>[...e[41]||(e[41]=[l(' Die hier angegebene E-Mail wird für die Funktion "Kennwort vergessen" verwendet. ',-1)])]),_:1},8,["modelValue","onUpdate:modelValue","required"])),s.clientDetails[n].username.startsWith("Display-")?b("",!0):(u(),g(m,{key:1,modelValue:s.clientDetails[n].password,"onUpdate:modelValue":a=>s.clientDetails[n].password=a,title:"Passwort",subtype:"password"},{help:r(()=>[...e[42]||(e[42]=[l(" Bereits festgelegte Passwörter werden nicht angezeigt!",-1),d("br",null,null,-1),l(" Um das Passwort zu ändern, bitte ein neues Passwort eingeben und speichern, andernfalls das Feld leer lassen. ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])),i(V,{title:"Zugewiesene Gruppen","valid-elements":s.groups,"model-value":s.clientDetails[n].groups.map(a=>a.groupname),"onUpdate:modelValue":a=>{s.clientDetails[n].groups=a.map(C=>({groupname:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","users"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","users"]})]),help:r(()=>[...e[43]||(e[43]=[l(" Hier können Gruppen zugewiesen werden, denen der Benutzer angehört. Über die Gruppen werden Rollen und damit verbundene Zugriffsrechte (ACLs) vererbt. Es wird empfohlen, Berechtigungen über Gruppen zu verwalten, damit bei mehreren Benutzern mit ähnlichen Rechten die Verwaltung einfacher und übersichtlicher bleibt. Es können aber auch direkt Rollen zugewiesen werden, um Ergänzungen zu den Gruppenrechten abzubilden. ",-1)])]),_:1},8,["valid-elements","model-value","onUpdate:modelValue"]),i(V,{title:"Zugewiesene Rollen","valid-elements":o.rolesList.map(a=>({value:a.name,label:a.friendlyName})),"model-value":s.clientDetails[n].roles.map(a=>a.rolename),"onUpdate:modelValue":a=>{s.clientDetails[n].roles=a.map(C=>({rolename:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),help:r(()=>[...e[44]||(e[44]=[l(" Hier können Rollen zugewiesen werden, die dem Benutzer direkt zugeordnet werden. Über die Rollen werden Zugriffsrechte (ACLs) vererbt. Es wird empfohlen, Berechtigungen über Gruppen zu verwalten und hier nur ergänzende Rollen zuzuweisen, um die Übersicht zu behalten. ",-1)])]),_:1},8,["valid-elements","model-value","onUpdate:modelValue"]),i(S,{modelValue:s.clientDetails[n].textdescription,"onUpdate:modelValue":a=>s.clientDetails[n].textdescription=a,title:"Zusatzinformationen",subtype:"text"},{help:r(()=>[...e[45]||(e[45]=[l(" Hier können zusätzliche Informationen zum Benutzer hinterlegt werden. ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])],8,te)])):(u(),f("div",se,"Lade Benutzerdetails..."))]),_:2},1032,["onExpanded"]))),128))]))]),_:1}),i(D,{collapsible:!0,collapsed:!0},{header:r(()=>[i(B,{icon:["fas","users"]}),e[46]||(e[46]=l(" Gruppen ",-1))]),actions:r(n=>[n.collapsed?b("",!0):(u(),g(A,{key:0,class:"bg-success clickable",title:"Neue Gruppe erstellen",onClick:e[15]||(e[15]=N(a=>s.showAddGroupModal=!0,["stop"]))},{default:r(()=>[i(y,{icon:["fas","plus"]})]),_:1}))]),default:r(()=>[s.groups.length===0?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[47]||(e[47]=[l(" Es sind noch keine Gruppen angelegt oder Du hast nicht die benötigten Rechte, Daten anzuzeigen. ",-1)])]),_:1})):(u(),f("div",re,[(u(!0),f(U,null,W(s.groups,n=>(u(),g(D,{key:n,collapsible:!0,collapsed:!0,onExpanded:a=>o.getGroup(n)},{header:r(()=>[i(B,{icon:["fas","users"]}),l(" "+k(n),1)]),actions:r(a=>[!a.collapsed&&![s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n)?(u(),g(A,{key:0,class:"bg-danger clickable",title:"Gruppe löschen",onClick:N(C=>o.deleteGroup(n),["stop"])},{default:r(()=>[i(y,{icon:["fas","trash"]})]),_:1},8,["onClick"])):b("",!0)]),footer:r(()=>[i(R,{"form-name":`groupForm-${n}`,"save-id":`saveGroupBtn-${n}`,"hide-reset":!0,"hide-defaults":!0,onSave:a=>o.modifyGroup(n)},null,8,["form-name","save-id","onSave"])]),default:r(()=>[s.groupDetails[n]?(u(),f("div",ie,[n===s.anonymousGroupName?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[l(' Die Gruppe "'+k(n)+'" kann nicht gelöscht werden, da sie für den anonymen Zugriff (ohne Anmeldung) auf openWB benötigt wird. ',1)]),_:2},1024)):b("",!0),n===s.userGroupName?(u(),g(p,{key:1,subtype:"info"},{default:r(()=>[l(' Die Gruppe "'+k(n)+'" kann nicht bearbeitet werden, da sie von openWB für reguläre Benutzer verwendet wird. Es wird empfohlen, diese Gruppe allen Benutzern zuzuweisen und weitere Rollen durch separate Gruppen oder direkt bei den Benutzern zu hinterlegen. ',1)]),_:2},1024)):b("",!0),n===s.displayGroupName?(u(),g(p,{key:2,subtype:"info"},{default:r(()=>[l(' Die Gruppe "'+k(n)+'" kann nicht bearbeitet werden, da sie von openWB für integrierte Displays verwendet wird. Es wird empfohlen, diese Gruppe allen Displays zuzuweisen und weitere Rollen durch separate Gruppen oder direkt bei den Display-Benutzern zu hinterlegen. ',1)]),_:2},1024)):b("",!0),d("form",{name:`groupForm-${n}`},[i(m,{modelValue:s.groupDetails[n].groupname,"onUpdate:modelValue":a=>s.groupDetails[n].groupname=a,title:"Gruppenname",subtype:"text",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),i(m,{modelValue:s.groupDetails[n].textname,"onUpdate:modelValue":a=>s.groupDetails[n].textname=a,title:"Beschreibung",subtype:"text",disabled:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n)},null,8,["modelValue","onUpdate:modelValue","disabled"]),i(V,{title:"Zugewiesene Benutzer","valid-elements":s.clients,"model-value":s.groupDetails[n].clients.map(a=>a.username),"onUpdate:modelValue":a=>{s.groupDetails[n].clients=a.map(C=>({username:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","circle-user"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","circle-user"]})]),_:1},8,["valid-elements","model-value","onUpdate:modelValue"]),i(V,{title:"Zugewiesene Rollen","valid-elements":o.rolesList.map(a=>({value:a.name,label:a.friendlyName})),disabled:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n),readonly:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n),"model-value":s.groupDetails[n].roles.map(a=>a.rolename),"onUpdate:modelValue":a=>{s.groupDetails[n].roles=a.map(C=>({rolename:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),_:1},8,["valid-elements","disabled","readonly","model-value","onUpdate:modelValue"]),i(S,{modelValue:s.groupDetails[n].textdescription,"onUpdate:modelValue":a=>s.groupDetails[n].textdescription=a,title:"Zusatzinformationen",subtype:"text",disabled:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n)},{help:r(()=>[...e[48]||(e[48]=[l(" Hier können zusätzliche Informationen zur Gruppe hinterlegt werden. ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","disabled"])],8,le)])):(u(),f("div",ae,"Lade Gruppendetails..."))]),_:2},1032,["onExpanded"]))),128))]))]),_:1}),i(D,{collapsible:!0,collapsed:!0},{header:r(()=>[i(B,{icon:["fas","file-shield"]}),e[49]||(e[49]=l(" Rollen ",-1))]),default:r(()=>[t.roles.length===0?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[50]||(e[50]=[l(" Es sind noch keine Rollen angelegt oder Du hast nicht die benötigten Rechte, Daten anzuzeigen. ",-1)])]),_:1})):(u(),f("div",oe,[i(p,{subtype:"info"},{default:r(()=>[...e[51]||(e[51]=[l(" Rollen definieren die Zugriffsrechte (Access Control Lists, ACLs) für Benutzer und Gruppen. Jeder Benutzer oder jede Gruppe kann mehrere Rollen zugewiesen bekommen, wodurch sich die effektiven Zugriffsrechte zusammensetzen.",-1),d("br",null,null,-1),l(" openWB erstellt automatisch relevante Rollen während der Installation und bei der Aktivierung bestimmter Funktionen oder Bearbeitung von Ladepunkten, Geräten und Komponenten etc. Rollen können hier nicht bearbeitet oder gelöscht werden. ",-1)])]),_:1}),i(m,{"model-value":s.rolesVersion,title:"Versionsnummer der Rollendefinitionen",disabled:""},{help:r(()=>[...e[52]||(e[52]=[l(" Hier wird die aktuell verwendete Rollen-Version der openWB Benutzerverwaltung angezeigt. Diese Version gibt an, welche vordefinierten Rollen und Zugriffsrechte (ACLs) von openWB generiert werden. Bei einem Update von openWB kann sich die Rollen-Version ändern, wodurch neue Rollen hinzugefügt oder bestehende Rollen angepasst werden können. ",-1)])]),_:1},8,["model-value"]),i(S,{title:"Standard-Zugriffsrechte","model-value":o.readableAcls(s.defaultAclAccess),disabled:""},{help:r(()=>[...e[53]||(e[53]=[l(" Hier werden die Standard Zugriffsrechte (Access Control Lists, ACLs) angezeigt. Diese werden verwendet, wenn keine spezifischen ACLs für einen Benutzer oder eine Gruppe definiert sind oder die Topics nicht explizit abgedeckt werden. ",-1)])]),_:1},8,["model-value"]),e[55]||(e[55]=d("hr",null,null,-1)),(u(!0),f(U,null,W(o.rolesList,n=>(u(),g(D,{key:n.name,collapsible:!0,collapsed:!0,onExpanded:a=>o.getRole(n.name)},{header:r(()=>[i(B,{icon:["fas","file-shield"]}),l(" "+k(n.friendlyName),1)]),default:r(()=>[s.roleDetails[n.name]?(u(),f("div",ue,[d("form",{name:`roleForm-${n.name}`},[i(m,{modelValue:s.roleDetails[n.name].rolename,"onUpdate:modelValue":a=>s.roleDetails[n.name].rolename=a,title:"Rollenname",subtype:"text",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),i(m,{modelValue:s.roleDetails[n.name].textname,"onUpdate:modelValue":a=>s.roleDetails[n.name].textname=a,title:"Beschreibung",subtype:"text",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),s.roleDetails[n.name].textdescription?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[l(k(s.roleDetails[n.name].textdescription),1)]),_:2},1024)):b("",!0),i(S,{title:"Zugriffsrechte (ACLs)","model-value":o.readableAcls(s.roleDetails[n.name].acls),disabled:""},{help:r(()=>[...e[54]||(e[54]=[l(" Hier werden die Zugriffsrechte (Access Control Lists, ACLs) für diese Rolle angezeigt. ",-1)])]),_:1},8,["model-value"])],8,de)])):(u(),f("div",me,"Lade Rollendetails..."))]),_:2},1032,["onExpanded"]))),128))]))]),_:1})])):(u(),f("div",pe,[i(p,{subtype:"info"},{default:r(()=>[e[57]||(e[57]=l(" Die Benutzerverwaltung ist deaktiviert. In diesem Modus hat jeder uneingeschränkten Zugriff auf openWB.",-1)),e[58]||(e[58]=d("br",null,null,-1)),e[59]||(e[59]=l(" Um Benutzer, Gruppen und Rollen zu verwalten, muss die Benutzerverwaltung zuerst aktiviert werden. Dazu ist nach der Aktivierung zwingend ein ",-1)),i(G,{to:"/System/SystemConfiguration"},{default:r(()=>[...e[56]||(e[56]=[l("Neustart dieser openWB",-1)])]),_:1}),e[60]||(e[60]=l(" erforderlich, damit die Änderungen wirksam werden. ",-1))]),_:1})]))]))])}const ye=O(F,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SecurityConfiguration.vue"]]);export{ye as default}; diff --git a/web/settings/assets/Status-Cq-cUxwl.js b/web/settings/assets/Status-DYns2lPM.js similarity index 99% rename from web/settings/assets/Status-Cq-cUxwl.js rename to web/settings/assets/Status-DYns2lPM.js index 19306dcdbc..519fd94647 100644 --- a/web/settings/assets/Status-Cq-cUxwl.js +++ b/web/settings/assets/Status-DYns2lPM.js @@ -1,3 +1,3 @@ -import{C as $}from"./index-BBXHIMfY.js";import{F as q,l as C,V as E,W as M,c as z,f as H,X as P,Y as V,Z as K,M as R,_ as G,$ as F,a0 as Z,a1 as J,a2 as Q,a3 as A,a4 as I,a5 as U,n as X,o as Y,p as tt,q as et,a6 as st,a7 as ot}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as W,l as n,k as r,y as g,D as O,q as i,x as t,e as b,m as l,A as h,u as y,J as a,f as S,j as at,L as k,K as B}from"./vendor-JxinjXxC.js";import{L as it,C as rt,p as nt,a as ct,b as lt,c as dt,P as pt,d as mt,T as ut,i as gt,e as ht}from"./vendor-chartjs-CfpTrYqu.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./vendor-luxon-BDx6lZXm.js";C.add(E,M,z,H);const bt={name:"StatusCard",components:{FontAwesomeIcon:q},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}},hasMessageLineBreaks(){return this.stateMessage.includes(` +import{C as $}from"./index-CyH1Au4V.js";import{F as q,l as C,V as E,W as M,c as z,f as H,X as P,Y as V,Z as K,M as R,_ as G,$ as F,a0 as Z,a1 as J,a2 as Q,a3 as A,a4 as I,a5 as U,n as X,o as Y,p as tt,q as et,a6 as st,a7 as ot}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as W,l as n,k as r,y as g,D as O,q as i,x as t,e as b,m as l,A as h,u as y,J as a,f as S,j as at,L as k,K as B}from"./vendor-Bo8v-nQD.js";import{L as it,C as rt,p as nt,a as ct,b as lt,c as dt,P as pt,d as mt,T as ut,i as gt,e as ht}from"./vendor-chartjs-0RUe1kvq.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";C.add(E,M,z,H);const bt={name:"StatusCard",components:{FontAwesomeIcon:q},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}},hasMessageLineBreaks(){return this.stateMessage.includes(` `)}}},ft={class:"container"},_t={class:"row justify-content-end"},vt={key:0,class:"col px-0"},yt={key:0},wt={style:{"white-space":"pre-wrap"}},Tt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-avatar"),m=n("openwb-base-alert"),u=n("openwb-base-card");return r(),g(u,{subtype:c.subtype,collapsible:!0,collapsed:!0},O({header:i(()=>[S(e.$slots,"header-left")]),actions:i(()=>[S(e.$slots,"header-right"),l(d,{class:at(["ml-2",`bg-${s.stateClass}`]),title:s.stateLabel},{default:i(()=>[l(p,{icon:s.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:i(()=>[S(e.$slots,"default")]),_:2},[c.componentId!==void 0||c.stateMessage?{name:"footer",fn:i(()=>[t("div",ft,[t("div",_t,[c.stateMessage?(r(),b("div",vt,[l(m,{subtype:s.stateClass},{default:i(()=>[l(p,{icon:s.stateIcon},null,8,["icon"]),o[0]||(o[0]=h(" Modulmeldung: ",-1)),s.hasMessageLineBreaks?(r(),b("br",yt)):y("",!0),t("span",wt,a(c.stateMessage),1)]),_:1},8,["subtype"])])):y("",!0),c.componentId!==void 0?(r(),b("div",Tt,[t("div",xt,"ID: "+a(c.componentId),1)])):y("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=W(bt,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(P);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/chargepoint/get/daily_exported",writeable:!1},{topic:"openWB/chargepoint/get/daily_imported",writeable:!1},{topic:"openWB/chargepoint/get/exported",writeable:!1},{topic:"openWB/chargepoint/get/imported",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Bt={class:"text-right"},$t={class:"row"},qt={class:"col text-right text-monospace"},Ct={class:"row"},Nt={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},Pt={class:"row"},At={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"primary"},{"header-left":i(()=>[l(p,{icon:["fas","charging-station"]}),o[0]||(o[0]=h(" Alle Ladepunkte ",-1))]),"header-right":i(()=>[t("span",Bt,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:i(()=>[l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",$t,[t("div",qt,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001)),1)])]),_:1}),l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:i(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Ct,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Nt,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",Pt,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",At,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1})]),_:1})}const Lt=W(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(P,V,K,R,G,F,Z,J);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{chargePointId:{type:Number,required:!0}},data(){return{mqttTopics:[{topic:`openWB/chargepoint/${this.chargePointId}/config`,writeable:!1},{topic:`openWB/chargepoint/${this.chargePointId}/get/+`,writeable:!1},{topic:`openWB/chargepoint/${this.chargePointId}/set/+`,writeable:!1},{topic:`openWB/internal_chargepoint/${this.chargePointId}/data/phases_to_use`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointId}},chargePointConfig:{get(){return this.$store.state.mqtt[`${this.baseTopic}/config`]}},chargingStatus:{get(){let e=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return e==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:e==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},Mt={style:{"white-space":"pre-wrap"}},zt={class:"row"},Ht={class:"col text-right text-monospace"},Vt={class:"col text-right text-monospace"},Kt={class:"row"},Rt={key:0,class:"col text-right text-monospace"},Gt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Zt={class:"row"},Jt={class:"col-4 text-right text-monospace"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},ie={class:"col text-right text-monospace"},re={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},me={class:"row"},ue={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},be={class:"row"},fe={class:"col text-center text-monospace"};function _e(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-alert"),m=n("openwb-base-card"),u=n("status-card");return s.chargePointConfig?(r(),g(u,{key:0,subtype:"primary","component-id":c.chargePointId,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","charging-station"]}),h(" "+a(s.chargePointConfig.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[l(p,{icon:s.chargingStatus.icon,title:s.chargingStatus.text},null,8,["icon","title"]),h(" "+a(s.chargingStatus.text),1)])]),l(d,{subtype:"info"},{default:i(()=>[o[1]||(o[1]=h(" Statusmeldung: ",-1)),t("span",Mt,a(e.$store.state.mqtt[s.baseTopic+"/get/state_str"]),1)]),_:1}),t("div",null," max. Ladeleistung: "+a((e.max_power=e.formatNumberTopic(s.baseTopic+"/get/max_evse_current",0))=="-"?e.max_power:(()=>{const _=Math.floor(e.max_power*3*230/1e3);return _===13?"20A 1-phasig, 16A 3-phasig":_+" kW"})()),1)]),_:1}),l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:i(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",zt,[t("div",Ht,a(e.formatNumberTopic(s.baseTopic+"/set/current",2))+" A",1),t("div",Vt,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Kt,[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),b("div",Rt,a(e.formatNumberTopic("openWB/internal_chargepoint/"+c.chargePointId+"/data/phases_to_use")),1)):(r(),b("div",Gt,a(e.formatNumberTopic(s.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(e.formatNumberTopic(s.baseTopic+"/get/phases_in_use")),1)])]),_:1}),l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:i(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Zt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Jt,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Qt,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Ut,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:i(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",ie,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",re,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",me,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",ue,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",be,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",fe,a(e.formatNumberTopic(s.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])):y("",!0)}const ve=W(jt,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(Q);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{counter:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:`openWB/counter/${this.counter.id}/get/+`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},we={class:"row"},Te={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Be={class:"col text-right text-monospace pl-0"},$e={class:"row"},qe={class:"col"},Ce={class:"row"},Ne={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Pe={class:"col text-right text-monospace pl-0"},Ae={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},Me={class:"col"},ze={class:"row"},He={class:"col text-right text-monospace pl-0"},Ve={class:"col text-right text-monospace pl-0"},Ke={class:"col text-right text-monospace pl-0"},Re={class:"row"},Ge={class:"col"},Fe={class:"row"},Ze={class:"col text-right text-monospace pl-0"},Je={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"};function Ue(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"danger","component-id":c.counter.id,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","gauge-high"]}),h(" "+a(c.counter.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",we,[t("div",Te,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(e.formatNumberTopic(s.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1}),l(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Be,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1}),l(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",$e,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",qe,[t("div",Ce,[t("div",Ne,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[1]),1),t("div",Pe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Ae,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",Me,[t("div",ze,[t("div",He,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ve,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ke,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",Re,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Ge,[t("div",Fe,[t("div",Ze,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[0]),1),t("div",Je,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[1]),1),t("div",Qe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=W(ye,[["render",Ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(A);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/pv/get/+",writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"};function ns(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"success",state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","solar-panel"]}),o[0]||(o[0]=h(" Alle Wechselrichter ",-1))]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",is,a(e.formatNumberTopic(s.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",rs,a(e.formatNumberTopic(s.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const cs=W(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(A);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:`openWB/pv/${this.inverter.id}/get/+`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},ms={class:"col text-right text-monospace"},us={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},bs={class:"col text-right text-monospace"},fs={class:"row"},_s={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"};function xs(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"success","component-id":c.inverter.id,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","solar-panel"]}),h(" "+a(c.inverter.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ms,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",us,[t("div",gs,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(e.formatNumberTopic(s.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",bs,a(e.formatNumberTopic(s.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",fs,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",_s,[t("div",vs,[t("div",ys,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",ws,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",Ts,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=W(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/bat/get/+",writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Bs={class:"row"},$s={class:"col text-right text-monospace pl-0"},qs={class:"col text-right text-monospace pl-0"},Cs={class:"row"},Ns={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},Ps={class:"row"},As={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"warning",state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","car-battery"]}),o[0]||(o[0]=h(" Alle Speicher ",-1))]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",1,1,.001))+" kW / "+a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" % ",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Bs,[t("div",$s,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",qs,a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" %",1)])]),_:1}),l(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Cs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ns,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Ps,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",As,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const Ls=W(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{battery:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:`openWB/bat/${this.battery.id}/get/+`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},Ms={class:"col text-right text-monospace pl-0"},zs={class:"row"},Hs={class:"col text-right text-monospace"},Vs={class:"col text-right text-monospace"},Ks={class:"row"},Rs={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Fs={class:"row"},Zs={class:"col"},Js={class:"row"},Qs={class:"col text-right text-monospace pl-0"},Us={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"warning","component-id":c.battery.id,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","car-battery"]}),h(" "+a(c.battery.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",1,1,.001))+" kW / "+a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" % ",1)]),default:i(()=>[e.$store.state.mqtt[s.baseTopic+"/get/state_str"]?.length>0?(r(),g(d,{key:0,title:"Status der aktiven Speichersteuerung",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[h(a(e.$store.state.mqtt[s.baseTopic+"/get/state_str"]),1)]),_:1})):y("",!0),l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ms,a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" %",1)])]),_:1}),l(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",zs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Hs,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Vs,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Ks,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Rs,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Gs,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Zs,[t("div",Js,[t("div",Qs,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",Us,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=W(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(U,X,Y,tt,et);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:"openWB/io/action/+/config",writeable:!1},{topic:"openWB/io/action/+/timestamp",writeable:!1},{topic:`openWB/io/states/${this.ioDevice.id}/get/+`,writeable:!1}],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,e])=>e.configuration.io_device===this.ioDevice.id))},ioActionState(){return e=>{const o=this.$store.state.mqtt[`openWB/io/action/${e}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(e){return this.state[e].icon},getTitle(e){return this.state[e].title},getActionTitle(e){return this.state[e].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},io={class:"row"},ro={class:"row"},no={class:"row"};function co(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-alert"),m=n("openwb-base-tooltip"),u=n("openwb-base-card"),_=n("status-card");return r(),g(_,{subtype:"secondary",state:e.$store.state.mqtt[`${s.baseTopic}/get/fault_state`],"state-message":e.$store.state.mqtt[`${s.baseTopic}/get/fault_str`],"component-id":c.ioDevice.id},{"header-left":i(()=>[l(p,{icon:["fas","tower-broadcast"]}),h(" "+a(c.ioDevice.name),1)]),default:i(()=>[l(u,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[Object.keys(s.ioActionConfigs).length===0?(r(),g(d,{key:0,subtype:"info",class:"mb-2"},{default:i(()=>[...o[0]||(o[0]=[h(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])]),_:1})):(r(!0),b(B,{key:1},k(s.ioActionConfigs,(f,x)=>(r(),b("div",{key:x,class:"row"},[t("div",so,[l(m,{description:s.getActionTitle(![void 0,null].includes(s.ioActionState(f.id)))},{default:i(()=>[l(p,{icon:s.getIcon(![void 0,null].includes(s.ioActionState(f.id))),class:"fa-fw"},null,8,["icon"])]),_:2},1032,["description"]),h(" "+a(f.name),1)]),t("div",oo,a(s.ioActionState(f.id)),1)]))),128))]),_:1}),s.hasDigitalInputs?(r(),g(u,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",ao,[(r(!0),b(B,null,k(s.digitalInputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},[h(a(x)+": ",1),l(m,{description:s.getTitle(f)},{default:i(()=>[l(p,{icon:s.getIcon(f),class:"fa-fw"},null,8,["icon"])]),_:2},1032,["description"])]))),128))])]),_:1})):y("",!0),s.hasDigitalOutputs?(r(),g(u,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",io,[(r(!0),b(B,null,k(s.digitalOutputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},[h(a(x)+": ",1),l(m,{description:s.getTitle(f)},{default:i(()=>[l(p,{icon:s.getIcon(f),class:"fa-fw"},null,8,["icon"])]),_:2},1032,["description"])]))),128))])]),_:1})):y("",!0),s.hasAnalogInputs?(r(),g(u,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",ro,[(r(!0),b(B,null,k(s.analogInputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},a(x)+": "+a(f),1))),128))])]),_:1})):y("",!0),s.hasAnalogOutputs?(r(),g(u,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",no,[(r(!0),b(B,null,k(s.analogOutputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},a(x)+": "+a(f),1))),128))])]),_:1})):y("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=W(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(st);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{vehicleId:{type:Number,required:!0}},data(){return{mqttTopics:[{topic:`openWB/vehicle/${this.vehicleId}/get/+`,writeable:!1},{topic:`openWB/vehicle/${this.vehicleId}/info`,writeable:!1},{topic:`openWB/vehicle/${this.vehicleId}/name`,writeable:!1}]}},computed:{information:{get(){return this.$store.state.mqtt[this.baseTopic+"/info"]}},name:{get(){const e=this.baseTopic+"/name";return this.$store.state.mqtt[e]!==void 0?this.$store.state.mqtt[e]:`Fahrzeug ${this.vehicleId}`}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},socOdometer:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/odometer"]!==void 0&&this.$store.state.mqtt[this.baseTopic+"/get/odometer"]!==null?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/odometer"]):"-"}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleId}}}},mo={class:"row"},uo={class:"col text-monospace"},go={class:"row"},ho={class:"col text-monospace"},bo={class:"row"},fo={class:"col text-right text-monospace"},_o={class:"row"},vo={class:"col text-right text-monospace"},yo={class:"row"},wo={class:"col text-right text-monospace"},To={class:"row"},xo={class:"col text-right text-monospace"};function Wo(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"info","component-id":c.vehicleId,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},O({"header-left":i(()=>[l(p,{icon:["fas","car"]}),h(" "+a(s.name),1)]),default:i(()=>[s.information!==void 0?(r(),g(d,{key:0,title:"Fahrzeuginformationen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",mo,[o[0]||(o[0]=t("div",{class:"col pr-0"},"Hersteller",-1)),t("div",uo,a(s.information.manufacturer),1)]),t("div",go,[o[1]||(o[1]=t("div",{class:"col pr-0"},"Modell",-1)),t("div",ho,a(s.information.model),1)])]),_:1})):y("",!0),l(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",bo,[o[2]||(o[2]=t("div",{class:"col pr-0 text-right"},"Ladestand",-1)),t("div",fo,a(s.soc)+" %",1)]),t("div",_o,[o[3]||(o[3]=t("div",{class:"col pr-0 text-right"},"Reichweite",-1)),t("div",vo,a(s.socRange)+" km",1)]),t("div",yo,[o[4]||(o[4]=t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel",-1)),t("div",wo,a(s.socTimestamp),1)]),t("div",To,[o[5]||(o[5]=t("div",{class:"col pr-0 text-right"},"Kilometerstand",-1)),t("div",xo,a(s.socOdometer)+" km",1)])]),_:1})]),_:2},[s.soc!="-"?{name:"header-right",fn:i(()=>[h(a(s.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const ko=W(po,[["render",Wo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(ot);rt.register(nt,ct,lt,dt,pt,mt,ut,gt,ht);const Bo={name:"ElectricityPricingCard",components:{StatusCard:N,FontAwesomeIcon:q,ChartjsLine:it},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/optional/ep/flexible_tariff/get/fault_state",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/get/fault_str",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/get/prices",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/ep/get/prices",writeable:!1},{topic:"openWB/optional/ep/grid_fee/get/fault_state",writeable:!1},{topic:"openWB/optional/ep/grid_fee/get/fault_str",writeable:!1},{topic:"openWB/optional/ep/grid_fee/get/prices",writeable:!1},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!1}],chartDatasets:{datasets:[{label:"Gesamtpreis",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(0, 149, 0, 0.9)",backgroundColor:"rgba(0, 149, 0, 0.7)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}},{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(139, 0, 0, 0.9)",backgroundColor:"rgba(139, 0, 0, 0.9)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}},{label:"Netzentgelt",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.4)",backgroundColor:"rgba(255, 0, 0, 0.4)",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:!0,position:"top",labels:{filter:function(e,o){return!o.datasets[e.datasetIndex].hidden}}}},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},callback:this.formatTickLabel,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:{electricityPricingConfigured(){const e=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"],o=this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"];return e&&e.type||o&&o.type},chartDataRead(){return this.chartDataObject.datasets.some(o=>o.data!==void 0&&!o.hidden)},chartDataObject(){const e=JSON.parse(JSON.stringify(this.chartDatasets)),o=this.getEndOfToday();let c=null;if(this.$store.state.mqtt["openWB/optional/ep/get/prices"]){var T=this.$store.state.mqtt["openWB/optional/ep/get/prices"],v=[];for(const[u,_]of Object.entries(T))v.push({timestamp:u*1e3,price:_*1e5});if(v.length>0){const u=v.slice(-1)[0];let _=o;if(v.length>1){const f=v.slice(-2,-1)[0];_=u.timestamp+u.timestamp-f.timestamp-1}v.push({timestamp:_,price:u.price})}e.datasets[0].data=v,c=e.datasets[0].data.slice(-1)[0].timestamp}else e.datasets[0].hidden=!0;if(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type&&this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/prices"],p=[];for(const[u,_]of Object.entries(s))c&&u*1e3>c||p.push({timestamp:u*1e3,price:_*1e5});if(p.length>0){const u=p.slice(-1)[0];let _=o;if(p.length>1){const f=p.slice(-2,-1)[0];_=u.timestamp+u.timestamp-f.timestamp-1}p.push({timestamp:_,price:u.price})}e.datasets[1].data=p}else e.datasets[1].hidden=!0;if(this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type&&this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/prices"]){var d=this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/prices"],m=[];for(const[u,_]of Object.entries(d))c&&u*1e3>c||m.push({timestamp:u*1e3,price:_*1e5});if(m.length>0){const u=m.slice(-1)[0];let _=o;if(m.length>1){const f=m.slice(-2,-1)[0];_=u.timestamp+u.timestamp-f.timestamp-1}m.push({timestamp:_,price:u.price})}e.datasets[2].data=m}else e.datasets[2].hidden=!0;return e},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/ep/flexible_tariff"}},combinedState(){const e=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/fault_state"]||0,o=this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/fault_state"]||0;return Math.max(e,o)},combinedStateMessage(){const e=[];if(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type){const c=(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/fault_state"]||0)>0?this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/fault_str"]:"Kein Fehler.";e.push(`Stromtarif: ${c}`)}if(this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type){const c=(this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/fault_state"]||0)>0?this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/fault_str"]:"Kein Fehler.";e.push(`Netzentgelt: ${c}`)}return e.length>0?e.join(` `):void 0},tariffProvider(){return this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.name||null},gridFeeProvider(){return this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.name||null},showLegend(){const e=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type,o=this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type;return e&&o},dynamicChartOptions(){const e=JSON.parse(JSON.stringify(this.chartOptions));return e.plugins.legend.display=this.showLegend,e.scales.x.ticks.callback=this.formatTickLabel,e}},methods:{getEndOfToday(){return new Date().setHours(23,59,59,999).valueOf()},formatTickLabel(e){const o=new Date(e);return`${this.getEndOfToday()[l(p,{icon:["fas","ranking-star"]}),o[0]||(o[0]=h(" Variable Strompreise ",-1))]),"header-right":i(()=>[h(a(s.currentPrice)+" ct/kWh",1)]),default:i(()=>[l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{header:i(()=>[...o[1]||(o[1]=[h("Tarifinformationen",-1)])]),default:i(()=>[s.tariffProvider?(r(),b("div",$o,[o[2]||(o[2]=t("div",{class:"col-xl-3 pr-0"},"Stromtarif:",-1)),t("div",qo,a(s.tariffProvider),1)])):y("",!0),s.gridFeeProvider?(r(),b("div",Co,[o[3]||(o[3]=t("div",{class:"col-xl-3 pr-0"},"Netzentgelte:",-1)),t("div",No,a(s.gridFeeProvider),1)])):y("",!0)]),_:1}),l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",So,[s.chartDataRead?(r(),g(m,{key:0,ref:"myChart",data:s.chartDataObject,options:s.dynamicChartOptions},null,8,["data","options"])):y("",!0)])]),_:1})]),_:1},8,["state","state-message"])):y("",!0)}const Ao=W(Bo,[["render",Po],["__scopeId","data-v-6a18833c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityPricingCard.vue"]]),Io={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:ko,ElectricityPricingCard:Ao},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/bat/get/power",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!1},{topic:"openWB/pv/get/power",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1}]}},computed:{installedChargePoints:{get(){return Object.keys(this.getWildcardTopics("openWB/chargepoint/+/config")).map(e=>{let o=e.match(/^openWB\/chargepoint\/(\d+)\/config$/);return o?parseInt(o[1]):null}).filter(e=>e!==null)}},showChargePointSumCard:{get(){return this.$store.state.mqtt["openWB/chargepoint/get/power"]!==void 0&&this.$store.state.mqtt["openWB/general/extern"]===!1&&this.installedChargePoints.length>1}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},showInverterSumCard:{get(){return this.$store.state.mqtt["openWB/pv/get/power"]!==void 0&&this.$store.state.mqtt["openWB/general/extern"]===!1&&Object.keys(this.inverterConfigs).length>1}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},showBatterySumCard:{get(){return this.$store.state.mqtt["openWB/bat/get/power"]!==void 0&&this.$store.state.mqtt["openWB/general/extern"]===!1&&Object.keys(this.batteryConfigs).length>1}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicles:{get(){if(this.$store.state.mqtt["openWB/general/extern"]===!0)return[];let e=this.getWildcardTopics("openWB/vehicle/+/info");return Object.keys(e).map(o=>{let c=o.match(/^openWB\/vehicle\/(\d+)\/info$/);return c?parseInt(c[1]):null})}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},showElectricityPricingCard:{get(){return(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type||this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type)&&this.$store.state.mqtt["openWB/general/extern"]===!1}}},methods:{filterComponentsByType(e,o){return Object.keys(e).filter(c=>e[c].type.includes(o)).reduce((c,T)=>({...c,[T]:e[T]}),{})}}},Oo={class:"status"};function Lo(e,o,c,T,v,s){const p=n("charge-point-sum-card"),d=n("charge-point-card"),m=n("counter-card"),u=n("inverter-sum-card"),_=n("inverter-card"),f=n("battery-sum-card"),x=n("battery-card"),L=n("vehicle-card"),j=n("io-device-card"),D=n("electricity-pricing-card");return r(),b("div",Oo,[s.showChargePointSumCard?(r(),g(p,{key:0})):y("",!0),(r(!0),b(B,null,k(s.installedChargePoints,w=>(r(),g(d,{key:w,"charge-point-id":w},null,8,["charge-point-id"]))),128)),(r(!0),b(B,null,k(s.counterConfigs,w=>(r(),g(m,{key:w.id,counter:w},null,8,["counter"]))),128)),s.showInverterSumCard?(r(),g(u,{key:1})):y("",!0),(r(!0),b(B,null,k(s.inverterConfigs,w=>(r(),g(_,{key:w.id,inverter:w},null,8,["inverter"]))),128)),s.showBatterySumCard?(r(),g(f,{key:2})):y("",!0),(r(!0),b(B,null,k(s.batteryConfigs,w=>(r(),g(x,{key:w.id,battery:w},null,8,["battery"]))),128)),(r(!0),b(B,null,k(s.vehicles,w=>(r(),g(L,{key:w,"vehicle-id":w},null,8,["vehicle-id"]))),128)),(r(!0),b(B,null,k(s.ioDeviceConfigs,w=>(r(),g(j,{key:w.id,"io-device":w},null,8,["io-device"]))),128)),s.showElectricityPricingCard?(r(),g(D,{key:3})):y("",!0)])}const Ro=W(Io,[["render",Lo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Ro as default}; diff --git a/web/settings/assets/Support-DdqSn3pe.js b/web/settings/assets/Support-LbG1Bt3q.js similarity index 96% rename from web/settings/assets/Support-DdqSn3pe.js rename to web/settings/assets/Support-LbG1Bt3q.js index 04a5292cac..2dabee1cbc 100644 --- a/web/settings/assets/Support-DdqSn3pe.js +++ b/web/settings/assets/Support-LbG1Bt3q.js @@ -1,3 +1,3 @@ -import{F as V,l as W,g as F}from"./vendor-fortawesome-DD1DIYBi.js";import{C as A}from"./index-BBXHIMfY.js";import{_ as C,l as d,k as f,e as h,m as n,q as s,A as t,x as l,y as w,D as z,j as M,u as k,K as x}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";W.add(F);const q={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[A],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/device/+/config",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],showDeprecatedFirmwareModal:!1,email:void 0,components:void 0,subject:void 0,ticketNumber:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,subject:this.subject,ticketNumber:this.ticketNumber,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){if(this.components!==void 0)return this.components;let r="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const m of Object.values(e)){const p=m.id,o=m.info?.manufacturer||"N/A",u=m.info?.model||"N/A";r+=`(${p}) Hersteller: ${o}, Modell: ${u} +import{F as V,l as W,g as F}from"./vendor-fortawesome-CBc-2W7w.js";import{C as A}from"./index-CyH1Au4V.js";import{_ as C,l as d,k as f,e as h,m as n,q as s,A as t,x as l,y as w,D as z,j as M,u as k,K as x}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";W.add(F);const q={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[A],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/device/+/config",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],showDeprecatedFirmwareModal:!1,email:void 0,components:void 0,subject:void 0,ticketNumber:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,subject:this.subject,ticketNumber:this.ticketNumber,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){if(this.components!==void 0)return this.components;let r="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const m of Object.values(e)){const p=m.id,o=m.info?.manufacturer||"N/A",u=m.info?.model||"N/A";r+=`(${p}) Hersteller: ${o}, Modell: ${u} `}return r.trim()},vehicleInfo(){if(this.vehicles!==void 0)return this.vehicles;let r="";const e=this.getWildcardTopics("openWB/vehicle/+/info");for(const[m,p]of Object.entries(e)){const o=parseInt(m.split("/")[2]);if(o!==0){const u=p.manufacturer||"N/A",a=p.model||"N/A";r+=`(${o}) Hersteller: ${u}, Modell: ${a} `}}return r.trim()},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"]}},beforeMount(){this.sendSystemCommand("systemFetchVersions")},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.sendSystemCommand("sendDebug",this.debugData),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}},checkFirmware(){this.updateAvailable?this.showDeprecatedFirmwareModal=!0:this.sendDebugMessage()},verifyModalInput(r){this.showDeprecatedFirmwareModal=!1,r=="confirm"&&this.sendDebugMessage()},sendSystemCommand(r,e={}){this.$emit("sendCommand",{command:r,data:e})}}},N={class:"support"},I={name:"supportForm"},T={key:1},j={key:0},U={class:"row justify-content-center"};function H(r,e,m,p,o,u){const a=d("router-link"),v=d("openwb-base-modal-dialog"),b=d("openwb-base-alert"),y=d("FontAwesomeIcon"),g=d("openwb-base-text-input"),c=d("openwb-base-textarea"),B=d("openwb-base-click-button"),S=d("openwb-base-card"),D=d("font-awesome-icon");return f(),h(x,null,[n(v,{show:o.showDeprecatedFirmwareModal,title:"Achtung: Veraltete Software!",subtype:"danger","prevent-close":!0,buttons:[{text:"Trotzdem versenden",event:"confirm",subtype:"danger"},{text:"Nicht versenden",event:"closeDialog"}],onModalResult:e[0]||(e[0]=i=>u.verifyModalInput(i))},{default:s(()=>[e[9]||(e[9]=t(" Möglicherweise wurde das Problem bereits behoben.",-1)),e[10]||(e[10]=l("br",null,null,-1)),e[11]||(e[11]=t(" Bitte führe vor dem Absenden ein ",-1)),n(a,{to:"/System/SystemConfiguration"},{default:s(()=>[...e[8]||(e[8]=[t(" Update ",-1)])]),_:1}),e[12]||(e[12]=t(" durch.",-1)),e[13]||(e[13]=l("br",null,null,-1)),e[14]||(e[14]=t(" Falls ein Update nicht möglich ist, kann der Systembericht dennoch versendet werden. Falls kein Update gewünscht ist, bieten wir auch über unseren Partner WB Solution GmbH ",-1)),e[15]||(e[15]=l("a",{href:"https://wb-solution.de/produkt/support-token-aeltere-version/",target:"_blank",rel:"noopener noreferrer"},"Support für ältere Softwareversionen",-1)),e[16]||(e[16]=t(" an. ",-1))]),_:1},8,["show"]),l("div",N,[l("form",I,[r.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(f(),w(b,{key:0,subtype:"danger"},{default:s(()=>[e[18]||(e[18]=t(" Du musst der ",-1)),n(a,{to:"/System/LegalSettings"},{default:s(()=>[...e[17]||(e[17]=[t(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=t(" zustimmen, um einen Systembericht senden zu können. ",-1))]),_:1})):(f(),h("div",T,[n(b,{subtype:"success"},{default:s(()=>[e[21]||(e[21]=t(" Du hast der ",-1)),n(a,{to:"/System/LegalSettings"},{default:s(()=>[...e[20]||(e[20]=[t(" Datenschutzerklärung ",-1)])]),_:1}),e[22]||(e[22]=t(" zugestimmt und kannst Systemberichte senden. ",-1))]),_:1}),n(S,{title:"Systembericht"},z({default:s(()=>[r.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(f(),h("div",j,[n(b,{subtype:"danger"},{default:s(()=>[...e[23]||(e[23]=[t(' Vergewissere Dich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1)])]),_:1}),n(b,{subtype:"info"},{default:s(()=>[l("ul",null,[l("li",null,[e[24]||(e[24]=t(" Lies bitte den Hilfetext, der durch Klick auf das ",-1)),n(y,{icon:["far","question-circle"]}),e[25]||(e[25]=t(" angezeigt wird. Nimm das Wiki zur Hilfe. ",-1))]),e[26]||(e[26]=l("li",null," Stelle beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1)),e[27]||(e[27]=l("li",null," Stelle sicher, dass der richtige Lademodus gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1)),e[28]||(e[28]=l("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Du erhältst ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei Dir. Bitte kontrolliere daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhältst Du trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes vermutlich fehlgeschlagen. ",-1))])]),_:1}),n(g,{modelValue:o.email,"onUpdate:modelValue":e[1]||(e[1]=i=>o.email=i),title:"E-Mail",required:"",subtype:"email"},{help:s(()=>[...e[29]||(e[29]=[t(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ",-1)])]),_:1},8,["modelValue"]),n(g,{modelValue:o.subject,"onUpdate:modelValue":e[2]||(e[2]=i=>o.subject=i),title:"Betreff",required:"",minlength:"15",maxlength:"100"},{help:s(()=>[...e[30]||(e[30]=[t(" Du kannst hier einen kurzen Titel für dein Problem angeben. ",-1)])]),_:1},8,["modelValue"]),n(g,{modelValue:o.ticketNumber,"onUpdate:modelValue":e[3]||(e[3]=i=>o.ticketNumber=i),title:"Bestehende Ticketnummer",maxlength:"8",pattern:"[1-9][0-9]{7}"},{help:s(()=>[...e[31]||(e[31]=[t(" Hier kann eine bereits bestehende Ticketnummer eingegeben werden, damit das Ticket schneller zugeordnet werden kann. ",-1)])]),_:1},8,["modelValue"]),n(g,{title:"openWB Seriennummer",required:"","model-value":r.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[4]||(e[4]=i=>r.updateState("openWB/system/serial_number",i))},{help:s(()=>[...e[32]||(e[32]=[t(" Die Seriennummer der openWB findest Du außen am, bei älteren Installationen innen im Gehäuse. Du kannst uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden!",-1),l("br",null,null,-1),t(" Bei einer gekauften openWB wird die Seriennummer automatisch ermittelt. ",-1)])]),_:1},8,["model-value"]),n(c,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500","model-value":u.installedComponents,"onUpdate:modelValue":e[5]||(e[5]=i=>o.components=i)},{help:s(()=>[e[34]||(e[34]=t(" Gib hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind.",-1)),e[35]||(e[35]=l("br",null,null,-1)),n(a,{to:"/HardwareInstallation"},{default:s(()=>[...e[33]||(e[33]=[t(" Die Angaben können auch direkt in der Konfiguration der Komponenten dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),n(c,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500","model-value":u.vehicleInfo,"onUpdate:modelValue":e[6]||(e[6]=i=>o.vehicles=i)},{help:s(()=>[e[37]||(e[37]=t(" Gib hier an, welche Fahrzeuge geladen (Hersteller, Modell, Baujahr).",-1)),e[38]||(e[38]=l("br",null,null,-1)),n(a,{to:"/VehicleConfiguration"},{default:s(()=>[...e[36]||(e[36]=[t(" Die Angaben können auch direkt in der Konfiguration der Fahrzeuge dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),n(c,{modelValue:o.message,"onUpdate:modelValue":e[7]||(e[7]=i=>o.message=i),title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500"},null,8,["modelValue"])])):k("",!0)]),_:2},[r.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[l("div",U,[n(B,{class:M(["col-4",o.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!o.enableSendDebugButton,onButtonClicked:u.checkFirmware},{default:s(()=>[...e[39]||(e[39]=[t(" Absenden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),o.enableSendDebugButton?k("",!0):(f(),w(b,{key:0,subtype:"success"},{default:s(()=>[e[40]||(e[40]=t(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Du kannst diese Seite jetzt verlassen. ",-1)),n(D,{icon:["fas","check"]})]),_:1}))]))])])],64)}const O=C(q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{O as default}; diff --git a/web/settings/assets/SurplusChargeConfiguration-C7J2uSph.js b/web/settings/assets/SurplusChargeConfiguration-Mmn_2MTQ.js similarity index 97% rename from web/settings/assets/SurplusChargeConfiguration-C7J2uSph.js rename to web/settings/assets/SurplusChargeConfiguration-Mmn_2MTQ.js index cf6f1e8150..362b90b8d4 100644 --- a/web/settings/assets/SurplusChargeConfiguration-C7J2uSph.js +++ b/web/settings/assets/SurplusChargeConfiguration-Mmn_2MTQ.js @@ -1 +1 @@ -import{C as f}from"./index-BBXHIMfY.js";import{S as w}from"./SystemVersion-ClVKOJRu.js";import{l as v,a4 as _,ag as W,ah as z}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as B,l as g,k as h,e as p,x as i,m as a,q as l,A as t,J as k}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";v.add(_,W,z);const S={name:"OpenwbSurplusChargeConfigView",components:{},mixins:[f,w],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/chargemode_config/pv_charging/control_range",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/feed_in_yield",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/phase_switch_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_threshold",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_threshold",writeable:!0},{topic:"openWB/general/extern",writeable:!1}],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;let e=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"];var d="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?d="export":e[0]===0&&e[1]===230?d="import":e[0]===-115&&e[1]===115?d="balanced":d="individual"),d},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}}},watch:{controlMode(n){this.calculatedControlMode=n}}},y={class:"pvChargeConfig"},V={name:"pvChargeConfigForm"},L={key:0},P={key:1},q=["href"];function E(n,e,d,U,C,o){const u=g("openwb-base-alert"),m=g("openwb-base-button-group-input"),s=g("openwb-base-number-input"),c=g("openwb-base-card"),b=g("openwb-base-submit-buttons");return h(),p("div",y,[i("form",V,[a(c,{title:"Regelparameter"},{default:l(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(h(),p("div",L,[a(u,{subtype:"info"},{default:l(()=>[...e[13]||(e[13]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(h(),p("div",P,[a(m,{modelValue:o.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>o.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:l(()=>[...e[14]||(e[14]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),i("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),i("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])]),_:1},8,["modelValue"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:l(()=>[...e[15]||(e[15]=[t(" Untere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:l(()=>[...e[16]||(e[16]=[t(" Obere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),e[32]||(e[32]=i("hr",null,null,-1)),a(u,{subtype:o.chargingSwitchRange<1400?"danger":"info"},{default:l(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+k((o.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),a(s,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:l(()=>[...e[17]||(e[17]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),i("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:l(()=>[...e[18]||(e[18]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[33]||(e[33]=i("hr",null,null,-1)),a(u,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:l(()=>[...e[19]||(e[19]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])]),_:1},8,["subtype"]),a(s,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:l(()=>[...e[20]||(e[20]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:l(()=>[...e[21]||(e[21]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[34]||(e[34]=i("hr",null,null,-1)),a(m,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches"],"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",r))},{help:l(()=>[...e[22]||(e[22]=[t(" Phasenumschaltungen werden zum Schutz der EV- und WB-Hardware begrenzt.",-1),i("br",null,null,-1),t(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),i("br",null,null,-1),t(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phase_switch_delay"],"onUpdate:modelValue":e[8]||(e[8]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/phase_switch_delay",r))},{help:l(()=>[...e[23]||(e[23]=[t(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),i("br",null,null,-1),t(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])]),_:1},8,["model-value"]),e[35]||(e[35]=i("hr",null,null,-1)),a(s,{title:"Regelpunkt Einspeisegrenze",min:-1e3,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:l(()=>[e[24]||(e[24]=t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1)),e[25]||(e[25]=i("br",null,null,-1)),e[26]||(e[26]=t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter in irgendeiner Form abgeregelt wird Weitere Infos dazu im ",-1)),i("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:einstell-konfig:ladeeinstellungen:pv-laden-speicherbeachtung#regelpunkt_einspeisegrenze`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Beachtung der Einspeisegrenze ",8,q),e[27]||(e[27]=t(".",-1)),e[28]||(e[28]=i("br",null,null,-1)),e[29]||(e[29]=t(' Bei Erreichen dieses Werts wird die PV-Ladung nacheinander für jedes Fahrzeug im PV-Modus gestartet, bei welchem "Einspeisegrenze beachten" im Ladeprofil aktiviert ist, dies setzt die Einschaltschwelle außer kraft!',-1)),e[30]||(e[30]=i("br",null,null,-1)),e[31]||(e[31]=t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1))]),_:1},8,["model-value"])]))]),_:1}),a(b,{"form-name":"pvChargeConfigForm",onSave:e[10]||(e[10]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[11]||(e[11]=r=>n.$emit("reset")),onDefaults:e[12]||(e[12]=r=>n.$emit("defaults"))})])])}const F=B(S,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SurplusChargeConfiguration.vue"]]);export{F as default}; +import{C as f}from"./index-CyH1Au4V.js";import{S as w}from"./SystemVersion-DQAfG1DR.js";import{l as v,a4 as _,ag as W,ah as z}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,l as g,k as h,e as p,x as i,m as a,q as l,A as t,J as k}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";v.add(_,W,z);const S={name:"OpenwbSurplusChargeConfigView",components:{},mixins:[f,w],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/chargemode_config/pv_charging/control_range",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/feed_in_yield",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/phase_switch_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_threshold",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_threshold",writeable:!0},{topic:"openWB/general/extern",writeable:!1}],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;let e=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"];var d="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?d="export":e[0]===0&&e[1]===230?d="import":e[0]===-115&&e[1]===115?d="balanced":d="individual"),d},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}}},watch:{controlMode(n){this.calculatedControlMode=n}}},y={class:"pvChargeConfig"},V={name:"pvChargeConfigForm"},L={key:0},P={key:1},q=["href"];function E(n,e,d,U,C,o){const u=g("openwb-base-alert"),m=g("openwb-base-button-group-input"),s=g("openwb-base-number-input"),c=g("openwb-base-card"),b=g("openwb-base-submit-buttons");return h(),p("div",y,[i("form",V,[a(c,{title:"Regelparameter"},{default:l(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(h(),p("div",L,[a(u,{subtype:"info"},{default:l(()=>[...e[13]||(e[13]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(h(),p("div",P,[a(m,{modelValue:o.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>o.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:l(()=>[...e[14]||(e[14]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),i("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),i("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])]),_:1},8,["modelValue"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:l(()=>[...e[15]||(e[15]=[t(" Untere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:l(()=>[...e[16]||(e[16]=[t(" Obere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),e[32]||(e[32]=i("hr",null,null,-1)),a(u,{subtype:o.chargingSwitchRange<1400?"danger":"info"},{default:l(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+k((o.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),a(s,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:l(()=>[...e[17]||(e[17]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),i("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:l(()=>[...e[18]||(e[18]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[33]||(e[33]=i("hr",null,null,-1)),a(u,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:l(()=>[...e[19]||(e[19]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])]),_:1},8,["subtype"]),a(s,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:l(()=>[...e[20]||(e[20]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:l(()=>[...e[21]||(e[21]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[34]||(e[34]=i("hr",null,null,-1)),a(m,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches"],"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",r))},{help:l(()=>[...e[22]||(e[22]=[t(" Phasenumschaltungen werden zum Schutz der EV- und WB-Hardware begrenzt.",-1),i("br",null,null,-1),t(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),i("br",null,null,-1),t(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phase_switch_delay"],"onUpdate:modelValue":e[8]||(e[8]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/phase_switch_delay",r))},{help:l(()=>[...e[23]||(e[23]=[t(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),i("br",null,null,-1),t(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])]),_:1},8,["model-value"]),e[35]||(e[35]=i("hr",null,null,-1)),a(s,{title:"Regelpunkt Einspeisegrenze",min:-1e3,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:l(()=>[e[24]||(e[24]=t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1)),e[25]||(e[25]=i("br",null,null,-1)),e[26]||(e[26]=t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter in irgendeiner Form abgeregelt wird Weitere Infos dazu im ",-1)),i("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:einstell-konfig:ladeeinstellungen:pv-laden-speicherbeachtung#regelpunkt_einspeisegrenze`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Beachtung der Einspeisegrenze ",8,q),e[27]||(e[27]=t(".",-1)),e[28]||(e[28]=i("br",null,null,-1)),e[29]||(e[29]=t(' Bei Erreichen dieses Werts wird die PV-Ladung nacheinander für jedes Fahrzeug im PV-Modus gestartet, bei welchem "Einspeisegrenze beachten" im Ladeprofil aktiviert ist, dies setzt die Einschaltschwelle außer kraft!',-1)),e[30]||(e[30]=i("br",null,null,-1)),e[31]||(e[31]=t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1))]),_:1},8,["model-value"])]))]),_:1}),a(b,{"form-name":"pvChargeConfigForm",onSave:e[10]||(e[10]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[11]||(e[11]=r=>n.$emit("reset")),onDefaults:e[12]||(e[12]=r=>n.$emit("defaults"))})])])}const F=B(S,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SurplusChargeConfiguration.vue"]]);export{F as default}; diff --git a/web/settings/assets/SystemConfiguration-BZnhVkFh.js b/web/settings/assets/SystemConfiguration-BYwqt7v1.js similarity index 98% rename from web/settings/assets/SystemConfiguration-BZnhVkFh.js rename to web/settings/assets/SystemConfiguration-BYwqt7v1.js index 1b89f45bd5..a61e7b35b5 100644 --- a/web/settings/assets/SystemConfiguration-BZnhVkFh.js +++ b/web/settings/assets/SystemConfiguration-BYwqt7v1.js @@ -1 +1 @@ -import{F as z,l as U,aB as E,u as x,an as L,a9 as R,aC as j}from"./vendor-fortawesome-DD1DIYBi.js";import{C as F}from"./index-BBXHIMfY.js";import{_ as D,l as h,k as p,e as g,y as B,q as u,x as a,m as r,u as y,j as k,K as V,L as q,J as W,A as d}from"./vendor-JxinjXxC.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";U.add(E,x,L,R,j);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:z},mixins:[F],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/current_branch",writeable:!1},{topic:"openWB/chargepoint/+/get/version",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/available_branches",writeable:!1},{topic:"openWB/system/current_branch",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/current_missing_commits",writeable:!1},{topic:"openWB/system/hostname",writeable:!1},{topic:"openWB/system/ip_address",writeable:!1},{topic:"openWB/system/mac_address",writeable:!1},{topic:"openWB/system/secondary_auto_update",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/system/version",writeable:!1}],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[i,f]of Object.entries(t))f.type==="external_openwb"&&(e[i]=f);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]!==void 0&&this.$store.state.mqtt["openWB/system/available_branches"]!==void 0&&this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",i="master",f=[t,e],c=(s,l)=>s.value==l.value?0:s.value==t?-1:l.value==t?1:s.value==e?-1:l.value==e?1:s.value==i?-1:l.value==i||s.value>l.value?1:s.value{const m=l=>{const b=l.split("-"),v=b[0].split(".");let w;return b.length>1?w=b[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(f.value),s=m(c.value);if(o.semver[0]=="*HEAD*")return-1;if(s.semver[0]=="*HEAD*")return 1;if(o.semver[0]>s.semver[0])return-1;if(o.semver[0]s.semver[1])return-1;if(o.semver[1]s.semver[2])return-1;if(o.semver[2]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]t[i].type.includes(e)).reduce((i,f)=>({...i,[f]:t[f]}),{})}}},I={class:"system"},O={key:1},N={name:"systemInfoForm"},P={name:"versionInfoForm"},Z={class:"missing-commits"},G={class:"row justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:1},X={key:0,name:"powerForm"},Y={class:"row justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={class:"col-md-4 d-flex py-1 justify-content-center"},se={key:1,name:"releaseChangeForm"},ne={class:"row justify-content-center"},re={class:"col-md-4 d-flex py-1 justify-content-center"};function ae(t,e,i,f,c,m){const o=h("openwb-base-button-group-input"),s=h("openwb-base-alert"),l=h("openwb-base-text-input"),b=h("openwb-base-card"),v=h("font-awesome-icon"),w=h("openwb-base-click-button"),A=h("openwb-base-heading"),S=h("openwb-base-submit-buttons"),C=h("router-link"),_=h("openwb-base-select-input");return p(),g("div",I,[i.installAssistantActive?y("",!0):(p(),B(s,{key:0,subtype:"danger"},{default:u(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:c.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>c.warningAcknowledged=n),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),c.warningAcknowledged||i.installAssistantActive?(p(),g("div",O,[r(b,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",N,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/serial_number"]=n),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/ip_address"]=n),title:"IP-Adresse",subtype:"host",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/mac_address"]=n),title:"MAC-Adresse",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/hostname"],"onUpdate:modelValue":e[4]||(e[4]=n=>t.$store.state.mqtt["openWB/system/hostname"]=n),title:"Hostname",subtype:"host",required:"",readonly:""},null,8,["modelValue"])])]),_:1},8,["collapsed"]),r(b,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",P,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[6]||(e[6]=n=>t.$store.state.mqtt["openWB/system/version"]=n),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),B(b,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:u(()=>[a("ul",Z,[(p(!0),g(V,null,q(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,$)=>(p(),g("li",{key:$},W(n),1))),128))])]),_:1})):y("",!0),i.installAssistantActive?y("",!0):(p(),B(s,{key:1,subtype:"danger"},{default:u(()=>[...e[20]||(e[20]=[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})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!i.installAssistantActive?(p(),B(s,{key:2,subtype:"danger"},{default:u(()=>[...e[21]||(e[21]=[d(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),d(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])]),_:1})):y("",!0),a("div",G,[a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=n=>m.systemUpdate())},{default:u(()=>[e[22]||(e[22]=d(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!i.installAssistantActive&&Object.keys(m.externalChargePoints).length>0?(p(),g("div",J,[e[27]||(e[27]=a("hr",null,null,-1)),r(A,null,{default:u(()=>[...e[23]||(e[23]=[d("Automatisches Update von Secondary openWBs",-1)])]),_:1}),r(s,{subtype:"info"},{default:u(()=>[...e[24]||(e[24]=[d(' Die automatische Aktualisierung für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Release-Version zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])]),_:1}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateState("openWB/system/secondary_auto_update",n))},{help:u(()=>[...e[25]||(e[25]=[d(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])]),_:1},8,["model-value"])])):y("",!0),a("table",K,[e[26]||(e[26]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),g(V,null,q(m.externalChargePoints,n=>(p(),g("tr",{key:n.id},[a("td",null,W(n.name),1),a("td",null,W(t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/version"]),1),a("td",null,W(n.configuration.ip_address),1)]))),128))])]),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",Q,[r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=n=>t.$emit("save",["openWB/system/secondary_auto_update"])),onReset:e[12]||(e[12]=n=>t.$emit("reset"))})])):y("",!0)])):y("",!0)])]),_:1},8,["collapsed"]),i.installAssistantActive?y("",!0):(p(),g("form",X,[r(b,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",Y,[a("div",ee,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=n=>m.systemReboot())},{default:u(()=>[e[34]||(e[34]=d(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1})]),a("div",te,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=n=>m.systemShutdown())},{default:u(()=>[e[35]||(e[35]=d(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1})])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[28]||(e[28]=[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}),r(s,{subtype:"info"},{default:u(()=>[e[30]||(e[30]=d(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[31]||(e[31]=a("br",null,null,-1)),e[32]||(e[32]=d("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:u(()=>[...e[29]||(e[29]=[d(" Systembericht ",-1)])]),_:1}),e[33]||(e[33]=d(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1})]),_:1})])),i.installAssistantActive?y("",!0):(p(),g("form",se,[r(b,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",ne,[a("div",re,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=n=>m.switchBranch())},{default:u(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[38]||(e[38]=d(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[36]||(e[36]=[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])]),_:1}),r(s,{subtype:"warning"},{default:u(()=>[...e[37]||(e[37]=[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.",-1),a("br",null,null,-1),d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),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.',-1),a("br",null,null,-1),d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])]),_:1}),r(_,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),r(_,{modelValue:c.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=n=>c.selectedTag=n),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):y("",!0)])}const pe=D(T,[["render",ae],["__scopeId","data-v-e5e73130"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SystemConfiguration.vue"]]);export{pe as default}; +import{F as z,l as U,aB as E,u as x,an as L,a9 as R,aC as j}from"./vendor-fortawesome-CBc-2W7w.js";import{C as F}from"./index-CyH1Au4V.js";import{_ as D,l as h,k as p,e as g,y as B,q as u,x as a,m as r,u as y,j as k,K as V,L as q,J as W,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";U.add(E,x,L,R,j);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:z},mixins:[F],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/current_branch",writeable:!1},{topic:"openWB/chargepoint/+/get/version",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/available_branches",writeable:!1},{topic:"openWB/system/current_branch",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/current_missing_commits",writeable:!1},{topic:"openWB/system/hostname",writeable:!1},{topic:"openWB/system/ip_address",writeable:!1},{topic:"openWB/system/mac_address",writeable:!1},{topic:"openWB/system/secondary_auto_update",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/system/version",writeable:!1}],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[i,f]of Object.entries(t))f.type==="external_openwb"&&(e[i]=f);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]!==void 0&&this.$store.state.mqtt["openWB/system/available_branches"]!==void 0&&this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",i="master",f=[t,e],c=(s,l)=>s.value==l.value?0:s.value==t?-1:l.value==t?1:s.value==e?-1:l.value==e?1:s.value==i?-1:l.value==i||s.value>l.value?1:s.value{const m=l=>{const b=l.split("-"),v=b[0].split(".");let w;return b.length>1?w=b[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(f.value),s=m(c.value);if(o.semver[0]=="*HEAD*")return-1;if(s.semver[0]=="*HEAD*")return 1;if(o.semver[0]>s.semver[0])return-1;if(o.semver[0]s.semver[1])return-1;if(o.semver[1]s.semver[2])return-1;if(o.semver[2]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]t[i].type.includes(e)).reduce((i,f)=>({...i,[f]:t[f]}),{})}}},I={class:"system"},O={key:1},N={name:"systemInfoForm"},P={name:"versionInfoForm"},Z={class:"missing-commits"},G={class:"row justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:1},X={key:0,name:"powerForm"},Y={class:"row justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={class:"col-md-4 d-flex py-1 justify-content-center"},se={key:1,name:"releaseChangeForm"},ne={class:"row justify-content-center"},re={class:"col-md-4 d-flex py-1 justify-content-center"};function ae(t,e,i,f,c,m){const o=h("openwb-base-button-group-input"),s=h("openwb-base-alert"),l=h("openwb-base-text-input"),b=h("openwb-base-card"),v=h("font-awesome-icon"),w=h("openwb-base-click-button"),A=h("openwb-base-heading"),S=h("openwb-base-submit-buttons"),C=h("router-link"),_=h("openwb-base-select-input");return p(),g("div",I,[i.installAssistantActive?y("",!0):(p(),B(s,{key:0,subtype:"danger"},{default:u(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:c.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>c.warningAcknowledged=n),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),c.warningAcknowledged||i.installAssistantActive?(p(),g("div",O,[r(b,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",N,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/serial_number"]=n),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/ip_address"]=n),title:"IP-Adresse",subtype:"host",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/mac_address"]=n),title:"MAC-Adresse",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/hostname"],"onUpdate:modelValue":e[4]||(e[4]=n=>t.$store.state.mqtt["openWB/system/hostname"]=n),title:"Hostname",subtype:"host",required:"",readonly:""},null,8,["modelValue"])])]),_:1},8,["collapsed"]),r(b,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",P,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[6]||(e[6]=n=>t.$store.state.mqtt["openWB/system/version"]=n),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),B(b,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:u(()=>[a("ul",Z,[(p(!0),g(V,null,q(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,$)=>(p(),g("li",{key:$},W(n),1))),128))])]),_:1})):y("",!0),i.installAssistantActive?y("",!0):(p(),B(s,{key:1,subtype:"danger"},{default:u(()=>[...e[20]||(e[20]=[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})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!i.installAssistantActive?(p(),B(s,{key:2,subtype:"danger"},{default:u(()=>[...e[21]||(e[21]=[d(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),d(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])]),_:1})):y("",!0),a("div",G,[a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=n=>m.systemUpdate())},{default:u(()=>[e[22]||(e[22]=d(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!i.installAssistantActive&&Object.keys(m.externalChargePoints).length>0?(p(),g("div",J,[e[27]||(e[27]=a("hr",null,null,-1)),r(A,null,{default:u(()=>[...e[23]||(e[23]=[d("Automatisches Update von Secondary openWBs",-1)])]),_:1}),r(s,{subtype:"info"},{default:u(()=>[...e[24]||(e[24]=[d(' Die automatische Aktualisierung für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Release-Version zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])]),_:1}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateState("openWB/system/secondary_auto_update",n))},{help:u(()=>[...e[25]||(e[25]=[d(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])]),_:1},8,["model-value"])])):y("",!0),a("table",K,[e[26]||(e[26]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),g(V,null,q(m.externalChargePoints,n=>(p(),g("tr",{key:n.id},[a("td",null,W(n.name),1),a("td",null,W(t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/version"]),1),a("td",null,W(n.configuration.ip_address),1)]))),128))])]),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",Q,[r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=n=>t.$emit("save",["openWB/system/secondary_auto_update"])),onReset:e[12]||(e[12]=n=>t.$emit("reset"))})])):y("",!0)])):y("",!0)])]),_:1},8,["collapsed"]),i.installAssistantActive?y("",!0):(p(),g("form",X,[r(b,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",Y,[a("div",ee,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=n=>m.systemReboot())},{default:u(()=>[e[34]||(e[34]=d(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1})]),a("div",te,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=n=>m.systemShutdown())},{default:u(()=>[e[35]||(e[35]=d(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1})])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[28]||(e[28]=[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}),r(s,{subtype:"info"},{default:u(()=>[e[30]||(e[30]=d(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[31]||(e[31]=a("br",null,null,-1)),e[32]||(e[32]=d("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:u(()=>[...e[29]||(e[29]=[d(" Systembericht ",-1)])]),_:1}),e[33]||(e[33]=d(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1})]),_:1})])),i.installAssistantActive?y("",!0):(p(),g("form",se,[r(b,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",ne,[a("div",re,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=n=>m.switchBranch())},{default:u(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[38]||(e[38]=d(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[36]||(e[36]=[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])]),_:1}),r(s,{subtype:"warning"},{default:u(()=>[...e[37]||(e[37]=[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.",-1),a("br",null,null,-1),d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),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.',-1),a("br",null,null,-1),d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])]),_:1}),r(_,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),r(_,{modelValue:c.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=n=>c.selectedTag=n),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):y("",!0)])}const pe=D(T,[["render",ae],["__scopeId","data-v-e5e73130"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SystemConfiguration.vue"]]);export{pe as default}; diff --git a/web/settings/assets/SystemVersion-ClVKOJRu.js b/web/settings/assets/SystemVersion-DQAfG1DR.js similarity index 81% rename from web/settings/assets/SystemVersion-ClVKOJRu.js rename to web/settings/assets/SystemVersion-DQAfG1DR.js index 7dcd16b573..97dc088770 100644 --- a/web/settings/assets/SystemVersion-ClVKOJRu.js +++ b/web/settings/assets/SystemVersion-DQAfG1DR.js @@ -1 +1 @@ -import{_ as e}from"./vendor-JxinjXxC.js";const t={computed:{systemVersion(){const s=this.$store.state.mqtt["openWB/system/version"]?.match(/\d+\.\d+\.\d+/);return s?s[0]:"2.1.8"}},mounted(){this.$root.doSubscribe(["openWB/system/version"])}},i=e(t,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/SystemVersion.vue"]]);export{i as S}; +import{_ as e}from"./vendor-Bo8v-nQD.js";const t={computed:{systemVersion(){const s=this.$store.state.mqtt["openWB/system/version"]?.match(/\d+\.\d+\.\d+/);return s?s[0]:"2.1.8"}},mounted(){this.$root.doSubscribe(["openWB/system/version"])}},i=e(t,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/SystemVersion.vue"]]);export{i as S}; diff --git a/web/settings/assets/TestingStore-D73y9Rra.js b/web/settings/assets/TestingStore-D88H008a.js similarity index 96% rename from web/settings/assets/TestingStore-D73y9Rra.js rename to web/settings/assets/TestingStore-D88H008a.js index 2cbc547655..f5a2ea7bc7 100644 --- a/web/settings/assets/TestingStore-D73y9Rra.js +++ b/web/settings/assets/TestingStore-D88H008a.js @@ -1 +1 @@ -import{C as B}from"./index-BBXHIMfY.js";import{S as O}from"./OpenwbSortableList-BnacrijU.js";import{_ as T,l as u,k as D,e as N,x as s,m as o,q as n,A as a,J as b}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";const Z={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopics:[]}}},A={class:"testingStore"},L={name:"testingStoreForm"};function G(t,e,J,j,F,W){const v=u("OpenwbBaseHeading"),x=u("OpenwbBaseSettingElement"),E=u("openwb-base-button-input"),f=u("openwb-base-button-group-input"),i=u("openwb-base-card"),g=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),d=u("openwb-base-number-input"),V=u("openwb-base-textarea"),S=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),y=u("openwb-base-checkbox-input"),$=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),r=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),N("div",A,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(v,null,{default:n(()=>[...e[34]||(e[34]=[a(" Basiselement ",-1)])]),_:1}),o(x,null,{title:n(()=>[...e[35]||(e[35]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])]),help:n(()=>[...e[36]||(e[36]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1}),o(v,null,{default:n(()=>[...e[37]||(e[37]=[a(" Abgeleitete Elemente ",-1)])]),_:1}),o(E,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>[...e[38]||(e[38]=[a(" Einfacher Click-Button für Aktionen. ",-1)])]),_:1}),o(f,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[39]||(e[39]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>[...e[40]||(e[40]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>[...e[41]||(e[41]=[a(" Eingabefeld für E-Mailadressen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>[...e[42]||(e[42]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>[...e[43]||(e[43]=[a(" Eingabefeld für URLs ",-1)])]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>[...e[44]||(e[44]=[a(" Eingabefeld für Benutzernamen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>[...e[45]||(e[45]=[a(" Eingabefeld für Zeiten ",-1)])]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>[...e[46]||(e[46]=[a(" Eingabefeld für ein Datum ",-1)])]),_:1},8,["model-value"]),o(p,{title:"8. Text (mit Add-Button)",subtype:"text","add-button":"",class:"mb-2","model-value":t.$store.state.examples.text8,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("text8",l)),"onInput:add":e[10]||(e[10]=l=>t.alert("Add button clicked!"))},{help:n(()=>[...e[47]||(e[47]=[a(" Eingabefeld mit einem Add-Button ",-1)])]),_:1},8,["model-value"]),e[53]||(e[53]=s("hr",null,null,-1)),o(d,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number1",l))},{help:n(()=>[...e[48]||(e[48]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(d,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("number2",l))},{help:n(()=>[...e[49]||(e[49]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])]),_:1},8,["model-value"]),o(d,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>[...e[50]||(e[50]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])]),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("password1",l))},{help:n(()=>[...e[51]||(e[51]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])]),_:1},8,["model-value"]),e[54]||(e[54]=s("hr",null,null,-1)),o(V,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("textarea1",l))},{help:n(()=>[...e[52]||(e[52]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(S,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("range1",l))},{help:n(()=>[...e[55]||(e[55]=[a(" Range ohne spezielle Labels ",-1)])]),_:1},8,["model-value"]),o(S,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("range2",l))},{help:n(()=>[...e[56]||(e[56]=[a(" Range mit speziellen Labels ",-1)])]),_:1},8,["model-value"]),e[62]||(e[62]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[19]||(e[19]=l=>t.updateState("select1",l))},{help:n(()=>[...e[57]||(e[57]=[a(" Select mit einfachen Optionen ",-1)])]),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("select2",l)),"onInput:add":e[21]||(e[21]=l=>t.alert("add button pressed"))},{help:n(()=>[...e[58]||(e[58]=[a(" Select mit Gruppen und Add-Button. ",-1)])]),_:1},8,["model-value"]),e[63]||(e[63]=s("hr",null,null,-1)),o(f,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[59]||(e[59]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[60]||(e[60]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1}),e[64]||(e[64]=s("hr",null,null,-1)),o(y,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("checkbox1",l))},{help:n(()=>[...e[61]||(e[61]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l))},{help:n(()=>[...e[65]||(e[65]=[a(" JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("json1",l,"text"))},{help:n(()=>[...e[66]||(e[66]=[a(" Text im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(d,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[27]||(e[27]=l=>t.updateState("json1",l,"number"))},{help:n(()=>[...e[67]||(e[67]=[a(" Zahl im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o($,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[28]||(e[28]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"]),o($,{title:"Tag Array mit Vorgaben","valid-elements":["1234","5678"],"model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[29]||(e[29]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>[...e[68]||(e[68]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])]),default:n(()=>[o(w,null,{help:n(()=>[...e[69]||(e[69]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])]),default:n(()=>[e[70]||(e[70]=a(" Das ist eine Überschrift ",-1))]),_:1}),o(r,null,{default:n(()=>[e[72]||(e[72]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>[...e[71]||(e[71]=[a("Kopiere mich!",-1)])]),_:1})]),_:1}),o(r,{subtype:"info"},{default:n(()=>[...e[73]||(e[73]=[a(" Infomeldung ",-1)])]),_:1}),o(r,{subtype:"warning"},{default:n(()=>[...e[74]||(e[74]=[a(" Warnmeldung ",-1)])]),_:1}),o(r,{subtype:"danger"},{default:n(()=>[...e[75]||(e[75]=[a(" Fehlermeldung ",-1)])]),_:1})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[30]||(e[30]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[31]||(e[31]=l=>t.$emit("save",[])),onReset:e[32]||(e[32]=l=>t.$emit("reset")),onDefaults:e[33]||(e[33]=l=>t.$emit("defaults"))})])])}const q=T(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{q as default}; +import{C as B}from"./index-CyH1Au4V.js";import{S as O}from"./OpenwbSortableList-BORHS8nd.js";import{_ as T,l as u,k as D,e as N,x as s,m as o,q as n,A as a,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const Z={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopics:[]}}},A={class:"testingStore"},L={name:"testingStoreForm"};function G(t,e,J,j,F,W){const v=u("OpenwbBaseHeading"),x=u("OpenwbBaseSettingElement"),E=u("openwb-base-button-input"),f=u("openwb-base-button-group-input"),i=u("openwb-base-card"),g=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),d=u("openwb-base-number-input"),V=u("openwb-base-textarea"),S=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),y=u("openwb-base-checkbox-input"),$=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),r=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),N("div",A,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(v,null,{default:n(()=>[...e[34]||(e[34]=[a(" Basiselement ",-1)])]),_:1}),o(x,null,{title:n(()=>[...e[35]||(e[35]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])]),help:n(()=>[...e[36]||(e[36]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1}),o(v,null,{default:n(()=>[...e[37]||(e[37]=[a(" Abgeleitete Elemente ",-1)])]),_:1}),o(E,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>[...e[38]||(e[38]=[a(" Einfacher Click-Button für Aktionen. ",-1)])]),_:1}),o(f,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[39]||(e[39]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>[...e[40]||(e[40]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>[...e[41]||(e[41]=[a(" Eingabefeld für E-Mailadressen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>[...e[42]||(e[42]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>[...e[43]||(e[43]=[a(" Eingabefeld für URLs ",-1)])]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>[...e[44]||(e[44]=[a(" Eingabefeld für Benutzernamen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>[...e[45]||(e[45]=[a(" Eingabefeld für Zeiten ",-1)])]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>[...e[46]||(e[46]=[a(" Eingabefeld für ein Datum ",-1)])]),_:1},8,["model-value"]),o(p,{title:"8. Text (mit Add-Button)",subtype:"text","add-button":"",class:"mb-2","model-value":t.$store.state.examples.text8,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("text8",l)),"onInput:add":e[10]||(e[10]=l=>t.alert("Add button clicked!"))},{help:n(()=>[...e[47]||(e[47]=[a(" Eingabefeld mit einem Add-Button ",-1)])]),_:1},8,["model-value"]),e[53]||(e[53]=s("hr",null,null,-1)),o(d,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number1",l))},{help:n(()=>[...e[48]||(e[48]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(d,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("number2",l))},{help:n(()=>[...e[49]||(e[49]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])]),_:1},8,["model-value"]),o(d,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>[...e[50]||(e[50]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])]),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("password1",l))},{help:n(()=>[...e[51]||(e[51]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])]),_:1},8,["model-value"]),e[54]||(e[54]=s("hr",null,null,-1)),o(V,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("textarea1",l))},{help:n(()=>[...e[52]||(e[52]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(S,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("range1",l))},{help:n(()=>[...e[55]||(e[55]=[a(" Range ohne spezielle Labels ",-1)])]),_:1},8,["model-value"]),o(S,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("range2",l))},{help:n(()=>[...e[56]||(e[56]=[a(" Range mit speziellen Labels ",-1)])]),_:1},8,["model-value"]),e[62]||(e[62]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[19]||(e[19]=l=>t.updateState("select1",l))},{help:n(()=>[...e[57]||(e[57]=[a(" Select mit einfachen Optionen ",-1)])]),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("select2",l)),"onInput:add":e[21]||(e[21]=l=>t.alert("add button pressed"))},{help:n(()=>[...e[58]||(e[58]=[a(" Select mit Gruppen und Add-Button. ",-1)])]),_:1},8,["model-value"]),e[63]||(e[63]=s("hr",null,null,-1)),o(f,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[59]||(e[59]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[60]||(e[60]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1}),e[64]||(e[64]=s("hr",null,null,-1)),o(y,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("checkbox1",l))},{help:n(()=>[...e[61]||(e[61]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l))},{help:n(()=>[...e[65]||(e[65]=[a(" JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("json1",l,"text"))},{help:n(()=>[...e[66]||(e[66]=[a(" Text im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(d,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[27]||(e[27]=l=>t.updateState("json1",l,"number"))},{help:n(()=>[...e[67]||(e[67]=[a(" Zahl im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o($,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[28]||(e[28]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"]),o($,{title:"Tag Array mit Vorgaben","valid-elements":["1234","5678"],"model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[29]||(e[29]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>[...e[68]||(e[68]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])]),default:n(()=>[o(w,null,{help:n(()=>[...e[69]||(e[69]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])]),default:n(()=>[e[70]||(e[70]=a(" Das ist eine Überschrift ",-1))]),_:1}),o(r,null,{default:n(()=>[e[72]||(e[72]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>[...e[71]||(e[71]=[a("Kopiere mich!",-1)])]),_:1})]),_:1}),o(r,{subtype:"info"},{default:n(()=>[...e[73]||(e[73]=[a(" Infomeldung ",-1)])]),_:1}),o(r,{subtype:"warning"},{default:n(()=>[...e[74]||(e[74]=[a(" Warnmeldung ",-1)])]),_:1}),o(r,{subtype:"danger"},{default:n(()=>[...e[75]||(e[75]=[a(" Fehlermeldung ",-1)])]),_:1})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[30]||(e[30]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[31]||(e[31]=l=>t.$emit("save",[])),onReset:e[32]||(e[32]=l=>t.$emit("reset")),onDefaults:e[33]||(e[33]=l=>t.$emit("defaults"))})])])}const q=T(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{q as default}; diff --git a/web/settings/assets/VehicleConfiguration--T3YyIjm.js b/web/settings/assets/VehicleConfiguration-TZSwJptx.js similarity index 96% rename from web/settings/assets/VehicleConfiguration--T3YyIjm.js rename to web/settings/assets/VehicleConfiguration-TZSwJptx.js index 9c79aa0723..2dfc31ed14 100644 --- a/web/settings/assets/VehicleConfiguration--T3YyIjm.js +++ b/web/settings/assets/VehicleConfiguration-TZSwJptx.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vehicle-BPW3tNQi.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-DD1DIYBi.js","assets/index-BBXHIMfY.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/vehicle-CPj_pr_x.js","assets/vehicle-DNvSQzxJ.js","assets/vehicle-u7nEjbHE.js","assets/vehicle-SqSIcJkM.js","assets/vehicle-DqI_P0GO.js","assets/vehicle-CzbURT4N.js","assets/vehicle-4ooF7u3O.js","assets/vehicle-DOhfCjDp.js","assets/vehicle-Cac3-Kjm.js","assets/SystemVersion-ClVKOJRu.js","assets/vehicle-B75xZfr2.js","assets/vehicle-BfwB5CmK.js","assets/vehicle-C8g_PIkP.js","assets/vehicle-CQZ24B5Z.js","assets/vehicle-Byenkt0o.js","assets/vehicle-CIkD544B.js","assets/vehicle-C8HZVIPP.js","assets/vehicle-C4ht6hjr.js","assets/vehicle-fQvTZi_E.js","assets/vehicle-mVzWIbRB.js","assets/vehicle-BIXm9LJK.js"])))=>i.map(i=>d[i]); -import{F as Z,l as O,ac as ae,ad as ie,a4 as R,Z as I,G as j,H,ax as J,aw as G,az as re,aA as ue,aq as $,av as Y,aj as Q,P as oe,d as de,a6 as se,ay as me,Y as ge}from"./vendor-fortawesome-DD1DIYBi.js";import{_ as V,C as X}from"./index-BBXHIMfY.js";import{_ as pe}from"./dynamic-import-helper-BheWnx7M.js";import{_ as q,l as c,k as d,e as p,y as b,q as a,A as i,J as w,m as l,x as g,a1 as he,a2 as ce,K as W,u as m,L as D,z as B,j as ee,D as x}from"./vendor-JxinjXxC.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function we(n,e,f,P,S,t){const y=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(y,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),p("div",Ve,[l(y,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),l(y,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const ke=q(ve,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);O.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:Z},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>V(()=>import("./vehicle-BPW3tNQi.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./cupra/vehicle.vue":()=>V(()=>import("./vehicle-CPj_pr_x.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./evcc/vehicle.vue":()=>V(()=>import("./vehicle-DNvSQzxJ.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./evnotify/vehicle.vue":()=>V(()=>import("./vehicle-u7nEjbHE.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./homeassistant/vehicle.vue":()=>V(()=>import("./vehicle-SqSIcJkM.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./http/vehicle.vue":()=>V(()=>import("./vehicle-DqI_P0GO.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./json/vehicle.vue":()=>V(()=>import("./vehicle-CzbURT4N.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./kia/vehicle.vue":()=>V(()=>import("./vehicle-4ooF7u3O.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./leaf/vehicle.vue":()=>V(()=>import("./vehicle-DOhfCjDp.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./manual/vehicle.vue":()=>V(()=>import("./vehicle-Cac3-Kjm.js"),__vite__mapDeps([19,20,1,2,3,4,5,6,7,8,9,10])),"./mercedeseq/vehicle.vue":()=>V(()=>import("./vehicle-B75xZfr2.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./mqtt/vehicle.vue":()=>V(()=>import("./vehicle-BfwB5CmK.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./ovms/vehicle.vue":()=>V(()=>import("./vehicle-C8g_PIkP.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./psa/vehicle.vue":()=>V(()=>import("./vehicle-CQZ24B5Z.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./psacc/vehicle.vue":()=>V(()=>import("./vehicle-Byenkt0o.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./renault/vehicle.vue":()=>V(()=>import("./vehicle-CIkD544B.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./skoda/vehicle.vue":()=>V(()=>import("./vehicle-C8HZVIPP.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./smarthello/vehicle.vue":()=>V(()=>import("./vehicle-C4ht6hjr.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./tesla/vehicle.vue":()=>V(()=>import("./vehicle-fQvTZi_E.js"),__vite__mapDeps([29,1,2,8,4,3,5,6,7,9,10])),"./tronity/vehicle.vue":()=>V(()=>import("./vehicle-mVzWIbRB.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./vwid/vehicle.vue":()=>V(()=>import("./vehicle-BIXm9LJK.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10]))}),`./${this.vehicle.type}/vehicle.vue`,3),errorComponent:ke})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,S,t){const y=c("font-awesome-icon"),h=c("openwb-base-alert"),k=c("openwb-base-heading");return d(),p(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(k,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=z=>t.updateConfiguration(z))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);O.add(R,I,j,H,J,G,re,ue,$,Y,Q);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},Ee={key:0},Le={key:1},Pe={key:2},Ue={key:3},Ae={key:4},We={key:5},Fe={key:1},Be={key:1},Me={key:7};function Te(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Le,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Ae,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),p("span",Fe,[l(k,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Termin",subtype:"time"},{help:a(()=>[...e[18]||(e[18]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",Be,[(d(!0),p(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[30]||(e[30]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>[...e[19]||(e[19]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])]),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:2,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[20]||(e[20]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[21]||(e[21]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[22]||(e[22]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:3,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[23]||(e[23]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:4,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[24]||(e[24]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(E,{key:5,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>[...e[25]||(e[25]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type)?(d(),b(M,{key:6,subtype:"danger"},{default:a(()=>[...e[26]||(e[26]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])]),_:1})):m("",!0),t.plan.limit.selected=="soc"?(d(),p("div",Me,[e[29]||(e[29]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>[...e[27]||(e[27]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])]),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>[...e[28]||(e[28]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])]),_:1})):m("",!0)])):m("",!0)]),_:1},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);O.add(R,I,j,H,J,G,Y,Q);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/dc_charging",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},xe={key:0},Ze={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},je={key:2};function He(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",xe,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Ze,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),p("span",Ie,[l(k,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(z,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",je,[(d(!0),p(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[20]||(e[20]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:3,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>[...e[16]||(e[16]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[17]||(e[17]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.limit.soc=v),title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[18]||(e[18]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])]),_:1},8,["modelValue"]),l(E,{title:"Energie-Limit",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>[...e[19]||(e[19]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])]),_:1},8,["title"])],64)}const Je=q(qe,[["render",He],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);O.add(de,Q,H,G,J,j,R,I,se,me,ge,$,Y);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:Z,FontAwesomeLayers:oe,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[X],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/soc_modules",writeable:!1},{topic:"openWB/vehicle/+/charge_template",writeable:!0},{topic:"openWB/vehicle/+/ev_template",writeable:!0},{topic:"openWB/vehicle/+/info",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!0},{topic:"openWB/vehicle/+/soc_module/config",writeable:!0},{topic:"openWB/vehicle/+/soc_module/general_config",writeable:!0},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0},{topic:"openWB/vehicle/template/ev_template/+",writeable:!0}],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/info")}},evTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/ev_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/charge_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n,changed_in_theme:!1}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n,changed_in_theme:!1}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const S=`card-${n}-${P}`,t=this.$refs[S],y=Array.isArray(t)?t[0]:t;y&&(y.isCollapsed=P!==e)})})}}},Ye={class:"vehicleConfig"},Qe={name:"vehicleConfigForm"},Xe={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},rn={key:0},un={key:1},on={key:0},dn={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),E=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),A=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),p(W,null,[l(y,{show:S.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,S.modalVehicleIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug "'+w(t.getVehicleName(S.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,S.modalEvTemplateIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug-Profil "'+w(t.getEvTemplateName(S.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,S.modalChargeTemplateIndex))},{default:a(()=>[i(' Willst Du das Lade-Profil "'+w(t.getChargeTemplateName(S.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Ye,[g("form",Qe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",Xe,[l(z,{subtype:"info"},{default:a(()=>[...e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",Ke,[(d(!0),p(W,null,D(t.vehicleIndexes,r=>(d(),b(U,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/name",o)},x({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),p("div",$e,[l(E,null,{default:a(()=>[...e[13]||(e[13]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1}),(n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]?.length??0)>0?(d(),p("div",en,[l(z,{subtype:"info"},{default:a(()=>[e[15]||(e[15]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[14]||(e[14]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[16]||(e[16]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),p("div",nn," Aktuell ist die Identifikation in den Einstellungen deaktiviert. ")):(d(),p("div",tn," Die Identifikation ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. "))]),_:1}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},{help:a(()=>[...e[17]||(e[17]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Fahrzeug zugeordnet sind. Mit diesen ID-Tags kann dieses Fahrzeug an Ladepunkten automatisch zugeordnet werden. ",-1)])]),_:1},8,["model-value"])])):(d(),p("div",ln,[l(z,{subtype:"info"},{default:a(()=>[e[19]||(e[19]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[18]||(e[18]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[20]||(e[20]=i(".",-1)),e[21]||(e[21]=g("br",null,null,-1)),e[22]||(e[22]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})])),e[23]||(e[23]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(r,o)},{help:a(()=>[...e[24]||(e[24]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Während des Ladevorgangs wird der Zeitstempel der SoC-Abfrage geprüft. Ist dieser älter als der Zeitstempel der vorherigen Abfrage, wird das Ergebnis verworfen, stattdessen eine Berechnung durchgeführt und auch so im Fahrzeugstatus vermerkt.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type?(d(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[25]||(e[25]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{help:a(()=>[...e[26]||(e[26]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[27]||(e[27]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[28]||(e[28]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[30]||(e[30]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[91]||(e[91]=g("hr",{class:"border-secondary"},null,-1)),l(E,null,{default:a(()=>[...e[32]||(e[32]=[i("Profile",-1)])]),_:1}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[33]||(e[33]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",rn,[l(z,{subtype:"info"},{default:a(()=>[...e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",un,[(d(!0),p(W,null,D(t.evTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!0},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[35]||(e[35]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[36]||(e[36]=[i(" Angaben zur Batterie ",-1)])]),_:1}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"battery_capacity")},{help:a(()=>[...e[37]||(e[37]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",on,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(o,u,"efficiency")},{help:a(()=>[...e[38]||(e[38]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(o,u,"bidi")},{help:a(()=>[...e[39]||(e[39]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),p("div",dn,[l(E,null,{default:a(()=>[...e[40]||(e[40]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(E,null,{default:a(()=>[e[41]||(e[41]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),p("span",sn," (AC) ")):m("",!0)]),_:1}),l(A,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(o,u,"nominal_difference")},{help:a(()=>[...e[42]||(e[42]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),p("span",mn," (AC) ")):m("",!0)]),_:1}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_phases")},{help:a(()=>[...e[44]||(e[44]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption")},{help:a(()=>[...e[45]||(e[45]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_phase_switch")},{help:a(()=>[...e[46]||(e[46]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_charge_stop")},{help:a(()=>[...e[47]||(e[47]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"keep_charge_active_duration")},{help:a(()=>[...e[48]||(e[48]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:L=>t.addEvTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:L=>t.removeEvTemplateModal(L,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[49]||(e[49]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",pn,[l(z,{subtype:"info"},{default:a(()=>[...e[50]||(e[50]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",hn,[(d(!0),p(W,null,D(t.chargeTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:L=>t.addChargeTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(L=>t.removeChargeTemplateModal(L,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[51]||(e[51]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[52]||(e[52]=[i(" Allgemeine Optionen ",-1)])]),_:1}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(o,u)},{help:a(()=>[...e[53]||(e[53]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:1},8,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(o,u,"prio")},{help:a(()=>[...e[54]||(e[54]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(o,u,"load_default")},{help:a(()=>[...e[55]||(e[55]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[57]||(e[57]=g("hr",null,null,-1)),l(E,null,{default:a(()=>[...e[56]||(e[56]=[i("Einstellungen der Lademodi",-1)])]),_:1})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[58]||(e[58]=[i(" Sofort ",-1)])]),default:a(()=>[l(A,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[59]||(e[59]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (s.g. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[60]||(e[60]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[61]||(e[61]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[62]||(e[62]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[63]||(e[63]=[i(" PV ",-1)])]),default:a(()=>[l(A,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[64]||(e[64]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[65]||(e[65]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[67]||(e[67]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[68]||(e[68]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[69]||(e[69]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[71]||(e[71]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[72]||(e[72]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[73]||(e[73]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[74]||(e[74]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "Überschuss-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[75]||(e[75]=[i(" Ziel ",-1)])]),default:a(()=>[l(E,null,{actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),help:a(()=>[...e[76]||(e[76]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt, bis max 20 Minuten nach dem angegebenen Zieltermin. ",-1)])]),default:a(()=>[e[77]||(e[77]=i(" Zielladepläne ",-1))]),_:2},1024),r.chargemode.scheduled_charging.plans.length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[78]||(e[78]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,L)=>(d(),b(ne,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${L}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[79]||(e[79]=[i(" Eco ",-1)])]),default:a(()=>[l(E,null,{help:a(()=>[...e[80]||(e[80]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[81]||(e[81]=i("Arbeitsweise von Eco ",-1))]),_:1}),l(A,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen bei Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[82]||(e[82]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p).',-1),g("br",null,null,-1),i(" Wird die eingestellte Preisgrenze unterschritten, wird immer mit der maximalen Anzahl Phasen geladen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[83]||(e[83]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[84]||(e[84]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[85]||(e[85]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(d(),b(z,{key:1,subtype:"warning"},{default:a(()=>[...e[86]||(e[86]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(o,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),p("div",bn,[e[90]||(e[90]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(o,u,"time_charging.active")},{help:a(()=>[...e[87]||(e[87]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (enteisen, vorwärmen, abkühlen). 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 Einstellungen zur Vorklimatisierung in der Fahrzeug-App). ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[88]||(e[88]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[89]||(e[89]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.time_charging.plans??[],(u,L)=>(d(),b(te,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${L}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfiguration.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vehicle-CYTzHFS6.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/vehicle-C4xon1Al.js","assets/vehicle-Bo3E1wuI.js","assets/vehicle-7u_dqMEp.js","assets/vehicle-uzGGKIpS.js","assets/vehicle-bxge8VZs.js","assets/vehicle-CoVie7os.js","assets/vehicle-Qsp1JuH6.js","assets/vehicle-BxcO7fDO.js","assets/vehicle-Bwnke49F.js","assets/SystemVersion-DQAfG1DR.js","assets/vehicle-CeWm61bY.js","assets/vehicle-BjW8elSd.js","assets/vehicle-CiPbB9w2.js","assets/vehicle-9Vh-TxGa.js","assets/vehicle-TwRWpbVJ.js","assets/vehicle-wE-5x93X.js","assets/vehicle-CPjkbES5.js","assets/vehicle-mz1O0JRs.js","assets/vehicle-BJ8Vq-80.js","assets/vehicle-BgWejNBx.js","assets/vehicle-B0tJYS46.js"])))=>i.map(i=>d[i]); +import{F as Z,l as O,ac as ae,ad as ie,a4 as R,Z as I,G as j,H,ax as J,aw as G,az as re,aA as ue,aq as $,av as Y,aj as Q,P as oe,d as de,a6 as se,ay as me,Y as ge}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as V,C as X}from"./index-CyH1Au4V.js";import{_ as pe}from"./dynamic-import-helper-BheWnx7M.js";import{_ as q,l as c,k as d,e as p,y as b,q as a,A as i,J as w,m as l,x as g,a1 as he,a2 as ce,K as W,u as m,L as D,z as B,j as ee,D as x}from"./vendor-Bo8v-nQD.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function we(n,e,f,P,S,t){const y=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(y,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),p("div",Ve,[l(y,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),l(y,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const ke=q(ve,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);O.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:Z},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>V(()=>import("./vehicle-CYTzHFS6.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./cupra/vehicle.vue":()=>V(()=>import("./vehicle-C4xon1Al.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./evcc/vehicle.vue":()=>V(()=>import("./vehicle-Bo3E1wuI.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./evnotify/vehicle.vue":()=>V(()=>import("./vehicle-7u_dqMEp.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./homeassistant/vehicle.vue":()=>V(()=>import("./vehicle-uzGGKIpS.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./http/vehicle.vue":()=>V(()=>import("./vehicle-bxge8VZs.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./json/vehicle.vue":()=>V(()=>import("./vehicle-CoVie7os.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./kia/vehicle.vue":()=>V(()=>import("./vehicle-Qsp1JuH6.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./leaf/vehicle.vue":()=>V(()=>import("./vehicle-BxcO7fDO.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./manual/vehicle.vue":()=>V(()=>import("./vehicle-Bwnke49F.js"),__vite__mapDeps([19,20,1,2,3,4,5,6,7,8,9,10])),"./mercedeseq/vehicle.vue":()=>V(()=>import("./vehicle-CeWm61bY.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./mqtt/vehicle.vue":()=>V(()=>import("./vehicle-BjW8elSd.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./ovms/vehicle.vue":()=>V(()=>import("./vehicle-CiPbB9w2.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./psa/vehicle.vue":()=>V(()=>import("./vehicle-9Vh-TxGa.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./psacc/vehicle.vue":()=>V(()=>import("./vehicle-TwRWpbVJ.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./renault/vehicle.vue":()=>V(()=>import("./vehicle-wE-5x93X.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./skoda/vehicle.vue":()=>V(()=>import("./vehicle-CPjkbES5.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./smarthello/vehicle.vue":()=>V(()=>import("./vehicle-mz1O0JRs.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./tesla/vehicle.vue":()=>V(()=>import("./vehicle-BJ8Vq-80.js"),__vite__mapDeps([29,1,2,8,4,3,5,6,7,9,10])),"./tronity/vehicle.vue":()=>V(()=>import("./vehicle-BgWejNBx.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./vwid/vehicle.vue":()=>V(()=>import("./vehicle-B0tJYS46.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10]))}),`./${this.vehicle.type}/vehicle.vue`,3),errorComponent:ke})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,S,t){const y=c("font-awesome-icon"),h=c("openwb-base-alert"),k=c("openwb-base-heading");return d(),p(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(k,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=z=>t.updateConfiguration(z))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);O.add(R,I,j,H,J,G,re,ue,$,Y,Q);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},Ee={key:0},Le={key:1},Pe={key:2},Ue={key:3},Ae={key:4},We={key:5},Fe={key:1},Be={key:1},Me={key:7};function Te(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Le,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Ae,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),p("span",Fe,[l(k,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Termin",subtype:"time"},{help:a(()=>[...e[18]||(e[18]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",Be,[(d(!0),p(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[30]||(e[30]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>[...e[19]||(e[19]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])]),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:2,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[20]||(e[20]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[21]||(e[21]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[22]||(e[22]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:3,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[23]||(e[23]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:4,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[24]||(e[24]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(E,{key:5,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>[...e[25]||(e[25]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type)?(d(),b(M,{key:6,subtype:"danger"},{default:a(()=>[...e[26]||(e[26]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])]),_:1})):m("",!0),t.plan.limit.selected=="soc"?(d(),p("div",Me,[e[29]||(e[29]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>[...e[27]||(e[27]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])]),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>[...e[28]||(e[28]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])]),_:1})):m("",!0)])):m("",!0)]),_:1},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);O.add(R,I,j,H,J,G,Y,Q);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/dc_charging",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},xe={key:0},Ze={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},je={key:2};function He(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",xe,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Ze,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),p("span",Ie,[l(k,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(z,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",je,[(d(!0),p(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[20]||(e[20]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:3,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>[...e[16]||(e[16]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[17]||(e[17]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.limit.soc=v),title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[18]||(e[18]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])]),_:1},8,["modelValue"]),l(E,{title:"Energie-Limit",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>[...e[19]||(e[19]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])]),_:1},8,["title"])],64)}const Je=q(qe,[["render",He],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);O.add(de,Q,H,G,J,j,R,I,se,me,ge,$,Y);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:Z,FontAwesomeLayers:oe,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[X],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/soc_modules",writeable:!1},{topic:"openWB/vehicle/+/charge_template",writeable:!0},{topic:"openWB/vehicle/+/ev_template",writeable:!0},{topic:"openWB/vehicle/+/info",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!0},{topic:"openWB/vehicle/+/soc_module/config",writeable:!0},{topic:"openWB/vehicle/+/soc_module/general_config",writeable:!0},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0},{topic:"openWB/vehicle/template/ev_template/+",writeable:!0}],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/info")}},evTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/ev_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/charge_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n,changed_in_theme:!1}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n,changed_in_theme:!1}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const S=`card-${n}-${P}`,t=this.$refs[S],y=Array.isArray(t)?t[0]:t;y&&(y.isCollapsed=P!==e)})})}}},Ye={class:"vehicleConfig"},Qe={name:"vehicleConfigForm"},Xe={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},rn={key:0},un={key:1},on={key:0},dn={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),E=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),A=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),p(W,null,[l(y,{show:S.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,S.modalVehicleIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug "'+w(t.getVehicleName(S.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,S.modalEvTemplateIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug-Profil "'+w(t.getEvTemplateName(S.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,S.modalChargeTemplateIndex))},{default:a(()=>[i(' Willst Du das Lade-Profil "'+w(t.getChargeTemplateName(S.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Ye,[g("form",Qe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",Xe,[l(z,{subtype:"info"},{default:a(()=>[...e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",Ke,[(d(!0),p(W,null,D(t.vehicleIndexes,r=>(d(),b(U,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/name",o)},x({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),p("div",$e,[l(E,null,{default:a(()=>[...e[13]||(e[13]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1}),(n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]?.length??0)>0?(d(),p("div",en,[l(z,{subtype:"info"},{default:a(()=>[e[15]||(e[15]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[14]||(e[14]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[16]||(e[16]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),p("div",nn," Aktuell ist die Identifikation in den Einstellungen deaktiviert. ")):(d(),p("div",tn," Die Identifikation ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. "))]),_:1}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},{help:a(()=>[...e[17]||(e[17]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Fahrzeug zugeordnet sind. Mit diesen ID-Tags kann dieses Fahrzeug an Ladepunkten automatisch zugeordnet werden. ",-1)])]),_:1},8,["model-value"])])):(d(),p("div",ln,[l(z,{subtype:"info"},{default:a(()=>[e[19]||(e[19]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[18]||(e[18]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[20]||(e[20]=i(".",-1)),e[21]||(e[21]=g("br",null,null,-1)),e[22]||(e[22]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})])),e[23]||(e[23]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(r,o)},{help:a(()=>[...e[24]||(e[24]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Während des Ladevorgangs wird der Zeitstempel der SoC-Abfrage geprüft. Ist dieser älter als der Zeitstempel der vorherigen Abfrage, wird das Ergebnis verworfen, stattdessen eine Berechnung durchgeführt und auch so im Fahrzeugstatus vermerkt.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type?(d(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[25]||(e[25]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{help:a(()=>[...e[26]||(e[26]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[27]||(e[27]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[28]||(e[28]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[30]||(e[30]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[91]||(e[91]=g("hr",{class:"border-secondary"},null,-1)),l(E,null,{default:a(()=>[...e[32]||(e[32]=[i("Profile",-1)])]),_:1}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[33]||(e[33]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",rn,[l(z,{subtype:"info"},{default:a(()=>[...e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",un,[(d(!0),p(W,null,D(t.evTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!0},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[35]||(e[35]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[36]||(e[36]=[i(" Angaben zur Batterie ",-1)])]),_:1}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"battery_capacity")},{help:a(()=>[...e[37]||(e[37]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",on,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(o,u,"efficiency")},{help:a(()=>[...e[38]||(e[38]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(o,u,"bidi")},{help:a(()=>[...e[39]||(e[39]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),p("div",dn,[l(E,null,{default:a(()=>[...e[40]||(e[40]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(E,null,{default:a(()=>[e[41]||(e[41]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),p("span",sn," (AC) ")):m("",!0)]),_:1}),l(A,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(o,u,"nominal_difference")},{help:a(()=>[...e[42]||(e[42]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),p("span",mn," (AC) ")):m("",!0)]),_:1}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_phases")},{help:a(()=>[...e[44]||(e[44]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption")},{help:a(()=>[...e[45]||(e[45]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_phase_switch")},{help:a(()=>[...e[46]||(e[46]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_charge_stop")},{help:a(()=>[...e[47]||(e[47]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"keep_charge_active_duration")},{help:a(()=>[...e[48]||(e[48]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:L=>t.addEvTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:L=>t.removeEvTemplateModal(L,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[49]||(e[49]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",pn,[l(z,{subtype:"info"},{default:a(()=>[...e[50]||(e[50]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",hn,[(d(!0),p(W,null,D(t.chargeTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:L=>t.addChargeTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(L=>t.removeChargeTemplateModal(L,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[51]||(e[51]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[52]||(e[52]=[i(" Allgemeine Optionen ",-1)])]),_:1}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(o,u)},{help:a(()=>[...e[53]||(e[53]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:1},8,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(o,u,"prio")},{help:a(()=>[...e[54]||(e[54]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(o,u,"load_default")},{help:a(()=>[...e[55]||(e[55]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[57]||(e[57]=g("hr",null,null,-1)),l(E,null,{default:a(()=>[...e[56]||(e[56]=[i("Einstellungen der Lademodi",-1)])]),_:1})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[58]||(e[58]=[i(" Sofort ",-1)])]),default:a(()=>[l(A,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[59]||(e[59]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (s.g. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[60]||(e[60]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[61]||(e[61]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[62]||(e[62]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[63]||(e[63]=[i(" PV ",-1)])]),default:a(()=>[l(A,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[64]||(e[64]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[65]||(e[65]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[67]||(e[67]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[68]||(e[68]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[69]||(e[69]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[71]||(e[71]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[72]||(e[72]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[73]||(e[73]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[74]||(e[74]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "Überschuss-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[75]||(e[75]=[i(" Ziel ",-1)])]),default:a(()=>[l(E,null,{actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),help:a(()=>[...e[76]||(e[76]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt, bis max 20 Minuten nach dem angegebenen Zieltermin. ",-1)])]),default:a(()=>[e[77]||(e[77]=i(" Zielladepläne ",-1))]),_:2},1024),r.chargemode.scheduled_charging.plans.length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[78]||(e[78]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,L)=>(d(),b(ne,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${L}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[79]||(e[79]=[i(" Eco ",-1)])]),default:a(()=>[l(E,null,{help:a(()=>[...e[80]||(e[80]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[81]||(e[81]=i("Arbeitsweise von Eco ",-1))]),_:1}),l(A,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen bei Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[82]||(e[82]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p).',-1),g("br",null,null,-1),i(" Wird die eingestellte Preisgrenze unterschritten, wird immer mit der maximalen Anzahl Phasen geladen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[83]||(e[83]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[84]||(e[84]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[85]||(e[85]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(d(),b(z,{key:1,subtype:"warning"},{default:a(()=>[...e[86]||(e[86]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(o,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),p("div",bn,[e[90]||(e[90]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(o,u,"time_charging.active")},{help:a(()=>[...e[87]||(e[87]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (enteisen, vorwärmen, abkühlen). 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 Einstellungen zur Vorklimatisierung in der Fahrzeug-App). ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[88]||(e[88]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[89]||(e[89]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.time_charging.plans??[],(u,L)=>(d(),b(te,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${L}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfiguration.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; diff --git a/web/settings/assets/backup_cloud-WdmGjWfz.js b/web/settings/assets/backup_cloud-C1Vw5Mh4.js similarity index 84% rename from web/settings/assets/backup_cloud-WdmGjWfz.js rename to web/settings/assets/backup_cloud-C1Vw5Mh4.js index 165b141469..dfc58a50ff 100644 --- a/web/settings/assets/backup_cloud-WdmGjWfz.js +++ b/web/settings/assets/backup_cloud-C1Vw5Mh4.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-BquAussF.js";import{_ as p,l as a,k as d,e as m,m as u,q as s,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"BackupCloudNextCloud",mixins:[r]},c={class:"backup-cloud-next-cloud"};function f(n,e,k,g,C,w){const t=a("openwb-base-text-input"),i=a("openwb-base-number-input");return d(),m("div",c,[u(t,{title:"Cloud-URL",subtype:"url",required:"","model-value":n.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},{help:s(()=>[...e[4]||(e[4]=[l(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])]),_:1},8,["model-value"]),u(t,{title:"Benutzername",subtype:"user","model-value":n.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),u(t,{title:"Passwort",subtype:"password","model-value":n.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),u(i,{title:"Anzahl Backups aufbewahren",min:0,step:1,required:"","model-value":n.backupCloud.configuration.max_backups??0,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:s(()=>[...e[5]||(e[5]=[l(" 0 = keine automatische Löschung; sonst werden nur die neuesten N Backups behalten. ",-1)])]),_:1},8,["model-value"])])}const L=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{L as default}; +import{B as r}from"./DataManagement-FAi2cjUn.js";import{_ as p,l as a,k as d,e as m,m as u,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"BackupCloudNextCloud",mixins:[r]},c={class:"backup-cloud-next-cloud"};function f(n,e,k,g,C,w){const t=a("openwb-base-text-input"),i=a("openwb-base-number-input");return d(),m("div",c,[u(t,{title:"Cloud-URL",subtype:"url",required:"","model-value":n.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},{help:s(()=>[...e[4]||(e[4]=[l(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])]),_:1},8,["model-value"]),u(t,{title:"Benutzername",subtype:"user","model-value":n.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),u(t,{title:"Passwort",subtype:"password","model-value":n.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),u(i,{title:"Anzahl Backups aufbewahren",min:0,step:1,required:"","model-value":n.backupCloud.configuration.max_backups??0,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:s(()=>[...e[5]||(e[5]=[l(" 0 = keine automatische Löschung; sonst werden nur die neuesten N Backups behalten. ",-1)])]),_:1},8,["model-value"])])}const L=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{L as default}; diff --git a/web/settings/assets/backup_cloud-DKNVh2TZ.js b/web/settings/assets/backup_cloud-ChCyb_mM.js similarity index 91% rename from web/settings/assets/backup_cloud-DKNVh2TZ.js rename to web/settings/assets/backup_cloud-ChCyb_mM.js index 6f478f0777..ec538e0302 100644 --- a/web/settings/assets/backup_cloud-DKNVh2TZ.js +++ b/web/settings/assets/backup_cloud-ChCyb_mM.js @@ -1 +1 @@ -import{B as c}from"./DataManagement-BquAussF.js";import{_ as m,l as a,k as b,e as f,m as t,q as r,A as n,x as i}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,C){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])]),_:1}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>[...e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>[...e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])]),_:1}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>[...e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])]),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>[...e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>[...e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1})])}const $=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{$ as default}; +import{B as c}from"./DataManagement-FAi2cjUn.js";import{_ as m,l as a,k as b,e as f,m as t,q as r,A as n,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,C){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])]),_:1}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>[...e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>[...e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])]),_:1}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>[...e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])]),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>[...e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>[...e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1})])}const $=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{$ as default}; diff --git a/web/settings/assets/backup_cloud-CmIeHWl8.js b/web/settings/assets/backup_cloud-Dr6eBKwO.js similarity index 87% rename from web/settings/assets/backup_cloud-CmIeHWl8.js rename to web/settings/assets/backup_cloud-Dr6eBKwO.js index 59684394e5..47bc15f482 100644 --- a/web/settings/assets/backup_cloud-CmIeHWl8.js +++ b/web/settings/assets/backup_cloud-Dr6eBKwO.js @@ -1 +1 @@ -import{B as p}from"./DataManagement-BquAussF.js";import{_ as d,l as r,k as m,e as b,m as u,q as i,A as a,x as t}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudSamba",mixins:[p]},g={class:"backup-cloud-samba"};function k(n,e,v,C,c,w){const l=r("openwb-base-text-input"),s=r("openwb-base-number-input");return m(),b("div",g,[u(l,{title:"Server",subtype:"host",required:"","model-value":n.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.smb_server"))},null,8,["model-value"]),u(l,{title:"Freigabe",required:"","model-value":n.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.smb_share"))},null,8,["model-value"]),u(l,{title:"Unterordner (optional)","model-value":n.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.smb_path"))},{help:i(()=>[...e[6]||(e[6]=[a(" Jeder Unterordner muss mit / enden.",-1),t("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),t("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),t("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])]),_:1},8,["model-value"]),u(l,{title:"Benutzer",subtype:"user","model-value":n.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.smb_user"))},null,8,["model-value"]),u(l,{title:"Kennwort",subtype:"password","model-value":n.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.smb_password"))},null,8,["model-value"]),u(s,{title:"Anzahl Backups aufbewahren","model-value":n.backupCloud.configuration.max_backups??0,min:0,max:100,required:"",step:1,"onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:i(()=>[...e[7]||(e[7]=[a(" 0 = keine automatische Löschung.",-1),t("br",null,null,-1),a(' Bei Werten > 0 werden nur die neuesten Backups behalten, ältere mit dem Prefix "openwb_backup_" werden gelöscht. ',-1)])]),_:1},8,["model-value"])])}const x=d(f,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{x as default}; +import{B as p}from"./DataManagement-FAi2cjUn.js";import{_ as d,l as r,k as m,e as b,m as u,q as i,A as a,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudSamba",mixins:[p]},g={class:"backup-cloud-samba"};function k(n,e,v,C,c,w){const l=r("openwb-base-text-input"),s=r("openwb-base-number-input");return m(),b("div",g,[u(l,{title:"Server",subtype:"host",required:"","model-value":n.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.smb_server"))},null,8,["model-value"]),u(l,{title:"Freigabe",required:"","model-value":n.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.smb_share"))},null,8,["model-value"]),u(l,{title:"Unterordner (optional)","model-value":n.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.smb_path"))},{help:i(()=>[...e[6]||(e[6]=[a(" Jeder Unterordner muss mit / enden.",-1),t("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),t("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),t("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])]),_:1},8,["model-value"]),u(l,{title:"Benutzer",subtype:"user","model-value":n.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.smb_user"))},null,8,["model-value"]),u(l,{title:"Kennwort",subtype:"password","model-value":n.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.smb_password"))},null,8,["model-value"]),u(s,{title:"Anzahl Backups aufbewahren","model-value":n.backupCloud.configuration.max_backups??0,min:0,max:100,required:"",step:1,"onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:i(()=>[...e[7]||(e[7]=[a(" 0 = keine automatische Löschung.",-1),t("br",null,null,-1),a(' Bei Werten > 0 werden nur die neuesten Backups behalten, ältere mit dem Prefix "openwb_backup_" werden gelöscht. ',-1)])]),_:1},8,["model-value"])])}const x=d(f,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{x as default}; diff --git a/web/settings/assets/backup_cloud-BfD5oaKU.js b/web/settings/assets/backup_cloud-mhyMQPm9.js similarity index 74% rename from web/settings/assets/backup_cloud-BfD5oaKU.js rename to web/settings/assets/backup_cloud-mhyMQPm9.js index e2940ac4cf..455e9cf1fe 100644 --- a/web/settings/assets/backup_cloud-BfD5oaKU.js +++ b/web/settings/assets/backup_cloud-mhyMQPm9.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-BquAussF.js";import{_ as p,l as u,k as i,e as l,m as d,q as c,A as o,x as n}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudNfs",mixins:[r]},m={class:"backup-cloud-nfs"};function _(t,e,b,k,v,x){const a=u("openwb-base-text-input");return i(),l("div",m,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>[...e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{$ as default}; +import{B as r}from"./DataManagement-FAi2cjUn.js";import{_ as p,l as u,k as i,e as l,m as d,q as c,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudNfs",mixins:[r]},m={class:"backup-cloud-nfs"};function _(t,e,b,k,v,x){const a=u("openwb-base-text-input");return i(),l("div",m,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>[...e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-CsaXkLHe.js b/web/settings/assets/bat--jkW4uM1.js similarity index 68% rename from web/settings/assets/bat-CsaXkLHe.js rename to web/settings/assets/bat--jkW4uM1.js index f11ed90c53..a13ab71e25 100644 --- a/web/settings/assets/bat-CsaXkLHe.js +++ b/web/settings/assets/bat--jkW4uM1.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVenusCEBat",mixins:[r]},c={class:"device-venus_c_e-bat"};function b(o,e,f,v,g,C){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für Marstek Venus C, E Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVenusCEBat",mixins:[r]},c={class:"device-venus_c_e-bat"};function b(o,e,f,v,g,C){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für Marstek Venus C, E Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-BN1YEpvE.js b/web/settings/assets/bat-26IrZ19X.js similarity index 91% rename from web/settings/assets/bat-BN1YEpvE.js rename to web/settings/assets/bat-26IrZ19X.js index 99e808b6b8..16c334fca5 100644 --- a/web/settings/assets/bat-BN1YEpvE.js +++ b/web/settings/assets/bat-26IrZ19X.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as s,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(n,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":n.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":n.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateConfiguration(t,"configuration.jq_imported"))},{help:l(()=>[...e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const U=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{U as default}; +import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as s,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(n,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":n.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":n.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateConfiguration(t,"configuration.jq_imported"))},{help:l(()=>[...e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const U=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{U as default}; diff --git a/web/settings/assets/bat-CmZvy5m2.js b/web/settings/assets/bat-B0JSSnLj.js similarity index 69% rename from web/settings/assets/bat-CmZvy5m2.js rename to web/settings/assets/bat-B0JSSnLj.js index f04d89363d..6403624c57 100644 --- a/web/settings/assets/bat-CmZvy5m2.js +++ b/web/settings/assets/bat-B0JSSnLj.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as t,k as p,e as u,m as n,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])]),_:1}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{D as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as p,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])]),_:1}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-bkNSH294.js b/web/settings/assets/bat-B0T6AimZ.js similarity index 72% rename from web/settings/assets/bat-bkNSH294.js rename to web/settings/assets/bat-B0T6AimZ.js index e89f8a6645..8a79b2b17a 100644 --- a/web/settings/assets/bat-bkNSH294.js +++ b/web/settings/assets/bat-B0T6AimZ.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as r,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-ClxDcwKU.js b/web/settings/assets/bat-B4mETs5R.js similarity index 65% rename from web/settings/assets/bat-ClxDcwKU.js rename to web/settings/assets/bat-B4mETs5R.js index cc325d31e6..47bdf5a5f8 100644 --- a/web/settings/assets/bat-ClxDcwKU.js +++ b/web/settings/assets/bat-B4mETs5R.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as n,l as r,k as s,e as i,m as a,q as p,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPlenticoreBat",mixins:[o]},m={class:"device-kostal-plenticore-bat"};function d(_,e,u,b,f,k){const t=r("openwb-base-alert");return s(),i("div",m,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' Für die aktive Batteriesteuerung muss die Funktion "Extern über Protokoll (Modbus TCP)" in der Nutzeroberfläche des Plenticore mit dem Handwerkerzugang aktiviert werden. ',-1)])]),_:1})])}const N=n(l,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/bat.vue"]]);export{N as default}; +import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as r,k as s,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPlenticoreBat",mixins:[o]},m={class:"device-kostal-plenticore-bat"};function d(_,e,u,b,f,k){const t=r("openwb-base-alert");return s(),i("div",m,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' Für die aktive Batteriesteuerung muss die Funktion "Extern über Protokoll (Modbus TCP)" in der Nutzeroberfläche des Plenticore mit dem Handwerkerzugang aktiviert werden. ',-1)])]),_:1})])}const N=n(l,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-CptO1Moh.js b/web/settings/assets/bat-BCGKgQxP.js similarity index 76% rename from web/settings/assets/bat-CptO1Moh.js rename to web/settings/assets/bat-BCGKgQxP.js index 973203c14e..c281c82b84 100644 --- a/web/settings/assets/bat-CptO1Moh.js +++ b/web/settings/assets/bat-BCGKgQxP.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as r,l as t,k as u,e as m,m as i,q as d,A as b}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},f={class:"device-openwb-flex-bat"};function _(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",f,[i(a,null,{default:d(()=>[...e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])]),_:1}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const S=r(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{S as default}; +import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as t,k as u,e as m,m as i,q as d,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},f={class:"device-openwb-flex-bat"};function _(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",f,[i(a,null,{default:d(()=>[...e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])]),_:1}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const S=r(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-CgA4A-DW.js b/web/settings/assets/bat-BERY8z9f.js similarity index 65% rename from web/settings/assets/bat-CgA4A-DW.js rename to web/settings/assets/bat-BERY8z9f.js index 3ee7507015..ba2c32e9f9 100644 --- a/web/settings/assets/bat-CgA4A-DW.js +++ b/web/settings/assets/bat-BERY8z9f.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as n,l as o,k as i,e as s,m as a,q as p,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceBatterXBat",mixins:[r]},l={class:"device-batterx-bat"};function d(_,e,b,u,f,x){const t=o("openwb-base-alert");return i(),s("div",l,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Der BatterX Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. ",-1)])]),_:1})])}const $=n(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/bat.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as o,k as i,e as s,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceBatterXBat",mixins:[r]},l={class:"device-batterx-bat"};function d(_,e,b,u,f,x){const t=o("openwb-base-alert");return i(),s("div",l,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Der BatterX Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. ",-1)])]),_:1})])}const $=n(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-BIrS6-PU.js b/web/settings/assets/bat-BVitR6eQ.js similarity index 72% rename from web/settings/assets/bat-BIrS6-PU.js rename to web/settings/assets/bat-BVitR6eQ.js index b2c1b2475f..5380baad0b 100644 --- a/web/settings/assets/bat-BIrS6-PU.js +++ b/web/settings/assets/bat-BVitR6eQ.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as r,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[p]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const V=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[p]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const V=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-9pc5iQFT.js b/web/settings/assets/bat-BbH2OvqQ.js similarity index 68% rename from web/settings/assets/bat-9pc5iQFT.js rename to web/settings/assets/bat-BbH2OvqQ.js index a89665c433..c275a2a632 100644 --- a/web/settings/assets/bat-9pc5iQFT.js +++ b/web/settings/assets/bat-BbH2OvqQ.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolakonOneBat",mixins:[r]},c={class:"device-solakon-one-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/bat.vue"]]);export{D as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolakonOneBat",mixins:[r]},c={class:"device-solakon-one-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-B0kr7NLZ.js b/web/settings/assets/bat-ByCHTSc9.js similarity index 85% rename from web/settings/assets/bat-B0kr7NLZ.js rename to web/settings/assets/bat-ByCHTSc9.js index 2151616b78..6654627a47 100644 --- a/web/settings/assets/bat-B0kr7NLZ.js +++ b/web/settings/assets/bat-ByCHTSc9.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as d,m as a,q as b,A as i,x as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxBat",mixins:[l]},f={class:"device-solarmax-bat"};function g(o,e,v,x,w,S){const r=n("openwb-base-alert"),s=n("openwb-base-number-input"),u=n("openwb-base-button-group-input");return m(),d("div",f,[a(r,{subtype:"info"},{default:b(()=>[...e[2]||(e[2]=[i(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden.",-1),c("br",null,null,-1),i(' Die aktive Speichersteuerung ist ab Solarmax Software Version 3.4.4 verfügbar. Zur Nutzung muss die Funktion "Connectivity+" durch den Solarmax Support (nicht openWB Support) freigeschaltet werden. ',-1)])]),_:1}),a(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),a(u,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const D=p(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{D as default}; +import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as d,m as a,q as b,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxBat",mixins:[l]},f={class:"device-solarmax-bat"};function g(o,e,v,x,w,S){const r=n("openwb-base-alert"),s=n("openwb-base-number-input"),u=n("openwb-base-button-group-input");return m(),d("div",f,[a(r,{subtype:"info"},{default:b(()=>[...e[2]||(e[2]=[i(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden.",-1),c("br",null,null,-1),i(' Die aktive Speichersteuerung ist ab Solarmax Software Version 3.4.4 verfügbar. Zur Nutzung muss die Funktion "Connectivity+" durch den Solarmax Support (nicht openWB Support) freigeschaltet werden. ',-1)])]),_:1}),a(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),a(u,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const D=p(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-7JGzH8pd.js b/web/settings/assets/bat-CE8ZvzxW.js similarity index 78% rename from web/settings/assets/bat-7JGzH8pd.js rename to web/settings/assets/bat-CE8ZvzxW.js index 5356f75f02..464f1f588b 100644 --- a/web/settings/assets/bat-7JGzH8pd.js +++ b/web/settings/assets/bat-CE8ZvzxW.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as i,l as r,k as s,e as o,m as p,q as l,A as n,x as d}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceAlphaEssBat",mixins:[a]},m={class:"device-alphaess-bat"};function u(_,e,f,b,g,h){const t=r("openwb-base-alert");return s(),o("div",m,[p(t,{subtype:"info"},{default:l(()=>[...e[0]||(e[0]=[n(" Der AlphaESS Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren.",-1),d("br",null,null,-1),n(' Zur Nutzung müssen über Webinterface oder App einmalig Zeiten für das Netzladen definiert werden. (Einstellungen -> Funktionseinstellungen -> Netzladen/Entladen). Hier einen durchgängigen Zeitraum eintragen (Ladezeit 1: 00:00-23:00, Ladezeit 2 23:00-00:00). Den Schalter "Netzladen" deaktivieren! ',-1)])]),_:1})])}const C=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/bat.vue"]]);export{C as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as i,l as r,k as s,e as o,m as p,q as l,A as n,x as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceAlphaEssBat",mixins:[a]},m={class:"device-alphaess-bat"};function u(_,e,f,b,g,h){const t=r("openwb-base-alert");return s(),o("div",m,[p(t,{subtype:"info"},{default:l(()=>[...e[0]||(e[0]=[n(" Der AlphaESS Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren.",-1),d("br",null,null,-1),n(' Zur Nutzung müssen über Webinterface oder App einmalig Zeiten für das Netzladen definiert werden. (Einstellungen -> Funktionseinstellungen -> Netzladen/Entladen). Hier einen durchgängigen Zeitraum eintragen (Ladezeit 1: 00:00-23:00, Ladezeit 2 23:00-00:00). Den Schalter "Netzladen" deaktivieren! ',-1)])]),_:1})])}const C=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-2R_F_kER.js b/web/settings/assets/bat-CQPOUTj3.js similarity index 77% rename from web/settings/assets/bat-2R_F_kER.js rename to web/settings/assets/bat-CQPOUTj3.js index bd550a38a3..c188490ea5 100644 --- a/web/settings/assets/bat-2R_F_kER.js +++ b/web/settings/assets/bat-CQPOUTj3.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as t,k as d,e as c,m as i,q as a,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>[...e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])]),_:1}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const q=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{q as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as d,e as c,m as i,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>[...e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])]),_:1}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const q=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{q as default}; diff --git a/web/settings/assets/bat-ByOTOieU.js b/web/settings/assets/bat-Cn1EQGgB.js similarity index 69% rename from web/settings/assets/bat-ByOTOieU.js rename to web/settings/assets/bat-Cn1EQGgB.js index f9f5b05823..05ba1daeea 100644 --- a/web/settings/assets/bat-ByOTOieU.js +++ b/web/settings/assets/bat-Cn1EQGgB.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{V as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-C6I23djd.js b/web/settings/assets/bat-CnxJ24UF.js similarity index 67% rename from web/settings/assets/bat-C6I23djd.js rename to web/settings/assets/bat-CnxJ24UF.js index a007b27165..7c1e3e1ba3 100644 --- a/web/settings/assets/bat-C6I23djd.js +++ b/web/settings/assets/bat-CnxJ24UF.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHBat",mixins:[r]},_={class:"device-kaco-nh-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),a=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Kaco NH Batteriespeicher ",-1)])]),_:1}),t(a,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/bat.vue"]]);export{q as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHBat",mixins:[r]},_={class:"device-kaco-nh-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),a=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Kaco NH Batteriespeicher ",-1)])]),_:1}),t(a,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/bat.vue"]]);export{q as default}; diff --git a/web/settings/assets/bat-CgGWSHMY.js b/web/settings/assets/bat-DAoCRKqd.js similarity index 68% rename from web/settings/assets/bat-CgGWSHMY.js rename to web/settings/assets/bat-DAoCRKqd.js index 0e14c6d160..45133234e8 100644 --- a/web/settings/assets/bat-CgGWSHMY.js +++ b/web/settings/assets/bat-DAoCRKqd.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFroniusBat",mixins:[a]},_={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const D=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFroniusBat",mixins:[a]},_={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const D=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-b37DCPfB.js b/web/settings/assets/bat-DZNpCoR7.js similarity index 73% rename from web/settings/assets/bat-b37DCPfB.js rename to web/settings/assets/bat-DZNpCoR7.js index 76948d6e99..0b30dd563b 100644 --- a/web/settings/assets/bat-b37DCPfB.js +++ b/web/settings/assets/bat-DZNpCoR7.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as p,k as t,e as c,y as i,q as o,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function f(s,e,v,b,l,g){const n=p("openwb-base-alert");return t(),c("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])]),_:1})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])]),_:1}))])}const h=d(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{h as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as p,k as t,e as c,y as i,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function f(s,e,v,b,l,g){const n=p("openwb-base-alert");return t(),c("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])]),_:1})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])]),_:1}))])}const h=d(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-pjXdDuo7.js b/web/settings/assets/bat-Dbv3vNU1.js similarity index 68% rename from web/settings/assets/bat-pjXdDuo7.js rename to web/settings/assets/bat-Dbv3vNU1.js index f1e8589ce6..bd9c498f23 100644 --- a/web/settings/assets/bat-pjXdDuo7.js +++ b/web/settings/assets/bat-Dbv3vNU1.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as t,k as d,e as m,m as n,q as u,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceStuderBat",mixins:[a]},_={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return d(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as d,e as m,m as n,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceStuderBat",mixins:[a]},_={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return d(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-DKtRkxSv.js b/web/settings/assets/bat-DgzuvGkr.js similarity index 94% rename from web/settings/assets/bat-DKtRkxSv.js rename to web/settings/assets/bat-DgzuvGkr.js index 6b39489380..57c0cae64f 100644 --- a/web/settings/assets/bat-DKtRkxSv.js +++ b/web/settings/assets/bat-DgzuvGkr.js @@ -1 +1 @@ -import{C as g}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as b,l as u,k as f,e as B,m as i,q as l,A as t,x as n,J as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"DeviceMqttBat",mixins:[g]},w={class:"device-mqtt-bat"};function z(o,e,v,W,S,T){const d=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),a=u("openwb-base-button-group-input");return f(),B("div",w,[i(d,null,{default:l(()=>[...e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])]),_:1}),i(p,{subtype:"warning"},{default:l(()=>[e[2]||(e[2]=t(" Ist die ",-1)),e[3]||(e[3]=n("strong",null,"Benutzerverwaltung",-1)),e[4]||(e[4]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Speicher '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[5]||(e[5]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[31]||(e[31]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Beispiel: ",-1)),e[10]||(e[10]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/soc ",1)]),_:1}),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Beispiel: ",-1)),e[15]||(e[15]=n("span",{class:"text-info"},"95",-1))])]),e[32]||(e[32]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[16]||(e[16]=n("br",null,null,-1)),e[17]||(e[17]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Beispiel: ",-1)),e[20]||(e[20]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Beispiel: ",-1)),e[25]||(e[25]=n("span",{class:"text-info"},"123.45",-1))])]),e[33]||(e[33]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[26]||(e[26]=n("br",null,null,-1)),e[27]||(e[27]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[28]||(e[28]=n("br",null,null,-1)),e[29]||(e[29]=t(" Beispiel: ",-1)),e[30]||(e[30]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1}),i(d,null,{default:l(()=>[...e[34]||(e[34]=[t(" Optionale Einstellungen ",-1)])]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[40]||(e[40]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/mqtt/bat/"+s(o.component.id)+"/set/power_limit ",1)]),_:1}),e[35]||(e[35]=n("br",null,null,-1)),e[36]||(e[36]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[37]||(e[37]=n("br",null,null,-1)),e[38]||(e[38]=t(" Beispiel: ",-1)),e[39]||(e[39]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1}),i(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const V=b(k,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{V as default}; +import{C as g}from"./HardwareInstallation-caZ0sA9z.js";import{_ as b,l as u,k as f,e as B,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"DeviceMqttBat",mixins:[g]},w={class:"device-mqtt-bat"};function z(o,e,v,W,S,T){const d=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),a=u("openwb-base-button-group-input");return f(),B("div",w,[i(d,null,{default:l(()=>[...e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])]),_:1}),i(p,{subtype:"warning"},{default:l(()=>[e[2]||(e[2]=t(" Ist die ",-1)),e[3]||(e[3]=n("strong",null,"Benutzerverwaltung",-1)),e[4]||(e[4]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Speicher '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[5]||(e[5]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[31]||(e[31]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Beispiel: ",-1)),e[10]||(e[10]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/soc ",1)]),_:1}),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Beispiel: ",-1)),e[15]||(e[15]=n("span",{class:"text-info"},"95",-1))])]),e[32]||(e[32]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[16]||(e[16]=n("br",null,null,-1)),e[17]||(e[17]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Beispiel: ",-1)),e[20]||(e[20]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Beispiel: ",-1)),e[25]||(e[25]=n("span",{class:"text-info"},"123.45",-1))])]),e[33]||(e[33]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[26]||(e[26]=n("br",null,null,-1)),e[27]||(e[27]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[28]||(e[28]=n("br",null,null,-1)),e[29]||(e[29]=t(" Beispiel: ",-1)),e[30]||(e[30]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1}),i(d,null,{default:l(()=>[...e[34]||(e[34]=[t(" Optionale Einstellungen ",-1)])]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[40]||(e[40]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/mqtt/bat/"+s(o.component.id)+"/set/power_limit ",1)]),_:1}),e[35]||(e[35]=n("br",null,null,-1)),e[36]||(e[36]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[37]||(e[37]=n("br",null,null,-1)),e[38]||(e[38]=t(" Beispiel: ",-1)),e[39]||(e[39]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1}),i(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const V=b(k,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-DlQIYeS5.js b/web/settings/assets/bat-DlQIYeS5.js new file mode 100644 index 0000000000..4cfc90d235 --- /dev/null +++ b/web/settings/assets/bat-DlQIYeS5.js @@ -0,0 +1 @@ +import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l,k as i,e as a,m as c,q as d,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceQCellsBat",mixins:[o]},p={class:"device-qcells-bat"};function m(_,n,b,f,h,x){const s=l("openwb-base-alert");return i(),a("div",p,[c(s,{subtype:"info"},{default:d(()=>[...n[0]||(n[0]=[e(" Die aktive Speichersteuerung erfolgt über das Solax Remote Control Modbus-Protokoll (Mode 8).",-1),t("br",null,null,-1),e(" Unterstützte Hardware: QCells Q.VOLT HYB-G3-3P (Solax Gen4), Solax Gen4/Gen5/Gen6 Hybrid und AC Wechselrichter.",-1),t("br",null,null,-1),e(" Gen2/Gen3 Wechselrichter werden nicht unterstützt, da diese kein Remote Control unterstützen.",-1),t("br",null,null,-1),e(' Bitte die Felder "Maximale Ladeleistung" und "Maximale Entladeleistung" unter Ladeeinstellungen > Speichersteuerung entsprechend der Leistungsfähigkeit des Wechselrichters und der angeschlossenen Batterie konfigurieren. ',-1)])]),_:1})])}const S=r(u,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-BQ8zXmoc.js b/web/settings/assets/bat-DrOtsCLh.js similarity index 78% rename from web/settings/assets/bat-BQ8zXmoc.js rename to web/settings/assets/bat-DrOtsCLh.js index 7858352336..5ed3b37edc 100644 --- a/web/settings/assets/bat-BQ8zXmoc.js +++ b/web/settings/assets/bat-DrOtsCLh.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as l,e as g,m as t,q as i,A as o}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSigenergyBat",mixins:[u]},c={class:"device-sigenergy-bat"};function _(r,e,f,v,h,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),g("div",c,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Sigenergy Batteriespeicher ",-1)])]),_:1}),t(a,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[o(" Der Sigenergy Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. Die aktive Beladung des Speichers ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":r.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>r.updateConfiguration(d,"configuration.modbus_id"))},{help:i(()=>[...e[3]||(e[3]=[o(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const E=m(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{E as default}; +import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as l,e as g,m as t,q as i,A as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSigenergyBat",mixins:[u]},c={class:"device-sigenergy-bat"};function _(r,e,f,v,h,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),g("div",c,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Sigenergy Batteriespeicher ",-1)])]),_:1}),t(a,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[o(" Der Sigenergy Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. Die aktive Beladung des Speichers ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":r.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>r.updateConfiguration(d,"configuration.modbus_id"))},{help:i(()=>[...e[3]||(e[3]=[o(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const E=m(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-BRarMF4I.js b/web/settings/assets/bat-DtUSWouQ.js similarity index 73% rename from web/settings/assets/bat-BRarMF4I.js rename to web/settings/assets/bat-DtUSWouQ.js index 59f3790f8a..ccb569d9f0 100644 --- a/web/settings/assets/bat-BRarMF4I.js +++ b/web/settings/assets/bat-DtUSWouQ.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])]),_:1}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>[...e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const I=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])]),_:1}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>[...e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const I=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{I as default}; diff --git a/web/settings/assets/bat-DRknG4fw.js b/web/settings/assets/bat-Dw1dp4yk.js similarity index 68% rename from web/settings/assets/bat-DRknG4fw.js rename to web/settings/assets/bat-Dw1dp4yk.js index a71d9e0ac7..3ade7dcd90 100644 --- a/web/settings/assets/bat-DRknG4fw.js +++ b/web/settings/assets/bat-Dw1dp4yk.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{q as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{q as default}; diff --git a/web/settings/assets/bat-BmVnIsK3.js b/web/settings/assets/bat-DwRFcEFG.js similarity index 68% rename from web/settings/assets/bat-BmVnIsK3.js rename to web/settings/assets/bat-DwRFcEFG.js index 5496c24ea8..2f298a1e12 100644 --- a/web/settings/assets/bat-BmVnIsK3.js +++ b/web/settings/assets/bat-DwRFcEFG.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeBat",mixins:[r]},_={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeBat",mixins:[r]},_={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-C0s6O7-0.js b/web/settings/assets/bat-EML-jKM6.js similarity index 69% rename from web/settings/assets/bat-C0s6O7-0.js rename to web/settings/assets/bat-EML-jKM6.js index cac70c03fe..dc0897ed38 100644 --- a/web/settings/assets/bat-C0s6O7-0.js +++ b/web/settings/assets/bat-EML-jKM6.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as o,k as m,e as d,m as t,q as u,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-CWRAY-SG.js b/web/settings/assets/bat-XK6ruyYp.js similarity index 95% rename from web/settings/assets/bat-CWRAY-SG.js rename to web/settings/assets/bat-XK6ruyYp.js index b0db9b9a38..6cb2b79040 100644 --- a/web/settings/assets/bat-CWRAY-SG.js +++ b/web/settings/assets/bat-XK6ruyYp.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as d,k as p,e as g,m as l,q as i,A as n,x as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>[...e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])]),_:1}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>[...e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>[...e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; +import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as d,k as p,e as g,m as l,q as i,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>[...e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])]),_:1}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>[...e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>[...e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-D4M2B5kd.js b/web/settings/assets/bat-_7mtDj_h.js similarity index 77% rename from web/settings/assets/bat-D4M2B5kd.js rename to web/settings/assets/bat-_7mtDj_h.js index 8159c0b7e5..649af39c36 100644 --- a/web/settings/assets/bat-D4M2B5kd.js +++ b/web/settings/assets/bat-_7mtDj_h.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as a,k as p,e as u,m as t,q as r,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeBat",mixins:[d]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>[...e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const h=m(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{h as default}; +import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as a,k as p,e as u,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeBat",mixins:[d]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>[...e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const h=m(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-Bq_karx4.js b/web/settings/assets/bat-eF5oA3Oa.js similarity index 68% rename from web/settings/assets/bat-Bq_karx4.js rename to web/settings/assets/bat-eF5oA3Oa.js index 383aec4cf4..2d674bd150 100644 --- a/web/settings/assets/bat-Bq_karx4.js +++ b/web/settings/assets/bat-eF5oA3Oa.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisBat",mixins:[r]},_={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{D as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisBat",mixins:[r]},_={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-B8ywWV_I.js b/web/settings/assets/bat-g-gN6DNl.js similarity index 68% rename from web/settings/assets/bat-B8ywWV_I.js rename to web/settings/assets/bat-g-gN6DNl.js index 7a8ce51a46..51bff3c760 100644 --- a/web/settings/assets/bat-B8ywWV_I.js +++ b/web/settings/assets/bat-g-gN6DNl.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Victron Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID Speicher",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Victron Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID Speicher",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-D37RLtNO.js b/web/settings/assets/bat-jEZsteDp.js similarity index 69% rename from web/settings/assets/bat-D37RLtNO.js rename to web/settings/assets/bat-jEZsteDp.js index 20af8460d8..fc6930ced7 100644 --- a/web/settings/assets/bat-D37RLtNO.js +++ b/web/settings/assets/bat-jEZsteDp.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as o,k as m,e as u,m as t,q as l,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceFemsBat",mixins:[r]},f={class:"device-fems-bat"};function _(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",f,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const M=p(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{M as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceFemsBat",mixins:[r]},f={class:"device-fems-bat"};function _(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",f,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const M=p(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat_smart_energy-CPzH7Jpe.js b/web/settings/assets/bat_smart_energy-CXDoZsZR.js similarity index 70% rename from web/settings/assets/bat_smart_energy-CPzH7Jpe.js rename to web/settings/assets/bat_smart_energy-CXDoZsZR.js index 68c71601c7..2222aa18a0 100644 --- a/web/settings/assets/bat_smart_energy-CPzH7Jpe.js +++ b/web/settings/assets/bat_smart_energy-CXDoZsZR.js @@ -1 +1 @@ -import{C as i}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as o,k as p,e as u,m as t,q as d,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[i]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{M as default}; +import{C as i}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as p,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[i]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{M as default}; diff --git a/web/settings/assets/chargePoint-D0jx9kkN.js b/web/settings/assets/chargePoint-BsAFaJWO.js similarity index 77% rename from web/settings/assets/chargePoint-D0jx9kkN.js rename to web/settings/assets/chargePoint-BsAFaJWO.js index b951426eb2..825d705576 100644 --- a/web/settings/assets/chargePoint-D0jx9kkN.js +++ b/web/settings/assets/chargePoint-BsAFaJWO.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{q as default}; +import{C as p}from"./ChargePointInstallation-C3IshOKk.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-CJYrp8Wq.js b/web/settings/assets/chargePoint-BxYclOKe.js similarity index 96% rename from web/settings/assets/chargePoint-CJYrp8Wq.js rename to web/settings/assets/chargePoint-BxYclOKe.js index b31610acc4..3982469b0d 100644 --- a/web/settings/assets/chargePoint-CJYrp8Wq.js +++ b/web/settings/assets/chargePoint-BxYclOKe.js @@ -1 +1 @@ -import{C as d}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as g,l as p,k as a,e as m,m as l,q as i,A as t,x as e,J as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>[...n[0]||(n[0]=[t(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])]),_:1}),l(u,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Ladepunkt '`+r(o.chargePoint.name)+"' ("+r(o.chargePoint.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(u,{subtype:"info"},{default:i(()=>[n[76]||(n[76]=e("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format). ",-1)),n[77]||(n[77]=e("p",null,' In Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics "openWB/set/chargepoint/id/get/..." und "openWB/chargepoint/set/..." bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ',-1)),e("ol",null,[e("li",null,[n[15]||(n[15]=t(" von openWB gesendete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"12.34",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"1",-1))])])]),e("li",null,[n[41]||(n[41]=t(" von openWB zwingend erwartete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"3",-1))])])]),e("li",null,[n[75]||(n[75]=t(" optionale Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[44]||(n[44]=e("br",null,null,-1)),n[45]||(n[45]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[46]||(n[46]=e("br",null,null,-1)),n[47]||(n[47]=t(" Beispiel: ",-1)),n[48]||(n[48]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[49]||(n[49]=e("br",null,null,-1)),n[50]||(n[50]=t(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[51]||(n[51]=e("br",null,null,-1)),n[52]||(n[52]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[53]||(n[53]=e("br",null,null,-1)),n[54]||(n[54]=t(" Beispiel: ",-1)),n[55]||(n[55]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[56]||(n[56]=e("br",null,null,-1)),n[57]||(n[57]=t(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[58]||(n[58]=e("br",null,null,-1)),n[59]||(n[59]=t(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[60]||(n[60]=e("br",null,null,-1)),n[61]||(n[61]=t(" Beispiel: ",-1)),n[62]||(n[62]=e("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[63]||(n[63]=e("br",null,null,-1)),n[64]||(n[64]=t(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[65]||(n[65]=e("br",null,null,-1)),n[66]||(n[66]=t(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[67]||(n[67]=e("br",null,null,-1)),n[68]||(n[68]=t(" Beispiel: ",-1)),n[69]||(n[69]=e("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid ",1)]),_:1}),n[70]||(n[70]=e("br",null,null,-1)),n[71]||(n[71]=t(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert. Der Tag darf nur einmalig nach dem Scannen gesendet werden. Nach der Verarbeitung leert openWB das Topic.",-1)),n[72]||(n[72]=e("br",null,null,-1)),n[73]||(n[73]=t(" Beispiel: ",-1)),n[74]||(n[74]=e("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1})])}const A=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{A as default}; +import{C as d}from"./ChargePointInstallation-C3IshOKk.js";import{_ as g,l as p,k as a,e as m,m as l,q as i,A as t,x as e,J as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>[...n[0]||(n[0]=[t(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])]),_:1}),l(u,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Ladepunkt '`+r(o.chargePoint.name)+"' ("+r(o.chargePoint.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(u,{subtype:"info"},{default:i(()=>[n[76]||(n[76]=e("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format). ",-1)),n[77]||(n[77]=e("p",null,' In Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics "openWB/set/chargepoint/id/get/..." und "openWB/chargepoint/set/..." bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ',-1)),e("ol",null,[e("li",null,[n[15]||(n[15]=t(" von openWB gesendete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"12.34",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"1",-1))])])]),e("li",null,[n[41]||(n[41]=t(" von openWB zwingend erwartete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"3",-1))])])]),e("li",null,[n[75]||(n[75]=t(" optionale Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[44]||(n[44]=e("br",null,null,-1)),n[45]||(n[45]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[46]||(n[46]=e("br",null,null,-1)),n[47]||(n[47]=t(" Beispiel: ",-1)),n[48]||(n[48]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[49]||(n[49]=e("br",null,null,-1)),n[50]||(n[50]=t(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[51]||(n[51]=e("br",null,null,-1)),n[52]||(n[52]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[53]||(n[53]=e("br",null,null,-1)),n[54]||(n[54]=t(" Beispiel: ",-1)),n[55]||(n[55]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[56]||(n[56]=e("br",null,null,-1)),n[57]||(n[57]=t(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[58]||(n[58]=e("br",null,null,-1)),n[59]||(n[59]=t(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[60]||(n[60]=e("br",null,null,-1)),n[61]||(n[61]=t(" Beispiel: ",-1)),n[62]||(n[62]=e("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[63]||(n[63]=e("br",null,null,-1)),n[64]||(n[64]=t(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[65]||(n[65]=e("br",null,null,-1)),n[66]||(n[66]=t(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[67]||(n[67]=e("br",null,null,-1)),n[68]||(n[68]=t(" Beispiel: ",-1)),n[69]||(n[69]=e("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid ",1)]),_:1}),n[70]||(n[70]=e("br",null,null,-1)),n[71]||(n[71]=t(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert. Der Tag darf nur einmalig nach dem Scannen gesendet werden. Nach der Verarbeitung leert openWB das Topic.",-1)),n[72]||(n[72]=e("br",null,null,-1)),n[73]||(n[73]=t(" Beispiel: ",-1)),n[74]||(n[74]=e("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1})])}const A=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{A as default}; diff --git a/web/settings/assets/chargePoint-B7gT4Y_a.js b/web/settings/assets/chargePoint-CLglsVkD.js similarity index 58% rename from web/settings/assets/chargePoint-B7gT4Y_a.js rename to web/settings/assets/chargePoint-CLglsVkD.js index a70e13905a..6a48265ae2 100644 --- a/web/settings/assets/chargePoint-B7gT4Y_a.js +++ b/web/settings/assets/chargePoint-CLglsVkD.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as i,l as p,k as s,e as a,m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const B=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{B as default}; +import{C as r}from"./ChargePointInstallation-C3IshOKk.js";import{_ as i,l as p,k as s,e as a,m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const B=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{B as default}; diff --git a/web/settings/assets/chargePoint-EU5FmrMq.js b/web/settings/assets/chargePoint-Cu68pCda.js similarity index 83% rename from web/settings/assets/chargePoint-EU5FmrMq.js rename to web/settings/assets/chargePoint-Cu68pCda.js index b34b7c6572..235d0be185 100644 --- a/web/settings/assets/chargePoint-EU5FmrMq.js +++ b/web/settings/assets/chargePoint-Cu68pCda.js @@ -1 +1 @@ -import{C as u}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as p,l as t,k as i,e as d,m,y as l,q as c,A as g,u as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},B={class:"charge-point-internal-openwb"};function h(e,n,b,k,v,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",B,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"},{value:"se",text:"openWB SE 11kW"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":n[0]||(n[0]=o=>a.updateMode(o))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"||e.chargePoint.configuration.mode=="se"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":n[1]||(n[1]=o=>e.updateConfiguration(o-1,"configuration.duo_num"))},{help:c(()=>[...n[2]||(n[2]=[g(' Bei einer openWB Duo oder openWB SE Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. Bei einer openWB SE mit einem Ladepunkt ist hier eine 1 einzutragen. ',-1)])]),_:1},8,["model-value"])):f("",!0)])}const D=p(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{D as default}; +import{C as u}from"./ChargePointInstallation-C3IshOKk.js";import{_ as p,l as t,k as i,e as d,m,y as l,q as c,A as g,u as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},B={class:"charge-point-internal-openwb"};function h(e,n,b,k,v,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",B,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"},{value:"se",text:"openWB SE 11kW"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":n[0]||(n[0]=o=>a.updateMode(o))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"||e.chargePoint.configuration.mode=="se"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":n[1]||(n[1]=o=>e.updateConfiguration(o-1,"configuration.duo_num"))},{help:c(()=>[...n[2]||(n[2]=[g(' Bei einer openWB Duo oder openWB SE Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. Bei einer openWB SE mit einem Ladepunkt ist hier eine 1 einzutragen. ',-1)])]),_:1},8,["model-value"])):f("",!0)])}const D=p(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{D as default}; diff --git a/web/settings/assets/chargePoint-BvH8hDwH.js b/web/settings/assets/chargePoint-DHvT86qo.js similarity index 71% rename from web/settings/assets/chargePoint-BvH8hDwH.js rename to web/settings/assets/chargePoint-DHvT86qo.js index b85e04c3f0..15ec11513b 100644 --- a/web/settings/assets/chargePoint-BvH8hDwH.js +++ b/web/settings/assets/chargePoint-DHvT86qo.js @@ -1 +1 @@ -import{C as a}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as i,l as p,k as s,e as u,m as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"ChargePointOpenwbDcAdapter",mixins:[a]},d={class:"charge-point-openwb-dc-adapter"};function m(e,o,g,f,c,b){const n=p("openwb-base-text-input");return s(),u("div",d,[r(n,{title:"URL",subtype:"url",required:"","model-value":e.chargePoint.configuration.url,"onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.url"))},null,8,["model-value"]),r(n,{title:"Benutzername",subtype:"user","model-value":e.chargePoint.configuration.user,"onUpdate:modelValue":o[1]||(o[1]=t=>e.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),r(n,{title:"Passwort",subtype:"password","model-value":e.chargePoint.configuration.password,"onUpdate:modelValue":o[2]||(o[2]=t=>e.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const $=i(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{$ as default}; +import{C as a}from"./ChargePointInstallation-C3IshOKk.js";import{_ as i,l as p,k as s,e as u,m as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"ChargePointOpenwbDcAdapter",mixins:[a]},d={class:"charge-point-openwb-dc-adapter"};function m(e,o,g,f,c,b){const n=p("openwb-base-text-input");return s(),u("div",d,[r(n,{title:"URL",subtype:"url",required:"","model-value":e.chargePoint.configuration.url,"onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.url"))},null,8,["model-value"]),r(n,{title:"Benutzername",subtype:"user","model-value":e.chargePoint.configuration.user,"onUpdate:modelValue":o[1]||(o[1]=t=>e.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),r(n,{title:"Passwort",subtype:"password","model-value":e.chargePoint.configuration.password,"onUpdate:modelValue":o[2]||(o[2]=t=>e.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const $=i(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{$ as default}; diff --git a/web/settings/assets/chargePoint-DAf52UOu.js b/web/settings/assets/chargePoint-f_Y7TEQC.js similarity index 77% rename from web/settings/assets/chargePoint-DAf52UOu.js rename to web/settings/assets/chargePoint-f_Y7TEQC.js index a4cd5f3754..c58ba13fd6 100644 --- a/web/settings/assets/chargePoint-DAf52UOu.js +++ b/web/settings/assets/chargePoint-f_Y7TEQC.js @@ -1 +1 @@ -import{C as s}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as p,l as n,k as u,e as m,m as i,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>[...e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])]),_:1},8,["model-value"])])}const W=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{W as default}; +import{C as s}from"./ChargePointInstallation-C3IshOKk.js";import{_ as p,l as n,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>[...e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])]),_:1},8,["model-value"])])}const W=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{W as default}; diff --git a/web/settings/assets/chargePoint-Xc8TRgTt.js b/web/settings/assets/chargePoint-mAO4xa7T.js similarity index 77% rename from web/settings/assets/chargePoint-Xc8TRgTt.js rename to web/settings/assets/chargePoint-mAO4xa7T.js index 9d0046f696..89f46953de 100644 --- a/web/settings/assets/chargePoint-Xc8TRgTt.js +++ b/web/settings/assets/chargePoint-mAO4xa7T.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{q as default}; +import{C as p}from"./ChargePointInstallation-C3IshOKk.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/commands-BWnrMgVR.js b/web/settings/assets/commands-CZXUCdhE.js similarity index 86% rename from web/settings/assets/commands-BWnrMgVR.js rename to web/settings/assets/commands-CZXUCdhE.js index 4b13a3124e..a6b55be379 100644 --- a/web/settings/assets/commands-BWnrMgVR.js +++ b/web/settings/assets/commands-CZXUCdhE.js @@ -1 +1 @@ -import{a as d}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as u,l as c,k as l,e as g,m as a,q as r,A as p}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}'),this.$root.postClientMessage("Die Aktualisierung der openWB Pro wird gestartet...","info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.","success")}).catch(e=>{var n="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),n+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),n+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),n+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(n,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,s,e,n,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>[...s[0]||(s[0]=[p(" Mit diesem Befehl kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte beachte, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>[...s[1]||(s[1]=[p(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["disabled","onButtonClicked"])])}const E=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{E as default}; +import{a as d}from"./ChargePointInstallation-C3IshOKk.js";import{_ as u,l as c,k as l,e as g,m as a,q as r,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}'),this.$root.postClientMessage("Die Aktualisierung der openWB Pro wird gestartet...","info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.","success")}).catch(e=>{var n="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),n+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),n+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),n+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(n,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,s,e,n,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>[...s[0]||(s[0]=[p(" Mit diesem Befehl kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte beachte, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>[...s[1]||(s[1]=[p(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["disabled","onButtonClicked"])])}const E=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{E as default}; diff --git a/web/settings/assets/commands-Cm8ubOtl.js b/web/settings/assets/commands-Dy4aruCr.js similarity index 88% rename from web/settings/assets/commands-Cm8ubOtl.js rename to web/settings/assets/commands-Dy4aruCr.js index 39b7ed81d0..648bbe2845 100644 --- a/web/settings/assets/commands-Cm8ubOtl.js +++ b/web/settings/assets/commands-Dy4aruCr.js @@ -1 +1 @@ -import{a as g}from"./ChargePointInstallation-CN2wQ7QE.js";import{_ as h,l as u,k as a,e as c,m as d,q as r,A as i,y as _,J as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./SystemVersion-ClVKOJRu.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let t=new FormData;t.append("command","update_pro_plus"),this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wird gestartet...","info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.","success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(t,n,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[t.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>[...n[0]||(n[0]=[i(" Hier kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte stelle sicher, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>[...n[1]||(n[1]=[i(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(t.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const A=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{A as default}; +import{a as g}from"./ChargePointInstallation-C3IshOKk.js";import{_ as h,l as u,k as a,e as c,m as d,q as r,A as i,y as _,J as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let t=new FormData;t.append("command","update_pro_plus"),this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wird gestartet...","info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.","success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(t,n,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[t.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>[...n[0]||(n[0]=[i(" Hier kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte stelle sicher, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>[...n[1]||(n[1]=[i(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(t.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const A=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{A as default}; diff --git a/web/settings/assets/consumption_counter-BpJxB44l.js b/web/settings/assets/consumption_counter-Bdpmpdwz.js similarity index 82% rename from web/settings/assets/consumption_counter-BpJxB44l.js rename to web/settings/assets/consumption_counter-Bdpmpdwz.js index 2a691cb97f..92f2dcf1d0 100644 --- a/web/settings/assets/consumption_counter-BpJxB44l.js +++ b/web/settings/assets/consumption_counter-Bdpmpdwz.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,x,B){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])]),_:1}),t(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,x,B){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])]),_:1}),t(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-D2hwzdNC.js b/web/settings/assets/counter--_w9piHB.js similarity index 69% rename from web/settings/assets/counter-D2hwzdNC.js rename to web/settings/assets/counter--_w9piHB.js index 8977172d19..cab02d3a79 100644 --- a/web/settings/assets/counter-D2hwzdNC.js +++ b/web/settings/assets/counter--_w9piHB.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as u,e as p,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},_={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{D as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as u,e as p,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},_={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-BIWzcwR0.js b/web/settings/assets/counter-0uEca16j.js similarity index 78% rename from web/settings/assets/counter-BIWzcwR0.js rename to web/settings/assets/counter-0uEca16j.js index dd9a125b27..06d0d2896d 100644 --- a/web/settings/assets/counter-BIWzcwR0.js +++ b/web/settings/assets/counter-0uEca16j.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as r,k as p,e as f,m as n,q as s,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeCounter",mixins:[d]},b={class:"device-solaredge-counter"};function c(o,e,_,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),f("div",b,[n(l,null,{default:s(()=>[...e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])]),_:1}),n(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])]),_:1}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const q=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{q as default}; +import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as r,k as p,e as f,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeCounter",mixins:[d]},b={class:"device-solaredge-counter"};function c(o,e,_,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),f("div",b,[n(l,null,{default:s(()=>[...e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])]),_:1}),n(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])]),_:1}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const q=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-7w48jp2T.js b/web/settings/assets/counter-6OwhKOcX.js similarity index 75% rename from web/settings/assets/counter-7w48jp2T.js rename to web/settings/assets/counter-6OwhKOcX.js index 2234bf6ba8..b9e86c5103 100644 --- a/web/settings/assets/counter-7w48jp2T.js +++ b/web/settings/assets/counter-6OwhKOcX.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as s,l as n,k as i,e as a,m as c,q as p,A as o,x as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{Z as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as s,l as n,k as i,e as a,m as c,q as p,A as o,x as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/counter-BIrt9Gpi.js b/web/settings/assets/counter-B4eDF7ya.js similarity index 76% rename from web/settings/assets/counter-BIrt9Gpi.js rename to web/settings/assets/counter-B4eDF7ya.js index 6f23a603a1..638415bd2d 100644 --- a/web/settings/assets/counter-BIrt9Gpi.js +++ b/web/settings/assets/counter-B4eDF7ya.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronCounter",mixins:[a]},_={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])]),_:1}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const q=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{q as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronCounter",mixins:[a]},_={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])]),_:1}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const q=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-BJR0si-b.js b/web/settings/assets/counter-BCEBVxHj.js similarity index 72% rename from web/settings/assets/counter-BJR0si-b.js rename to web/settings/assets/counter-BCEBVxHj.js index f3b2bbf060..c9e0a54e24 100644 --- a/web/settings/assets/counter-BJR0si-b.js +++ b/web/settings/assets/counter-BCEBVxHj.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as t,k as l,e as u,m as n,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},v={class:"device-openwb-evukit-counter"};function _(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{V as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},v={class:"device-openwb-evukit-counter"};function _(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-DgvkQXQL.js b/web/settings/assets/counter-BHm4u10N.js similarity index 75% rename from web/settings/assets/counter-DgvkQXQL.js rename to web/settings/assets/counter-BHm4u10N.js index c5a5125b46..b4c972626a 100644 --- a/web/settings/assets/counter-DgvkQXQL.js +++ b/web/settings/assets/counter-BHm4u10N.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as t,k as m,e as d,m as o,q as i,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])]),_:1}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])]),_:1},8,["model-value"])])}const D=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as m,e as d,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])]),_:1}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])]),_:1},8,["model-value"])])}const D=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-DGVFh31G.js b/web/settings/assets/counter-BLXfQQ6R.js similarity index 67% rename from web/settings/assets/counter-DGVFh31G.js rename to web/settings/assets/counter-BLXfQQ6R.js index c3c045d29e..f694954f38 100644 --- a/web/settings/assets/counter-DGVFh31G.js +++ b/web/settings/assets/counter-BLXfQQ6R.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as u,m as t,q as l,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])]),_:1}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const q=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{q as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])]),_:1}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const q=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-DBa42c5b.js b/web/settings/assets/counter-BT5q5wk9.js similarity index 94% rename from web/settings/assets/counter-DBa42c5b.js rename to web/settings/assets/counter-BT5q5wk9.js index 4f458fd9da..34ef32633e 100644 --- a/web/settings/assets/counter-DBa42c5b.js +++ b/web/settings/assets/counter-BT5q5wk9.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as u,k as g,e as f,m as l,q as i,A as t,x as e,J as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(o,n,z,w,v,W){const m=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard");return g(),f("div",B,[l(m,null,{default:i(()=>[...n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])]),_:1}),l(p,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Zähler '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(p,{subtype:"info"},{default:i(()=>[n[45]||(n[45]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"-123.45",-1))])]),n[46]||(n[46]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/imported ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/exported ",1)]),_:1}),n[15]||(n[15]=e("br",null,null,-1)),n[16]||(n[16]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[17]||(n[17]=e("br",null,null,-1)),n[18]||(n[18]=t(" Beispiel: ",-1)),n[19]||(n[19]=e("span",{class:"text-info"},"123.45",-1))])]),n[47]||(n[47]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/currents ",1)]),_:1}),n[20]||(n[20]=e("br",null,null,-1)),n[21]||(n[21]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[22]||(n[22]=e("br",null,null,-1)),n[23]||(n[23]=t(" Beispiel: ",-1)),n[24]||(n[24]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[48]||(n[48]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/frequency ",1)]),_:1}),n[25]||(n[25]=e("br",null,null,-1)),n[26]||(n[26]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[27]||(n[27]=e("br",null,null,-1)),n[28]||(n[28]=t(" Beispiel: ",-1)),n[29]||(n[29]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/voltages ",1)]),_:1}),n[30]||(n[30]=e("br",null,null,-1)),n[31]||(n[31]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[32]||(n[32]=e("br",null,null,-1)),n[33]||(n[33]=t(" Beispiel: ",-1)),n[34]||(n[34]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/powers ",1)]),_:1}),n[35]||(n[35]=e("br",null,null,-1)),n[36]||(n[36]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[37]||(n[37]=e("br",null,null,-1)),n[38]||(n[38]=t(" Beispiel: ",-1)),n[39]||(n[39]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power_factors ",1)]),_:1}),n[40]||(n[40]=e("br",null,null,-1)),n[41]||(n[41]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Beispiel: ",-1)),n[44]||(n[44]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1})])}const E=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{E as default}; +import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as u,k as g,e as f,m as l,q as i,A as t,x as e,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(o,n,z,w,v,W){const m=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard");return g(),f("div",B,[l(m,null,{default:i(()=>[...n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])]),_:1}),l(p,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Zähler '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(p,{subtype:"info"},{default:i(()=>[n[45]||(n[45]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"-123.45",-1))])]),n[46]||(n[46]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/imported ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/exported ",1)]),_:1}),n[15]||(n[15]=e("br",null,null,-1)),n[16]||(n[16]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[17]||(n[17]=e("br",null,null,-1)),n[18]||(n[18]=t(" Beispiel: ",-1)),n[19]||(n[19]=e("span",{class:"text-info"},"123.45",-1))])]),n[47]||(n[47]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/currents ",1)]),_:1}),n[20]||(n[20]=e("br",null,null,-1)),n[21]||(n[21]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[22]||(n[22]=e("br",null,null,-1)),n[23]||(n[23]=t(" Beispiel: ",-1)),n[24]||(n[24]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[48]||(n[48]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/frequency ",1)]),_:1}),n[25]||(n[25]=e("br",null,null,-1)),n[26]||(n[26]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[27]||(n[27]=e("br",null,null,-1)),n[28]||(n[28]=t(" Beispiel: ",-1)),n[29]||(n[29]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/voltages ",1)]),_:1}),n[30]||(n[30]=e("br",null,null,-1)),n[31]||(n[31]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[32]||(n[32]=e("br",null,null,-1)),n[33]||(n[33]=t(" Beispiel: ",-1)),n[34]||(n[34]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/powers ",1)]),_:1}),n[35]||(n[35]=e("br",null,null,-1)),n[36]||(n[36]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[37]||(n[37]=e("br",null,null,-1)),n[38]||(n[38]=t(" Beispiel: ",-1)),n[39]||(n[39]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power_factors ",1)]),_:1}),n[40]||(n[40]=e("br",null,null,-1)),n[41]||(n[41]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Beispiel: ",-1)),n[44]||(n[44]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1})])}const E=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-BtWEtGR4.js b/web/settings/assets/counter-BlNNf5pm.js similarity index 95% rename from web/settings/assets/counter-BtWEtGR4.js rename to web/settings/assets/counter-BlNNf5pm.js index c98e1a32a4..6a93ff8933 100644 --- a/web/settings/assets/counter-BtWEtGR4.js +++ b/web/settings/assets/counter-BlNNf5pm.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as u,k as f,e as m,m as t,q as r,A as a,x as g}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,P,C){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>[...e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>[...e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>[...e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>[...e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const Z=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{Z as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as u,k as f,e as m,m as t,q as r,A as a,x as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,P,C){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>[...e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>[...e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>[...e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>[...e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const Z=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/counter-qhWGTyvQ.js b/web/settings/assets/counter-CC6Wx6xY.js similarity index 69% rename from web/settings/assets/counter-qhWGTyvQ.js rename to web/settings/assets/counter-CC6Wx6xY.js index 82000ed997..7362fca4e1 100644 --- a/web/settings/assets/counter-qhWGTyvQ.js +++ b/web/settings/assets/counter-CC6Wx6xY.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as u,e as m,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoyCounter",mixins:[a]},_={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return u(),m("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as u,e as m,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoyCounter",mixins:[a]},_={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return u(),m("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-CLQGKxf9.js b/web/settings/assets/counter-CEU7NcUL.js similarity index 68% rename from web/settings/assets/counter-CLQGKxf9.js rename to web/settings/assets/counter-CEU7NcUL.js index b4e6b24986..a42e27cc1e 100644 --- a/web/settings/assets/counter-CLQGKxf9.js +++ b/web/settings/assets/counter-CEU7NcUL.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{h as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{h as default}; diff --git a/web/settings/assets/counter-wZOjez1P.js b/web/settings/assets/counter-CPpOsUI8.js similarity index 81% rename from web/settings/assets/counter-wZOjez1P.js rename to web/settings/assets/counter-CPpOsUI8.js index d81f58713e..56f8cc673a 100644 --- a/web/settings/assets/counter-wZOjez1P.js +++ b/web/settings/assets/counter-CPpOsUI8.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as r,k as m,e as g,m as t,q as l,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerCounter",mixins:[p]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),s=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])]),_:1}),t(s,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const q=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as r,k as m,e as g,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerCounter",mixins:[p]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),s=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])]),_:1}),t(s,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const q=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-BaEuP6KK.js b/web/settings/assets/counter-CRWkZPyn.js similarity index 68% rename from web/settings/assets/counter-BaEuP6KK.js rename to web/settings/assets/counter-CRWkZPyn.js index 35222763a3..83c34269f9 100644 --- a/web/settings/assets/counter-BaEuP6KK.js +++ b/web/settings/assets/counter-CRWkZPyn.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibeCounter",mixins:[p]},b={class:"device-nibe-counter"};function _(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibeCounter",mixins:[p]},b={class:"device-nibe-counter"};function _(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-CgTgRAdg.js b/web/settings/assets/counter-CTI3HQV5.js similarity index 80% rename from web/settings/assets/counter-CgTgRAdg.js rename to web/settings/assets/counter-CTI3HQV5.js index d1c870ef7c..756410296d 100644 --- a/web/settings/assets/counter-CgTgRAdg.js +++ b/web/settings/assets/counter-CTI3HQV5.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as s,l as a,k as i,e as l,m as c,q as m,x as e,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function d(_,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[c(t,{subtype:"info"},{default:m(()=>[...o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])]),_:1})])}const S=s(p,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{S as default}; +import{C as n}from"./HardwareInstallation-caZ0sA9z.js";import{_ as s,l as a,k as i,e as l,m as c,q as m,x as e,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function d(_,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[c(t,{subtype:"info"},{default:m(()=>[...o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])]),_:1})])}const S=s(p,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{S as default}; diff --git a/web/settings/assets/counter-DjAjHmkw.js b/web/settings/assets/counter-CXEiOT31.js similarity index 70% rename from web/settings/assets/counter-DjAjHmkw.js rename to web/settings/assets/counter-CXEiOT31.js index 707047e42f..330a4d082d 100644 --- a/web/settings/assets/counter-DjAjHmkw.js +++ b/web/settings/assets/counter-CXEiOT31.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,w){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])]),_:1}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])]),_:1},8,["model-value"])])}const I=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,w){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])]),_:1}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])]),_:1},8,["model-value"])])}const I=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{I as default}; diff --git a/web/settings/assets/counter-CGyjt9cy.js b/web/settings/assets/counter-CZ_dQPx3.js similarity index 63% rename from web/settings/assets/counter-CGyjt9cy.js rename to web/settings/assets/counter-CZ_dQPx3.js index f9d299bc29..7022f82a77 100644 --- a/web/settings/assets/counter-CGyjt9cy.js +++ b/web/settings/assets/counter-CZ_dQPx3.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as o,l as s,k as r,e as a,m as i,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>[...e[0]||(e[0]=[c(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])]),_:1})])}const B=o(p,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{B as default}; +import{C as n}from"./HardwareInstallation-caZ0sA9z.js";import{_ as o,l as s,k as r,e as a,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>[...e[0]||(e[0]=[c(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])]),_:1})])}const B=o(p,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter-CTm4GPYN.js b/web/settings/assets/counter-CecO70YK.js similarity index 68% rename from web/settings/assets/counter-CTm4GPYN.js rename to web/settings/assets/counter-CecO70YK.js index c59753f05e..1517a96de1 100644 --- a/web/settings/assets/counter-CTm4GPYN.js +++ b/web/settings/assets/counter-CecO70YK.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>[...o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>[...o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-DmfgTjlt.js b/web/settings/assets/counter-CelzGZK-.js similarity index 73% rename from web/settings/assets/counter-DmfgTjlt.js rename to web/settings/assets/counter-CelzGZK-.js index e01dc9c423..76792052da 100644 --- a/web/settings/assets/counter-DmfgTjlt.js +++ b/web/settings/assets/counter-CelzGZK-.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as n,k as l,e as c,m as o,q as i,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKacoNHCounter",mixins:[u]},b={class:"device-kaco-nh-counter"};function f(t,e,g,v,w,k){const a=n("openwb-base-heading"),r=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),c("div",b,[o(a,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kaco NH SmartMeter ",-1)])]),_:1}),o(r,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[s(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1}),o(p,{title:"ID",required:"",min:"0",max:"65535","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=m=>t.updateConfiguration(m,"configuration.id"))},null,8,["model-value"])])}const q=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/counter.vue"]]);export{q as default}; +import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as l,e as c,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKacoNHCounter",mixins:[u]},b={class:"device-kaco-nh-counter"};function f(t,e,g,v,w,k){const a=n("openwb-base-heading"),r=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),c("div",b,[o(a,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kaco NH SmartMeter ",-1)])]),_:1}),o(r,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[s(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1}),o(p,{title:"ID",required:"",min:"0",max:"65535","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=m=>t.updateConfiguration(m,"configuration.id"))},null,8,["model-value"])])}const q=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-DoHxJYIa.js b/web/settings/assets/counter-Ckg8eTmY.js similarity index 71% rename from web/settings/assets/counter-DoHxJYIa.js rename to web/settings/assets/counter-Ckg8eTmY.js index 9776ddae27..e64fdc5df8 100644 --- a/web/settings/assets/counter-DoHxJYIa.js +++ b/web/settings/assets/counter-Ckg8eTmY.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as n,k as d,e as l,m as t,q as i,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiCounter",mixins:[m]},c={class:"device-kostal-piko-ci-counter"};function b(e,o,f,k,v,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return d(),l("div",c,[t(r,null,{default:i(()=>[...o[1]||(o[1]=[s(" Einstellungen für Kostal Piko CI Zähler ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=p=>e.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...o[2]||(o[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/counter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiCounter",mixins:[m]},c={class:"device-kostal-piko-ci-counter"};function b(e,o,f,k,v,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return d(),l("div",c,[t(r,null,{default:i(()=>[...o[1]||(o[1]=[s(" Einstellungen für Kostal Piko CI Zähler ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=p=>e.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...o[2]||(o[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-vfGAGxPT.js b/web/settings/assets/counter-CrJU9pQp.js similarity index 78% rename from web/settings/assets/counter-vfGAGxPT.js rename to web/settings/assets/counter-CrJU9pQp.js index d4dc244202..d3c932b24c 100644 --- a/web/settings/assets/counter-vfGAGxPT.js +++ b/web/settings/assets/counter-CrJU9pQp.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as t,k as l,e as d,m as r,q as i,A as n,x as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])]),_:1}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>[...e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])]),_:1},8,["model-value"])])}const $=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as l,e as d,m as r,q as i,A as n,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])]),_:1}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>[...e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])]),_:1},8,["model-value"])])}const $=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-5pxQAacz.js b/web/settings/assets/counter-CsLEIGLq.js similarity index 84% rename from web/settings/assets/counter-5pxQAacz.js rename to web/settings/assets/counter-CsLEIGLq.js index 4ee69b46b9..a1d99555cf 100644 --- a/web/settings/assets/counter-5pxQAacz.js +++ b/web/settings/assets/counter-CsLEIGLq.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as t,k as c,e as m,m as r,q as i,A as n,x as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},b={class:"device-powerfox-counter"};function g(o,e,w,x,_,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return c(),m("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{A as default}; +import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as c,e as m,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},b={class:"device-powerfox-counter"};function g(o,e,w,x,_,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return c(),m("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-tXy6FaDb.js b/web/settings/assets/counter-CuyIQkwJ.js similarity index 61% rename from web/settings/assets/counter-tXy6FaDb.js rename to web/settings/assets/counter-CuyIQkwJ.js index 68dc20d90b..546f9b3679 100644 --- a/web/settings/assets/counter-tXy6FaDb.js +++ b/web/settings/assets/counter-CuyIQkwJ.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as n,l as s,k as a,e as i,m as r,q as p,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceJanitzaBat",mixins:[o]},u={class:"device-janitza-counter"};function _(d,e,f,l,v,b){const t=s("openwb-base-alert");return a(),i("div",u,[r(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])]),_:1})])}const j=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{j as default}; +import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as a,e as i,m as r,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceJanitzaBat",mixins:[o]},u={class:"device-janitza-counter"};function _(d,e,f,l,v,b){const t=s("openwb-base-alert");return a(),i("div",u,[r(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])]),_:1})])}const j=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{j as default}; diff --git a/web/settings/assets/counter-Djlwa9Bh.js b/web/settings/assets/counter-CyFXwCq_.js similarity index 75% rename from web/settings/assets/counter-Djlwa9Bh.js rename to web/settings/assets/counter-CyFXwCq_.js index 1e11091d74..2839d0de5f 100644 --- a/web/settings/assets/counter-Djlwa9Bh.js +++ b/web/settings/assets/counter-CyFXwCq_.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as n,l as s,k as i,e as a,m as c,q as p,A as o,x as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{Z as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as i,e as a,m as c,q as p,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/counter-BK2vVSqM.js b/web/settings/assets/counter-CyagC1co.js similarity index 58% rename from web/settings/assets/counter-BK2vVSqM.js rename to web/settings/assets/counter-CyagC1co.js index aab945da1b..f8732f40eb 100644 --- a/web/settings/assets/counter-BK2vVSqM.js +++ b/web/settings/assets/counter-CyagC1co.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as n,l as s,k as r,e as i,m as a,q as p,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=s("openwb-base-alert");return r(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const g=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{g as default}; +import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as r,e as i,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=s("openwb-base-alert");return r(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const g=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{g as default}; diff --git a/web/settings/assets/counter-Uah7XeY0.js b/web/settings/assets/counter-D0K3UCGT.js similarity index 63% rename from web/settings/assets/counter-Uah7XeY0.js rename to web/settings/assets/counter-D0K3UCGT.js index 94a6640aff..8a4a04883b 100644 --- a/web/settings/assets/counter-Uah7XeY0.js +++ b/web/settings/assets/counter-D0K3UCGT.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as o,l as s,k as i,e as r,m as a,q as p,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},d={class:"device-sonnenbatterie-counter"};function _(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",d,[a(n,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1})])}const M=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{M as default}; +import{C as t}from"./HardwareInstallation-caZ0sA9z.js";import{_ as o,l as s,k as i,e as r,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},d={class:"device-sonnenbatterie-counter"};function _(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",d,[a(n,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1})])}const M=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-Vg4B6aCH.js b/web/settings/assets/counter-D7_oD-KG.js similarity index 67% rename from web/settings/assets/counter-Vg4B6aCH.js rename to web/settings/assets/counter-D7_oD-KG.js index 2426563443..8bb2973112 100644 --- a/web/settings/assets/counter-Vg4B6aCH.js +++ b/web/settings/assets/counter-D7_oD-KG.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as t,k as p,e as u,m as n,q as l,A as d}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as p,e as u,m as n,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-3vED9-83.js b/web/settings/assets/counter-DB0QI8WO.js similarity index 68% rename from web/settings/assets/counter-3vED9-83.js rename to web/settings/assets/counter-DB0QI8WO.js index b8ffc4d1a4..b4e5514c6c 100644 --- a/web/settings/assets/counter-3vED9-83.js +++ b/web/settings/assets/counter-DB0QI8WO.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as n,k as m,e as u,m as t,q as l,A as d}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-BWJaZ8Em.js b/web/settings/assets/counter-DEQJUFuW.js similarity index 64% rename from web/settings/assets/counter-BWJaZ8Em.js rename to web/settings/assets/counter-DEQJUFuW.js index 18edf63209..0759194add 100644 --- a/web/settings/assets/counter-BWJaZ8Em.js +++ b/web/settings/assets/counter-DEQJUFuW.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as s,l as n,k as r,e as a,m as i,q as c,A as p}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function d(_,e,u,f,b,h){const t=n("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])]),_:1})])}const K=s(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{K as default}; +import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as s,l as n,k as r,e as a,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function d(_,e,u,f,b,h){const t=n("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])]),_:1})])}const K=s(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{K as default}; diff --git a/web/settings/assets/counter-DQqlicig.js b/web/settings/assets/counter-DNHoKahk.js similarity index 81% rename from web/settings/assets/counter-DQqlicig.js rename to web/settings/assets/counter-DNHoKahk.js index 30d00d97f3..a8b6a84016 100644 --- a/web/settings/assets/counter-DQqlicig.js +++ b/web/settings/assets/counter-DNHoKahk.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as o,k as b,e as c,m as t,q as r,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceOpenwbFlexCounter",mixins:[d]},_={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),c("div",_,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as b,e as c,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceOpenwbFlexCounter",mixins:[d]},_={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),c("div",_,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-CvGKgUX3.js b/web/settings/assets/counter-DW8E1juF.js similarity index 70% rename from web/settings/assets/counter-CvGKgUX3.js rename to web/settings/assets/counter-DW8E1juF.js index 4c519dfc63..84210f25df 100644 --- a/web/settings/assets/counter-CvGKgUX3.js +++ b/web/settings/assets/counter-DW8E1juF.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as n,k as d,e as c,m as t,q as i,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as d,e as c,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-BjmUAD29.js b/web/settings/assets/counter-DaNvZOHB.js similarity index 95% rename from web/settings/assets/counter-BjmUAD29.js rename to web/settings/assets/counter-DaNvZOHB.js index ab5df3a468..61d70d12e1 100644 --- a/web/settings/assets/counter-BjmUAD29.js +++ b/web/settings/assets/counter-DaNvZOHB.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as s,k as p,e as g,m as i,q as a,A as n,x as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>[...e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])]),_:1}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>[...e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const U=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{U as default}; +import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as s,k as p,e as g,m as i,q as a,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>[...e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])]),_:1}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>[...e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const U=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter-DP3HnvjD.js b/web/settings/assets/counter-DmRpgOsE.js similarity index 81% rename from web/settings/assets/counter-DP3HnvjD.js rename to web/settings/assets/counter-DmRpgOsE.js index 904e4df371..5ea6a20069 100644 --- a/web/settings/assets/counter-DP3HnvjD.js +++ b/web/settings/assets/counter-DmRpgOsE.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDiscovergyCounter",mixins:[d]},g={class:"device-discovergy-counter"};function _(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",g,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const z=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{z as default}; +import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDiscovergyCounter",mixins:[d]},g={class:"device-discovergy-counter"};function _(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",g,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const z=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{z as default}; diff --git a/web/settings/assets/counter-BAPZU0r9.js b/web/settings/assets/counter-DtJWRRZK.js similarity index 70% rename from web/settings/assets/counter-BAPZU0r9.js rename to web/settings/assets/counter-DtJWRRZK.js index 315c66ace9..ace7666364 100644 --- a/web/settings/assets/counter-BAPZU0r9.js +++ b/web/settings/assets/counter-DtJWRRZK.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as t,k as a,e as l,m as n,q as d,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:d(()=>[...o[1]||(o[1]=[m(" Einstellungen für Powerdog Zähler ",-1)])]),_:1}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const B=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{B as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as a,e as l,m as n,q as d,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:d(()=>[...o[1]||(o[1]=[m(" Einstellungen für Powerdog Zähler ",-1)])]),_:1}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const B=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter-BCluWY83.js b/web/settings/assets/counter-DwjPMM-K.js similarity index 68% rename from web/settings/assets/counter-BCluWY83.js rename to web/settings/assets/counter-DwjPMM-K.js index 3a65631512..d3aeebf5fa 100644 --- a/web/settings/assets/counter-BCluWY83.js +++ b/web/settings/assets/counter-DwjPMM-K.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-DMohbFiU.js b/web/settings/assets/counter-DyQR5TFM.js similarity index 71% rename from web/settings/assets/counter-DMohbFiU.js rename to web/settings/assets/counter-DyQR5TFM.js index 3678162209..e4384a60a7 100644 --- a/web/settings/assets/counter-DMohbFiU.js +++ b/web/settings/assets/counter-DyQR5TFM.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(n,e,b,f,v,C){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const M=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(n,e,b,f,v,C){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const M=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-DnDfTViH.js b/web/settings/assets/counter-Jn3S4DeN.js similarity index 71% rename from web/settings/assets/counter-DnDfTViH.js rename to web/settings/assets/counter-Jn3S4DeN.js index 9f58db1cc2..be23e35622 100644 --- a/web/settings/assets/counter-DnDfTViH.js +++ b/web/settings/assets/counter-Jn3S4DeN.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as c,l as t,k as m,e as d,m as o,q as s,A as l,x as n,J as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,x,v){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return m(),d("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as c,l as t,k as m,e as d,m as o,q as s,A as l,x as n,J as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,x,v){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return m(),d("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-bKGHqli_.js b/web/settings/assets/counter-QsKjzQAu.js similarity index 60% rename from web/settings/assets/counter-bKGHqli_.js rename to web/settings/assets/counter-QsKjzQAu.js index 2ecc2df87f..9f721cb746 100644 --- a/web/settings/assets/counter-bKGHqli_.js +++ b/web/settings/assets/counter-QsKjzQAu.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as n,l as s,k as a,e as r,m as i,q as c,A as p}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=s("openwb-base-alert");return a(),r("div",_,[i(o,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const M=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{M as default}; +import{C as t}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as a,e as r,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=s("openwb-base-alert");return a(),r("div",_,[i(o,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const M=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-By6rXji5.js b/web/settings/assets/counter-hPhZIn1G.js similarity index 63% rename from web/settings/assets/counter-By6rXji5.js rename to web/settings/assets/counter-hPhZIn1G.js index 25082d302b..730954213f 100644 --- a/web/settings/assets/counter-By6rXji5.js +++ b/web/settings/assets/counter-hPhZIn1G.js @@ -1 +1 @@ -import{C as i}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as r,l as s,k as m,e as p,m as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const a={name:"DeviceChintCounter",mixins:[i]},c={class:"device-chint-counter"};function d(e,o,l,_,f,b){const n=s("openwb-base-number-input");return m(),p("div",c,[u(n,{title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"])])}const B=r(a,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/counter.vue"]]);export{B as default}; +import{C as i}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as s,k as m,e as p,m as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const a={name:"DeviceChintCounter",mixins:[i]},c={class:"device-chint-counter"};function d(e,o,l,_,f,b){const n=s("openwb-base-number-input");return m(),p("div",c,[u(n,{title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"])])}const B=r(a,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/counter.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter_consumption-BITJZNE7.js b/web/settings/assets/counter_consumption-D5PXSIy2.js similarity index 75% rename from web/settings/assets/counter_consumption-BITJZNE7.js rename to web/settings/assets/counter_consumption-D5PXSIy2.js index b2ec94635a..736551a5b2 100644 --- a/web/settings/assets/counter_consumption-BITJZNE7.js +++ b/web/settings/assets/counter_consumption-D5PXSIy2.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as p,k as d,e as u,m as t,q as o,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},c={class:"device-sonnenbatterie-counter-consumption"};function m(i,e,f,_,b,v){const n=p("openwb-base-alert");return d(),u("div",c,[t(n,{subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])]),_:1}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])]),_:1},8,["subtype"])])}const E=a(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{E as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as p,k as d,e as u,m as t,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},c={class:"device-sonnenbatterie-counter-consumption"};function m(i,e,f,_,b,v){const n=p("openwb-base-alert");return d(),u("div",c,[t(n,{subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])]),_:1}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])]),_:1},8,["subtype"])])}const E=a(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter_maxstorage-BtpuH_Y8.js b/web/settings/assets/counter_maxstorage-Dfob-vfT.js similarity index 76% rename from web/settings/assets/counter_maxstorage-BtpuH_Y8.js rename to web/settings/assets/counter_maxstorage-Dfob-vfT.js index 98156348f7..d122c93747 100644 --- a/web/settings/assets/counter_maxstorage-BtpuH_Y8.js +++ b/web/settings/assets/counter_maxstorage-Dfob-vfT.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as o,k as d,e as _,m as n,q as a,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxMsCounter",mixins:[p]},b={class:"device-solarmax-counter-maxstorage"};function f(t,e,g,x,v,A){const r=o("openwb-base-heading"),i=o("openwb-base-alert"),m=o("openwb-base-number-input");return d(),_("div",b,[n(r,null,{default:a(()=>[...e[1]||(e[1]=[s(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zähler ",-1)])]),_:1}),n(i,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Bei Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zählern lassen sich die Ströme einzelner Phasen nicht auslesen. Eine Regelung ist daher nur anhand der Gesamtleistung möglich. ",-1)])]),_:1}),n(m,{title:"Modbus ID",required:"","model-value":t.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/counter_maxstorage.vue"]]);export{T as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as o,k as d,e as _,m as n,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxMsCounter",mixins:[p]},b={class:"device-solarmax-counter-maxstorage"};function f(t,e,g,x,v,A){const r=o("openwb-base-heading"),i=o("openwb-base-alert"),m=o("openwb-base-number-input");return d(),_("div",b,[n(r,null,{default:a(()=>[...e[1]||(e[1]=[s(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zähler ",-1)])]),_:1}),n(i,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Bei Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zählern lassen sich die Ströme einzelner Phasen nicht auslesen. Eine Regelung ist daher nur anhand der Gesamtleistung möglich. ",-1)])]),_:1}),n(m,{title:"Modbus ID",required:"","model-value":t.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/counter_maxstorage.vue"]]);export{T as default}; diff --git a/web/settings/assets/counter_sm-Dr8SNBvC.js b/web/settings/assets/counter_sm-C8EnC_ax.js similarity index 87% rename from web/settings/assets/counter_sm-Dr8SNBvC.js rename to web/settings/assets/counter_sm-C8EnC_ax.js index 275a4285b4..7f2fcfaec1 100644 --- a/web/settings/assets/counter_sm-Dr8SNBvC.js +++ b/web/settings/assets/counter_sm-C8EnC_ax.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as f,l as i,k as g,e as c,m as o,q as a,A as t,x as l,J as b}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,k,S,s){const d=i("openwb-base-heading"),m=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(d,null,{default:a(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])]),_:1}),o(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>[...e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as f,l as i,k as g,e as c,m as o,q as a,A as t,x as l,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,k,S,s){const d=i("openwb-base-heading"),m=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(d,null,{default:a(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])]),_:1}),o(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>[...e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-C9SjhtIi.js b/web/settings/assets/device-0LygQjSp.js similarity index 78% rename from web/settings/assets/device-C9SjhtIi.js rename to web/settings/assets/device-0LygQjSp.js index 47fad70254..88e29b305f 100644 --- a/web/settings/assets/device-C9SjhtIi.js +++ b/web/settings/assets/device-0LygQjSp.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as i,k as l,e as p,m as t,q as m,A as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceKostalSEM",mixins:[d]},v={class:"device-kostal-sem"};function _(o,e,c,g,w,k){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",v,[t(s,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{B as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as l,e as p,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceKostalSEM",mixins:[d]},v={class:"device-kostal-sem"};function _(o,e,c,g,w,k){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",v,[t(s,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-B7cffUIf.js b/web/settings/assets/device-0TBG9Kdm.js similarity index 68% rename from web/settings/assets/device-B7cffUIf.js rename to web/settings/assets/device-0TBG9Kdm.js index c451296aeb..9ca78e2e54 100644 --- a/web/settings/assets/device-B7cffUIf.js +++ b/web/settings/assets/device-0TBG9Kdm.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as p,e as l,m as n,q as m,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarWorld",mixins:[a]},u={class:"device-solar_world"};function f(o,e,v,b,w,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),l("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{h as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as p,e as l,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarWorld",mixins:[a]},u={class:"device-solar_world"};function f(o,e,v,b,w,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),l("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-C6CeoSzW.js b/web/settings/assets/device-2ydQEeHL.js similarity index 89% rename from web/settings/assets/device-C6CeoSzW.js rename to web/settings/assets/device-2ydQEeHL.js index 7d8836b03c..53b90149c9 100644 --- a/web/settings/assets/device-C6CeoSzW.js +++ b/web/settings/assets/device-2ydQEeHL.js @@ -1 +1 @@ -import{D as w}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as c,l as t,k as s,e as f,m as r,q as a,A as o,y as d,u as l,x as v}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHuawei",mixins:[w]},_={class:"device-huawei"};function k(n,e,D,H,C,y){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",_,[r(p,null,{default:a(()=>[...e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])]),_:1}),r(m,{subtype:"info"},{default:a(()=>[...e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])]),_:1}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>[...e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])]),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>[...e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])]),_:1},8,["model-value"])])}const E=c(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{E as default}; +import{D as w}from"./HardwareInstallation-caZ0sA9z.js";import{_ as c,l as t,k as s,e as f,m as r,q as a,A as o,y as d,u as l,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHuawei",mixins:[w]},_={class:"device-huawei"};function k(n,e,D,H,C,y){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",_,[r(p,null,{default:a(()=>[...e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])]),_:1}),r(m,{subtype:"info"},{default:a(()=>[...e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])]),_:1}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>[...e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])]),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>[...e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])]),_:1},8,["model-value"])])}const E=c(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-W6_kwen7.js b/web/settings/assets/device-3d8A9kvB.js similarity index 67% rename from web/settings/assets/device-W6_kwen7.js rename to web/settings/assets/device-3d8A9kvB.js index 3f5f5e2fab..0b9e4f8b6a 100644 --- a/web/settings/assets/device-W6_kwen7.js +++ b/web/settings/assets/device-3d8A9kvB.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as t,k as d,e as c,m as n,q as m,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceRCT",mixins:[a]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{h as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as d,e as c,m as n,q as m,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceRCT",mixins:[a]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-BKr8ZHKi.js b/web/settings/assets/device-64nbgpYC.js similarity index 77% rename from web/settings/assets/device-BKr8ZHKi.js rename to web/settings/assets/device-64nbgpYC.js index 84a41a617f..10e20fa04b 100644 --- a/web/settings/assets/device-BKr8ZHKi.js +++ b/web/settings/assets/device-64nbgpYC.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJanitza",mixins:[d]},v={class:"device-janitza"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{B as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJanitza",mixins:[d]},v={class:"device-janitza"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-BPkP7kTF.js b/web/settings/assets/device-8genQHND.js similarity index 67% rename from web/settings/assets/device-BPkP7kTF.js rename to web/settings/assets/device-8genQHND.js index d22461e220..d1d798e848 100644 --- a/web/settings/assets/device-BPkP7kTF.js +++ b/web/settings/assets/device-8genQHND.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as o,k as d,e as l,m as t,q as m,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceBenning",mixins:[a]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>[...e[1]||(e[1]=[u("Einstellungen für Benning",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as d,e as l,m as t,q as m,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceBenning",mixins:[a]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>[...e[1]||(e[1]=[u("Einstellungen für Benning",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-B4KoucpX.js b/web/settings/assets/device-B-Mmd5Ze.js similarity index 80% rename from web/settings/assets/device-B4KoucpX.js rename to web/settings/assets/device-B-Mmd5Ze.js index 029421d9ab..a27925a82f 100644 --- a/web/settings/assets/device-B4KoucpX.js +++ b/web/settings/assets/device-B-Mmd5Ze.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as i,k as b,e as g,m as t,q as s,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSG",mixins:[p]},_={class:"device-sungrow-sg"};function v(o,e,c,w,C,S){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),g("div",_,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[u(" Einstellungen für Sungrow SG Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const N=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sg/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as b,e as g,m as t,q as s,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSG",mixins:[p]},_={class:"device-sungrow-sg"};function v(o,e,c,w,C,S){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),g("div",_,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[u(" Einstellungen für Sungrow SG Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const N=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sg/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-B6cd6sbt.js b/web/settings/assets/device-B0uzBvUm.js similarity index 73% rename from web/settings/assets/device-B6cd6sbt.js rename to web/settings/assets/device-B0uzBvUm.js index e74bb1bbb6..cfcc8886f8 100644 --- a/web/settings/assets/device-B6cd6sbt.js +++ b/web/settings/assets/device-B0uzBvUm.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as m,e as u,m as i,q as l,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceMTec",mixins:[p]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{T as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as m,e as u,m as i,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceMTec",mixins:[p]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-CSEKL3kY.js b/web/settings/assets/device-B1gW7XBg.js similarity index 84% rename from web/settings/assets/device-CSEKL3kY.js rename to web/settings/assets/device-B1gW7XBg.js index fcfa646fe4..e28f5fde26 100644 --- a/web/settings/assets/device-CSEKL3kY.js +++ b/web/settings/assets/device-B1gW7XBg.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as p,e as c,m as t,q as s,A as o,x as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFronius",mixins:[u]},b={class:"device-fronius"};function g(i,e,v,h,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const F=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{F as default}; +import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as p,e as c,m as t,q as s,A as o,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFronius",mixins:[u]},b={class:"device-fronius"};function g(i,e,v,h,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const F=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{F as default}; diff --git a/web/settings/assets/device-UTh7kxrR.js b/web/settings/assets/device-B3RxzTPC.js similarity index 80% rename from web/settings/assets/device-UTh7kxrR.js rename to web/settings/assets/device-B3RxzTPC.js index ae56bc6128..577d9afcb7 100644 --- a/web/settings/assets/device-UTh7kxrR.js +++ b/web/settings/assets/device-B3RxzTPC.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as i,k as b,e as f,m as t,q as r,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(u,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{B as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as b,e as f,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(u,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-B_aGjQ2l.js b/web/settings/assets/device-B4WlrUah.js similarity index 75% rename from web/settings/assets/device-B_aGjQ2l.js rename to web/settings/assets/device-B4WlrUah.js index a4987eec19..a5a61e3a83 100644 --- a/web/settings/assets/device-B_aGjQ2l.js +++ b/web/settings/assets/device-B4WlrUah.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as l,e as c,m as i,q as a,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>[...e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])]),_:1},8,["model-value"])])}const E=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{E as default}; +import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as l,e as c,m as i,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>[...e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])]),_:1},8,["model-value"])])}const E=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-D9TXMIH0.js b/web/settings/assets/device-B6NzT0C2.js similarity index 74% rename from web/settings/assets/device-D9TXMIH0.js rename to web/settings/assets/device-B6NzT0C2.js index 601e131069..13187ff5a5 100644 --- a/web/settings/assets/device-D9TXMIH0.js +++ b/web/settings/assets/device-B6NzT0C2.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as t,k as d,e as u,m as i,q as m,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOne",mixins:[p]},f={class:"device-solakon-one"};function b(o,e,v,g,k,w){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return d(),u("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für Solakon One",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as d,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOne",mixins:[p]},f={class:"device-solakon-one"};function b(o,e,v,g,k,w){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return d(),u("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für Solakon One",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-CuyMfOZ0.js b/web/settings/assets/device-B6xK4kG_.js similarity index 74% rename from web/settings/assets/device-CuyMfOZ0.js rename to web/settings/assets/device-B6xK4kG_.js index d8df2e5f6e..f0b3a4c74b 100644 --- a/web/settings/assets/device-CuyMfOZ0.js +++ b/web/settings/assets/device-B6xK4kG_.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as g}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSigenergy",mixins:[p]},_={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[g("Einstellungen für Sigenergy",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSigenergy",mixins:[p]},_={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[g("Einstellungen für Sigenergy",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-jMvVzRzh.js b/web/settings/assets/device-B7DCatpp.js similarity index 79% rename from web/settings/assets/device-jMvVzRzh.js rename to web/settings/assets/device-B7DCatpp.js index 2cc0a027ce..6380835c61 100644 --- a/web/settings/assets/device-jMvVzRzh.js +++ b/web/settings/assets/device-B7DCatpp.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as d}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceIDM",mixins:[m]},v={class:"device-idm"};function c(o,e,g,w,C,D){const r=i("openwb-base-heading"),u=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(r,null,{default:a(()=>[...e[3]||(e[3]=[d(" Einstellungen für IDM ",-1)])]),_:1}),t(u,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss in der Fachmannebene aktiviert sein. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/idm/idm/device.vue"]]);export{P as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceIDM",mixins:[m]},v={class:"device-idm"};function c(o,e,g,w,C,D){const r=i("openwb-base-heading"),u=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(r,null,{default:a(()=>[...e[3]||(e[3]=[d(" Einstellungen für IDM ",-1)])]),_:1}),t(u,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss in der Fachmannebene aktiviert sein. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/idm/idm/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-Db5wbl5h.js b/web/settings/assets/device-B8HOK5np.js similarity index 77% rename from web/settings/assets/device-Db5wbl5h.js rename to web/settings/assets/device-B8HOK5np.js index a9bbb6db84..ad08ec5736 100644 --- a/web/settings/assets/device-Db5wbl5h.js +++ b/web/settings/assets/device-B8HOK5np.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{U as default}; +import{D as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-BFYx_CN0.js b/web/settings/assets/device-B9Y-E4ZO.js similarity index 81% rename from web/settings/assets/device-BFYx_CN0.js rename to web/settings/assets/device-B9Y-E4ZO.js index c32c50292c..ca4a15cdfb 100644 --- a/web/settings/assets/device-BFYx_CN0.js +++ b/web/settings/assets/device-B9Y-E4ZO.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSungrowIHM",mixins:[m]},g={class:"device-sungrow-ihm"};function v(o,e,c,w,C,k){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Sungrow iHomeManager",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" In der iSolarCloud muss Modbus TCP für Port 503 (!!!) aktiviert werden. Port 502 ist für die Kommunikation mit dem Wechselrichter vorgesehen. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_ihm/device.vue"]]);export{B as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSungrowIHM",mixins:[m]},g={class:"device-sungrow-ihm"};function v(o,e,c,w,C,k){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Sungrow iHomeManager",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" In der iSolarCloud muss Modbus TCP für Port 503 (!!!) aktiviert werden. Port 502 ist für die Kommunikation mit dem Wechselrichter vorgesehen. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_ihm/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-CzgpdtMj.js b/web/settings/assets/device-BJt2AdWR.js similarity index 79% rename from web/settings/assets/device-CzgpdtMj.js rename to web/settings/assets/device-BJt2AdWR.js index 5187f35523..3f390f5d76 100644 --- a/web/settings/assets/device-CzgpdtMj.js +++ b/web/settings/assets/device-BJt2AdWR.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as d}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",v,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])]),_:1}),t(p,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; +import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",v,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])]),_:1}),t(p,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-DsgmCF5n.js b/web/settings/assets/device-BPTQIU5L.js similarity index 88% rename from web/settings/assets/device-DsgmCF5n.js rename to web/settings/assets/device-BPTQIU5L.js index 6cfe4044fd..6c031bc3d3 100644 --- a/web/settings/assets/device-DsgmCF5n.js +++ b/web/settings/assets/device-BPTQIU5L.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as v,l as t,k as b,e as f,m as i,q as r,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceGoodWe",mixins:[m]},w={class:"device-goodwe"};function _(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",w,[i(l,null,{default:r(()=>[...e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])]),_:1}),i(a,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>[...e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>[...e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])]),_:1},8,["model-value"])])}const M=v(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as v,l as t,k as b,e as f,m as i,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceGoodWe",mixins:[m]},w={class:"device-goodwe"};function _(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",w,[i(l,null,{default:r(()=>[...e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])]),_:1}),i(a,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>[...e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>[...e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])]),_:1},8,["model-value"])])}const M=v(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-B4IBKY6X.js b/web/settings/assets/device-BPisqhc7.js similarity index 86% rename from web/settings/assets/device-B4IBKY6X.js rename to web/settings/assets/device-BPisqhc7.js index 5d0543cfc3..ba36b62557 100644 --- a/web/settings/assets/device-B4IBKY6X.js +++ b/web/settings/assets/device-BPisqhc7.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as b,l as i,k as g,e as v,m as t,q as r,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSH",mixins:[m]},c={class:"device-sungrow-sh"};function _(n,e,w,S,W,h){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",c,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Sungrow SH Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[s(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. Modbus muss in der iSolarCloud für den Wechselrichter aktiviert sein. ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:1,text:"SH (Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>[...e[6]||(e[6]=[s(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])]),_:1},8,["model-value"])])}const x=b(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sh/device.vue"]]);export{x as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as b,l as i,k as g,e as v,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSH",mixins:[m]},c={class:"device-sungrow-sh"};function _(n,e,w,S,W,h){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",c,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Sungrow SH Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[s(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. Modbus muss in der iSolarCloud für den Wechselrichter aktiviert sein. ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:1,text:"SH (Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>[...e[6]||(e[6]=[s(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])]),_:1},8,["model-value"])])}const x=b(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sh/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-C3EDMzY3.js b/web/settings/assets/device-BSlk0jml.js similarity index 68% rename from web/settings/assets/device-C3EDMzY3.js rename to web/settings/assets/device-BSlk0jml.js index d56227e873..f271baeeb5 100644 --- a/web/settings/assets/device-C3EDMzY3.js +++ b/web/settings/assets/device-BSlk0jml.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartfox",mixins:[r]},f={class:"device-smartfox"};function _(o,e,v,x,b,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",f,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für Smartfox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartfox",mixins:[r]},f={class:"device-smartfox"};function _(o,e,v,x,b,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",f,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für Smartfox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-DYhfIW3A.js b/web/settings/assets/device-BSo6UKEK.js similarity index 73% rename from web/settings/assets/device-DYhfIW3A.js rename to web/settings/assets/device-BSo6UKEK.js index bd0d1b504c..4f26f6a73d 100644 --- a/web/settings/assets/device-DYhfIW3A.js +++ b/web/settings/assets/device-BSo6UKEK.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as n,k as u,e as l,m as i,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuder",mixins:[p]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Studer ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuder",mixins:[p]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Studer ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-8WbkORGd.js b/web/settings/assets/device-BYcmVGRd.js similarity index 73% rename from web/settings/assets/device-8WbkORGd.js rename to web/settings/assets/device-BYcmVGRd.js index 4c44bbd46b..98739c6fc5 100644 --- a/web/settings/assets/device-8WbkORGd.js +++ b/web/settings/assets/device-BYcmVGRd.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron",mixins:[p]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron",mixins:[p]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-oqbvqB5h.js b/web/settings/assets/device-BdmFfYpU.js similarity index 73% rename from web/settings/assets/device-oqbvqB5h.js rename to web/settings/assets/device-BdmFfYpU.js index f3f3082050..30dbadeaa4 100644 --- a/web/settings/assets/device-oqbvqB5h.js +++ b/web/settings/assets/device-BdmFfYpU.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceChint",mixins:[p]},f={class:"device-chint"};function b(o,e,v,g,w,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Chint ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceChint",mixins:[p]},f={class:"device-chint"};function b(o,e,v,g,w,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Chint ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-KmMBXMFM.js b/web/settings/assets/device-BiPl0Xry.js similarity index 71% rename from web/settings/assets/device-KmMBXMFM.js rename to web/settings/assets/device-BiPl0Xry.js index 64d949f8c4..267be064e8 100644 --- a/web/settings/assets/device-KmMBXMFM.js +++ b/web/settings/assets/device-BiPl0Xry.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as t,k as l,e as u,m as n,q as i,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceVZLogger",mixins:[d]},c={class:"device-vzlogger"};function _(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",c,[n(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])]),_:1}),n(p,{title:"IP oder Hostname",subtype:"url",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>[...e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{D as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as l,e as u,m as n,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceVZLogger",mixins:[d]},c={class:"device-vzlogger"};function _(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",c,[n(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])]),_:1}),n(p,{title:"IP oder Hostname",subtype:"url",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>[...e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-D-pRIYiM.js b/web/settings/assets/device-BjgcGLL9.js similarity index 85% rename from web/settings/assets/device-D-pRIYiM.js rename to web/settings/assets/device-BjgcGLL9.js index e74502b9ab..9554194569 100644 --- a/web/settings/assets/device-D-pRIYiM.js +++ b/web/settings/assets/device-BjgcGLL9.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as v,l as t,k as i,e as f,m as a,q as c,A as b,y as u,u as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,k,q){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>[...o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])]),_:1}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const $=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{$ as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as v,l as t,k as i,e as f,m as a,q as c,A as b,y as u,u as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,k,q){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>[...o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])]),_:1}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const $=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-6Kda_LQU.js b/web/settings/assets/device-BkT_aSiu.js similarity index 73% rename from web/settings/assets/device-6Kda_LQU.js rename to web/settings/assets/device-BkT_aSiu.js index feb89a7d40..b0c67f9b54 100644 --- a/web/settings/assets/device-6Kda_LQU.js +++ b/web/settings/assets/device-BkT_aSiu.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFoxEss",mixins:[p]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{F as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFoxEss",mixins:[p]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{F as default}; diff --git a/web/settings/assets/device-z2yHS3IO.js b/web/settings/assets/device-BnrlrcLl.js similarity index 80% rename from web/settings/assets/device-z2yHS3IO.js rename to web/settings/assets/device-BnrlrcLl.js index 05e486a4e1..d948b6a97b 100644 --- a/web/settings/assets/device-z2yHS3IO.js +++ b/web/settings/assets/device-BnrlrcLl.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as s,k as p,e as l,m as t,q as r,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,b,_,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>[...e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])]),_:1}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])]),_:1},8,["model-value"])])}const A=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{A as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as s,k as p,e as l,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,b,_,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>[...e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])]),_:1}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])]),_:1},8,["model-value"])])}const A=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{A as default}; diff --git a/web/settings/assets/device-CdKxLpnp.js b/web/settings/assets/device-BpIfpmVY.js similarity index 91% rename from web/settings/assets/device-CdKxLpnp.js rename to web/settings/assets/device-BpIfpmVY.js index 006921932e..1ac88a72a8 100644 --- a/web/settings/assets/device-CdKxLpnp.js +++ b/web/settings/assets/device-BpIfpmVY.js @@ -1 +1 @@ -import{D as g}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as s,k as p,e as k,m as l,q as u,A as t,x as n,J as a,y as A,u as w}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},I={class:"device-sonnenbatterie"},S=["href"],B=["href"],P=["href"],J=["href"];function R(i,e,z,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",I,[l(v,null,{default:u(()=>[...e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])]),_:1}),l(f,{subtype:"info"},{default:u(()=>[...e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])]),_:1}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,S),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,B),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>[...e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])]),_:1},8,["model-value"])):w("",!0)])}const c=m(_,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{c as default}; +import{D as g}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as s,k as p,e as k,m as l,q as u,A as t,x as n,J as a,y as A,u as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},I={class:"device-sonnenbatterie"},S=["href"],B=["href"],P=["href"],J=["href"];function R(i,e,z,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",I,[l(v,null,{default:u(()=>[...e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])]),_:1}),l(f,{subtype:"info"},{default:u(()=>[...e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])]),_:1}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,S),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,B),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>[...e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])]),_:1},8,["model-value"])):w("",!0)])}const c=m(_,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{c as default}; diff --git a/web/settings/assets/device-DhhSP7do.js b/web/settings/assets/device-BsGQfX6W.js similarity index 84% rename from web/settings/assets/device-DhhSP7do.js rename to web/settings/assets/device-BsGQfX6W.js index 187824b49a..da2249ec71 100644 --- a/web/settings/assets/device-DhhSP7do.js +++ b/web/settings/assets/device-BsGQfX6W.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as b,l as t,k as f,e as v,m as i,q as s,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShelly",mixins:[m]},c={class:"device-shelly"};function g(n,e,h,w,y,V){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-select-input"),u=t("openwb-base-number-input");return f(),v("div",c,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Shelly ",-1)])]),_:1}),i(r,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[l(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":n.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.factor"))},{help:s(()=>[...e[5]||(e[5]=[l(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Phase",required:"",min:1,max:3,"model-value":n.device.configuration.phase,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.phase"))},{help:s(()=>[...e[6]||(e[6]=[l(" Gibt an an welcher Phase des Hausanschlusses die (erste) Phase des Shelly angeschlossen ist. ",-1)])]),_:1},8,["model-value"])])}const M=b(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{M as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as b,l as t,k as f,e as v,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShelly",mixins:[m]},c={class:"device-shelly"};function g(n,e,h,w,y,V){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-select-input"),u=t("openwb-base-number-input");return f(),v("div",c,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Shelly ",-1)])]),_:1}),i(r,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[l(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":n.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.factor"))},{help:s(()=>[...e[5]||(e[5]=[l(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Phase",required:"",min:1,max:3,"model-value":n.device.configuration.phase,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.phase"))},{help:s(()=>[...e[6]||(e[6]=[l(" Gibt an an welcher Phase des Hausanschlusses die (erste) Phase des Shelly angeschlossen ist. ",-1)])]),_:1},8,["model-value"])])}const M=b(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-CAxd5L90.js b/web/settings/assets/device-ByIPJ75u.js similarity index 86% rename from web/settings/assets/device-CAxd5L90.js rename to web/settings/assets/device-ByIPJ75u.js index 3488d93194..e4b64a231a 100644 --- a/web/settings/assets/device-CAxd5L90.js +++ b/web/settings/assets/device-ByIPJ75u.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r,x as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolarEdge",mixins:[u]},_={class:"device-solaredge"};function v(n,e,w,B,h,k){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),l=o("openwb-base-text-input"),p=o("openwb-base-number-input");return b(),c("div",_,[t(a,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),f("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Du mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(p,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>[...e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{D as default}; +import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolarEdge",mixins:[u]},_={class:"device-solaredge"};function v(n,e,w,B,h,k){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),l=o("openwb-base-text-input"),p=o("openwb-base-number-input");return b(),c("div",_,[t(a,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),f("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Du mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(p,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>[...e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-BXojBGt2.js b/web/settings/assets/device-Bz8u2WPE.js similarity index 79% rename from web/settings/assets/device-BXojBGt2.js rename to web/settings/assets/device-Bz8u2WPE.js index 5b89de52ec..709fd91096 100644 --- a/web/settings/assets/device-BXojBGt2.js +++ b/web/settings/assets/device-Bz8u2WPE.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as m,e as u,m as i,q as s,A as o,x as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return m(),u("div",f,[i(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])]),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>[...e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as m,e as u,m as i,q as s,A as o,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return m(),u("div",f,[i(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])]),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>[...e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-CkEwxrYs.js b/web/settings/assets/device-C-avdMqj.js similarity index 80% rename from web/settings/assets/device-CkEwxrYs.js rename to web/settings/assets/device-C-avdMqj.js index 9afb2cdf60..e9a101bf6f 100644 --- a/web/settings/assets/device-CkEwxrYs.js +++ b/web/settings/assets/device-C-avdMqj.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAlgodue",mixins:[p]},_={class:"device-algodue"};function g(o,e,c,w,C,D){const r=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),f("div",_,[t(r,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Algodue",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{B as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAlgodue",mixins:[p]},_={class:"device-algodue"};function g(o,e,c,w,C,D){const r=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),f("div",_,[t(r,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Algodue",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-BII9Q7B9.js b/web/settings/assets/device-C3SynQKw.js similarity index 81% rename from web/settings/assets/device-BII9Q7B9.js rename to web/settings/assets/device-C3SynQKw.js index 7c084832a1..376220951e 100644 --- a/web/settings/assets/device-BII9Q7B9.js +++ b/web/settings/assets/device-C3SynQKw.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as i,k as p,e as m,m as t,q as v,A as b}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceUPower",mixins:[d]},c={class:"device-upower"};function _(o,e,g,w,C,U){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return p(),m("div",c,[t(a,null,{default:v(()=>[...e[4]||(e[4]=[b("Einstellungen für UPower",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const G=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{G as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as p,e as m,m as t,q as v,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceUPower",mixins:[d]},c={class:"device-upower"};function _(o,e,g,w,C,U){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return p(),m("div",c,[t(a,null,{default:v(()=>[...e[4]||(e[4]=[b("Einstellungen für UPower",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const G=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-C0roOLlE.js b/web/settings/assets/device-C4M0XOfA.js similarity index 67% rename from web/settings/assets/device-C0roOLlE.js rename to web/settings/assets/device-C4M0XOfA.js index 7fbf0e3a17..2009f6c7bb 100644 --- a/web/settings/assets/device-C0roOLlE.js +++ b/web/settings/assets/device-C4M0XOfA.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as r,l as t,k as d,e as l,m as s,q as u,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceYouless",mixins:[p]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>[...e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])]),_:1}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{h as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as t,k as d,e as l,m as s,q as u,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceYouless",mixins:[p]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>[...e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])]),_:1}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-BLW9LjzN.js b/web/settings/assets/device-C8-xjyT6.js similarity index 73% rename from web/settings/assets/device-BLW9LjzN.js rename to web/settings/assets/device-C8-xjyT6.js index 5fc739e63c..3d5de4f523 100644 --- a/web/settings/assets/device-BLW9LjzN.js +++ b/web/settings/assets/device-C8-xjyT6.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as s,k as d,e as u,m as t,q as l,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[t(r,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as s,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[t(r,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-DqUpYhaq.js b/web/settings/assets/device-C9aR_ErT.js similarity index 67% rename from web/settings/assets/device-DqUpYhaq.js rename to web/settings/assets/device-C9aR_ErT.js index 21426d9c60..9f584bd31a 100644 --- a/web/settings/assets/device-DqUpYhaq.js +++ b/web/settings/assets/device-C9aR_ErT.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as o,k as d,e as m,m as n,q as l,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceBatterX",mixins:[r]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für BatterX ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceBatterX",mixins:[r]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für BatterX ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-Hp2tEOlj.js b/web/settings/assets/device-CHaeFEyt.js similarity index 74% rename from web/settings/assets/device-Hp2tEOlj.js rename to web/settings/assets/device-CHaeFEyt.js index a26376d961..d08c6d1223 100644 --- a/web/settings/assets/device-Hp2tEOlj.js +++ b/web/settings/assets/device-CHaeFEyt.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as l,e as u,m as i,q as m,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{F as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as l,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{F as default}; diff --git a/web/settings/assets/device-DVo4zylj.js b/web/settings/assets/device-CJ3OjUU2.js similarity index 74% rename from web/settings/assets/device-DVo4zylj.js rename to web/settings/assets/device-CJ3OjUU2.js index 47c5133ccc..6173e849ce 100644 --- a/web/settings/assets/device-DVo4zylj.js +++ b/web/settings/assets/device-CJ3OjUU2.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as n,k as d,e as m,m as i,q as l,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const a=n("openwb-base-heading"),r=n("openwb-base-text-input"),s=n("openwb-base-number-input");return d(),m("div",g,[i(a,null,{default:l(()=>[...e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const H=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{H as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as d,e as m,m as i,q as l,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const a=n("openwb-base-heading"),r=n("openwb-base-text-input"),s=n("openwb-base-number-input");return d(),m("div",g,[i(a,null,{default:l(()=>[...e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const H=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{H as default}; diff --git a/web/settings/assets/device-hdWFSlG-.js b/web/settings/assets/device-CJ5CONRY.js similarity index 77% rename from web/settings/assets/device-hdWFSlG-.js rename to web/settings/assets/device-CJ5CONRY.js index b40554b459..ad6c9e2bce 100644 --- a/web/settings/assets/device-hdWFSlG-.js +++ b/web/settings/assets/device-CJ5CONRY.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as i,k as u,e as m,m as t,q as l,A as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceAmpere",mixins:[s]},v={class:"device-ampere"};function _(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",v,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{P as default}; +import{D as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as u,e as m,m as t,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceAmpere",mixins:[s]},v={class:"device-ampere"};function _(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",v,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-BIDbmP4X.js b/web/settings/assets/device-CJ9ee9IO.js similarity index 83% rename from web/settings/assets/device-BIDbmP4X.js rename to web/settings/assets/device-CJ9ee9IO.js index a9e94f572e..2ff84bb791 100644 --- a/web/settings/assets/device-BIDbmP4X.js +++ b/web/settings/assets/device-CJ9ee9IO.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as i,k as v,e as b,m as n,q as s,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const u=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(u,null,{default:s(()=>[...e[4]||(e[4]=[a("Einstellungen für Growatt",-1)])]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>[...e[5]||(e[5]=[a(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as v,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const u=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(u,null,{default:s(()=>[...e[4]||(e[4]=[a("Einstellungen für Growatt",-1)])]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>[...e[5]||(e[5]=[a(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; diff --git a/web/settings/assets/device-CI2OAM8n.js b/web/settings/assets/device-CJt9s3lV.js similarity index 78% rename from web/settings/assets/device-CI2OAM8n.js rename to web/settings/assets/device-CJt9s3lV.js index 95a4a1ce7c..aab99285b7 100644 --- a/web/settings/assets/device-CI2OAM8n.js +++ b/web/settings/assets/device-CJt9s3lV.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as o,k as u,e as m,m as i,q as r,A as t,x as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHttp",mixins:[d]},v={class:"device-http"};function _(n,e,b,g,x,w){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",v,[i(s,null,{default:r(()=>[...e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])]),_:1}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>[...e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])]),_:1},8,["model-value"])])}const N=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{N as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as o,k as u,e as m,m as i,q as r,A as t,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHttp",mixins:[d]},v={class:"device-http"};function _(n,e,b,g,x,w){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",v,[i(s,null,{default:r(()=>[...e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])]),_:1}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>[...e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])]),_:1},8,["model-value"])])}const N=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-CU-cwVGC.js b/web/settings/assets/device-CKqZ-eL3.js similarity index 74% rename from web/settings/assets/device-CU-cwVGC.js rename to web/settings/assets/device-CKqZ-eL3.js index f7619d92b2..6f9ab43d75 100644 --- a/web/settings/assets/device-CU-cwVGC.js +++ b/web/settings/assets/device-CKqZ-eL3.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as t,k as m,e as d,m as i,q as u,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return m(),d("div",f,[i(a,null,{default:u(()=>[...e[2]||(e[2]=[c(" Einstellungen für Solarmax ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as m,e as d,m as i,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return m(),d("div",f,[i(a,null,{default:u(()=>[...e[2]||(e[2]=[c(" Einstellungen für Solarmax ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-GRny4mHm.js b/web/settings/assets/device-CLljSgUf.js similarity index 84% rename from web/settings/assets/device-GRny4mHm.js rename to web/settings/assets/device-CLljSgUf.js index 874bc5aa16..b4d55b6cd5 100644 --- a/web/settings/assets/device-GRny4mHm.js +++ b/web/settings/assets/device-CLljSgUf.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as n,k as l,e as p,m as t,q as i,A as m,x as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function g(b,e,_,f,h,v){const o=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",c,[t(o,null,{default:i(()=>[...e[0]||(e[0]=[m("Einstellungen für MQTT",-1)])]),_:1}),t(r,{subtype:"info"},{default:i(()=>[...e[1]||(e[1]=[s("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),s("p",null," Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])]),_:1})])}const z=d(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{z as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as l,e as p,m as t,q as i,A as m,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function g(b,e,_,f,h,v){const o=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",c,[t(o,null,{default:i(()=>[...e[0]||(e[0]=[m("Einstellungen für MQTT",-1)])]),_:1}),t(r,{subtype:"info"},{default:i(()=>[...e[1]||(e[1]=[s("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),s("p",null," Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])]),_:1})])}const z=d(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{z as default}; diff --git a/web/settings/assets/device-DdsXAHVY.js b/web/settings/assets/device-CMS4ZH9M.js similarity index 79% rename from web/settings/assets/device-DdsXAHVY.js rename to web/settings/assets/device-CMS4ZH9M.js index 8ed7865002..c3599a9b76 100644 --- a/web/settings/assets/device-DdsXAHVY.js +++ b/web/settings/assets/device-CMS4ZH9M.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{M as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-Bb9MADhj.js b/web/settings/assets/device-CMt4xRX4.js similarity index 79% rename from web/settings/assets/device-Bb9MADhj.js rename to web/settings/assets/device-CMt4xRX4.js index 4488e6a1c3..1a48394595 100644 --- a/web/settings/assets/device-Bb9MADhj.js +++ b/web/settings/assets/device-CMt4xRX4.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as t,k as l,e as b,m as i,q as u,A as d}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},v={class:"device-huawei-emma"};function _(o,e,g,w,c,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",v,[i(s,null,{default:u(()=>[...e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[...e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{$ as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as l,e as b,m as i,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},v={class:"device-huawei-emma"};function _(o,e,g,w,c,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",v,[i(s,null,{default:u(()=>[...e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[...e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-BfCWTNEM.js b/web/settings/assets/device-CcmT-XYr.js similarity index 79% rename from web/settings/assets/device-BfCWTNEM.js rename to web/settings/assets/device-CcmT-XYr.js index fdd7e2a6a0..eb7a84d0dc 100644 --- a/web/settings/assets/device-BfCWTNEM.js +++ b/web/settings/assets/device-CcmT-XYr.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as r,k as p,e as m,m as i,q as s,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,k,w){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return p(),m("div",v,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])]),_:1}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>[...e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])]),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; +import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as r,k as p,e as m,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,k,w){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return p(),m("div",v,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])]),_:1}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>[...e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])]),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-DYhwZZkT.js b/web/settings/assets/device-Ce-zEVZN.js similarity index 77% rename from web/settings/assets/device-DYhwZZkT.js rename to web/settings/assets/device-Ce-zEVZN.js index 2aff86e494..860e29d584 100644 --- a/web/settings/assets/device-DYhwZZkT.js +++ b/web/settings/assets/device-Ce-zEVZN.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as i,k as u,e as p,m as t,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceQCells",mixins:[r]},b={class:"device-qcells"};function v(o,e,_,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",b,[t(l,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{U as default}; +import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as u,e as p,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceQCells",mixins:[r]},b={class:"device-qcells"};function v(o,e,_,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",b,[t(l,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-Sf2PbazK.js b/web/settings/assets/device-Cg5a2DJ_.js similarity index 89% rename from web/settings/assets/device-Sf2PbazK.js rename to web/settings/assets/device-Cg5a2DJ_.js index 68f0912cb1..5974203d49 100644 --- a/web/settings/assets/device-Sf2PbazK.js +++ b/web/settings/assets/device-Cg5a2DJ_.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as s,k as f,e as g,m as t,q as r,A as a,x as o}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,h,_){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Tesla ",-1)])]),_:1}),t(u,{subtype:"danger"},{default:r(()=>[...e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),a("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),a(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as s,k as f,e as g,m as t,q as r,A as a,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,h,_){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Tesla ",-1)])]),_:1}),t(u,{subtype:"danger"},{default:r(()=>[...e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),a("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),a(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-QT8T_qSL.js b/web/settings/assets/device-CgG28OWw.js similarity index 77% rename from web/settings/assets/device-QT8T_qSL.js rename to web/settings/assets/device-CgG28OWw.js index 2aeb835785..ad71ce884c 100644 --- a/web/settings/assets/device-QT8T_qSL.js +++ b/web/settings/assets/device-CgG28OWw.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as i,k as d,e as l,m as t,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKacoNH",mixins:[u]},v={class:"device-kaco-nh"};function _(o,e,b,g,w,k){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return d(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Kaco NH ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Seriennummer",required:"","model-value":o.device.configuration.serial_number,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.serial_number"))},null,8,["model-value"])])}const H=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/device.vue"]]);export{H as default}; +import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as i,k as d,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKacoNH",mixins:[u]},v={class:"device-kaco-nh"};function _(o,e,b,g,w,k){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return d(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Kaco NH ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Seriennummer",required:"","model-value":o.device.configuration.serial_number,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.serial_number"))},null,8,["model-value"])])}const H=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/device.vue"]]);export{H as default}; diff --git a/web/settings/assets/device-1R4SV5Is.js b/web/settings/assets/device-CiFemq5S.js similarity index 77% rename from web/settings/assets/device-1R4SV5Is.js rename to web/settings/assets/device-CiFemq5S.js index f08051fed1..dc32fc2bf1 100644 --- a/web/settings/assets/device-1R4SV5Is.js +++ b/web/settings/assets/device-CiFemq5S.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as v}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVarta",mixins:[d]},b={class:"device-varta"};function _(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{E as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVarta",mixins:[d]},b={class:"device-varta"};function _(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DmGIHkAD.js b/web/settings/assets/device-CiV4hgD_.js similarity index 77% rename from web/settings/assets/device-DmGIHkAD.js rename to web/settings/assets/device-CiV4hgD_.js index 04ebe19f6f..c02ce7cc95 100644 --- a/web/settings/assets/device-DmGIHkAD.js +++ b/web/settings/assets/device-CiV4hgD_.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as t,k as p,e as m,m as i,q as l,A as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceThermia",mixins:[d]},v={class:"device-thermia"};function _(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",v,[i(r,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{T as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as p,e as m,m as i,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceThermia",mixins:[d]},v={class:"device-thermia"};function _(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",v,[i(r,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-C-iAJJ-o.js b/web/settings/assets/device-CmVz3KZr.js similarity index 77% rename from web/settings/assets/device-C-iAJJ-o.js rename to web/settings/assets/device-CmVz3KZr.js index 14f1de4f1b..f5db1d517a 100644 --- a/web/settings/assets/device-C-iAJJ-o.js +++ b/web/settings/assets/device-CmVz3KZr.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as i,k as u,e as l,m as t,q as m,A as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSaxpower",mixins:[p]},v={class:"device-saxpower"};function _(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as u,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSaxpower",mixins:[p]},v={class:"device-saxpower"};function _(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DfZ_0fKf.js b/web/settings/assets/device-CqqnDv7m.js similarity index 77% rename from web/settings/assets/device-DfZ_0fKf.js rename to web/settings/assets/device-CqqnDv7m.js index 48fdbdca68..f2c2f2836c 100644 --- a/web/settings/assets/device-DfZ_0fKf.js +++ b/web/settings/assets/device-CqqnDv7m.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as i,k as m,e as u,m as n,q as a,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFems",mixins:[p]},c={class:"device-fems"};function v(o,e,_,b,g,w){const d=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",c,[n(d,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>[...e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])]),_:1},8,["model-value"])])}const P=l(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{P as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as m,e as u,m as n,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFems",mixins:[p]},c={class:"device-fems"};function v(o,e,_,b,g,w){const d=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",c,[n(d,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>[...e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])]),_:1},8,["model-value"])])}const P=l(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-Z-QAbNy2.js b/web/settings/assets/device-Cu0yn-TS.js similarity index 79% rename from web/settings/assets/device-Z-QAbNy2.js rename to web/settings/assets/device-Cu0yn-TS.js index 331bb6f1af..ae121403bb 100644 --- a/web/settings/assets/device-Z-QAbNy2.js +++ b/web/settings/assets/device-Cu0yn-TS.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as t,k as d,e as m,m as i,q as c,A as v}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>[...e[3]||(e[3]=[v("Einstellungen für Solis",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const D=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{D as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as d,e as m,m as i,q as c,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>[...e[3]||(e[3]=[v("Einstellungen für Solis",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const D=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-B3ABOYFM.js b/web/settings/assets/device-Cv-hQ-5K.js similarity index 75% rename from web/settings/assets/device-B3ABOYFM.js rename to web/settings/assets/device-Cv-hQ-5K.js index 447a6b9dc1..6fec84b798 100644 --- a/web/settings/assets/device-B3ABOYFM.js +++ b/web/settings/assets/device-Cv-hQ-5K.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as r,l as n,k as d,e as u,m as a,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceTasmota",mixins:[l]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const s=n("openwb-base-heading"),i=n("openwb-base-text-input"),p=n("openwb-base-select-input");return d(),u("div",v,[a(s,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])]),_:1}),a(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const T=r(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{T as default}; +import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as n,k as d,e as u,m as a,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceTasmota",mixins:[l]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const s=n("openwb-base-heading"),i=n("openwb-base-text-input"),p=n("openwb-base-select-input");return d(),u("div",v,[a(s,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])]),_:1}),a(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const T=r(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-DUDQimZY.js b/web/settings/assets/device-Cv_jSwrm.js similarity index 73% rename from web/settings/assets/device-DUDQimZY.js rename to web/settings/assets/device-Cv_jSwrm.js index dc9984de9f..3b1e1a8454 100644 --- a/web/settings/assets/device-DUDQimZY.js +++ b/web/settings/assets/device-Cv_jSwrm.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as i,k as m,e as u,m as n,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function v(o,e,_,b,g,w){const r=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>[...e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])]),_:1}),n(s,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as i,k as m,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function v(o,e,_,b,g,w){const r=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>[...e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])]),_:1}),n(s,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-Y3OiwDhZ.js b/web/settings/assets/device-D4Gw0lZJ.js similarity index 75% rename from web/settings/assets/device-Y3OiwDhZ.js rename to web/settings/assets/device-D4Gw0lZJ.js index dcbaa625fe..254df12fce 100644 --- a/web/settings/assets/device-Y3OiwDhZ.js +++ b/web/settings/assets/device-D4Gw0lZJ.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as t,k as c,e as m,m as o,q as s,A as i}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),m("div",f,[o(a,null,{default:s(()=>[...e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])]),_:1}),o(r,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as c,e as m,m as o,q as s,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),m("div",f,[o(a,null,{default:s(()=>[...e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])]),_:1}),o(r,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-BZ_nIgl8.js b/web/settings/assets/device-DE8Sn0RG.js similarity index 76% rename from web/settings/assets/device-BZ_nIgl8.js rename to web/settings/assets/device-DE8Sn0RG.js index ebdcdddf3f..d9024da35b 100644 --- a/web/settings/assets/device-BZ_nIgl8.js +++ b/web/settings/assets/device-DE8Sn0RG.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as t,k as _,e as b,m as n,q as s,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceKostalPikoCi",mixins:[d]},f={class:"device-kostal-piko-ci"};function v(o,e,g,k,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-alert"),l=t("openwb-base-text-input"),u=t("openwb-base-number-input");return _(),b("div",f,[n(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Einstellungen für Kostal Piko CI",-1)])]),_:1}),n(r,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Die Kommunikation erfolgt via Modbus/TCP. ",-1)])]),_:1}),n(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),n(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const y=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/device.vue"]]);export{y as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as _,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceKostalPikoCi",mixins:[d]},f={class:"device-kostal-piko-ci"};function v(o,e,g,k,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-alert"),l=t("openwb-base-text-input"),u=t("openwb-base-number-input");return _(),b("div",f,[n(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Einstellungen für Kostal Piko CI",-1)])]),_:1}),n(r,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Die Kommunikation erfolgt via Modbus/TCP. ",-1)])]),_:1}),n(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),n(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const y=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-BqYI4kY3.js b/web/settings/assets/device-DHMJ0YEs.js similarity index 81% rename from web/settings/assets/device-BqYI4kY3.js rename to web/settings/assets/device-DHMJ0YEs.js index 66418ac3c3..c9071c6742 100644 --- a/web/settings/assets/device-BqYI4kY3.js +++ b/web/settings/assets/device-DHMJ0YEs.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as i,k as c,e as b,m as t,q as r,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPlenticore",mixins:[u]},_={class:"device-kostal-plenticore"};function v(o,e,g,w,k,C){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return c(),b("div",_,[t(l,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const W=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{W as default}; +import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as c,e as b,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPlenticore",mixins:[u]},_={class:"device-kostal-plenticore"};function v(o,e,g,w,k,C){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return c(),b("div",_,[t(l,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const W=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{W as default}; diff --git a/web/settings/assets/device-BtiaNiEm.js b/web/settings/assets/device-DJivvwYM.js similarity index 73% rename from web/settings/assets/device-BtiaNiEm.js rename to web/settings/assets/device-DJivvwYM.js index 3422ad0cc1..b23d587ce4 100644 --- a/web/settings/assets/device-BtiaNiEm.js +++ b/web/settings/assets/device-DJivvwYM.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as r,k as u,e as d,m as t,q as l,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[t(s,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const P=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{P as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as r,k as u,e as d,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[t(s,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const P=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-B_9GoR_C.js b/web/settings/assets/device-DSXRbJXc.js similarity index 73% rename from web/settings/assets/device-B_9GoR_C.js rename to web/settings/assets/device-DSXRbJXc.js index 5d454a6da8..64cb75b734 100644 --- a/web/settings/assets/device-B_9GoR_C.js +++ b/web/settings/assets/device-DSXRbJXc.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as b}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibe",mixins:[p]},_={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[b("Einstellungen für Nibe",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibe",mixins:[p]},_={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[b("Einstellungen für Nibe",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-B6CeiU8G.js b/web/settings/assets/device-DSzaLUMX.js similarity index 90% rename from web/settings/assets/device-B6CeiU8G.js rename to web/settings/assets/device-DSzaLUMX.js index 3754f74ea5..70f64e17bf 100644 --- a/web/settings/assets/device-B6CeiU8G.js +++ b/web/settings/assets/device-DSzaLUMX.js @@ -1 +1 @@ -import{D as f}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as g,l as d,k as r,e as b,m as l,q as a,A as i,y as s,u,x as p}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),t=d("openwb-base-text-input"),v=d("openwb-base-select-input");return r(),b("div",y,[l(m,null,{default:a(()=>[...e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])]),_:1}),l(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>[...e[7]||(e[7]=[i(' Bitte gib die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info findest Du in Deinem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])]),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>[...e[8]||(e[8]=[i(" Bitte wähle die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])]),_:1},8,["model-value"]),n.device.configuration.version>1?(r(),s(t,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>[...e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Du ein Token manuell erstellen möchtest, kannst Du dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])]),_:1},8,["model-value"])):u("",!0)])}const W=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{W as default}; +import{D as f}from"./HardwareInstallation-caZ0sA9z.js";import{_ as g,l as d,k as r,e as b,m as l,q as a,A as i,y as s,u,x as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),t=d("openwb-base-text-input"),v=d("openwb-base-select-input");return r(),b("div",y,[l(m,null,{default:a(()=>[...e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])]),_:1}),l(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>[...e[7]||(e[7]=[i(' Bitte gib die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info findest Du in Deinem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])]),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>[...e[8]||(e[8]=[i(" Bitte wähle die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])]),_:1},8,["model-value"]),n.device.configuration.version>1?(r(),s(t,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>[...e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Du ein Token manuell erstellen möchtest, kannst Du dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])]),_:1},8,["model-value"])):u("",!0)])}const W=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{W as default}; diff --git a/web/settings/assets/device-CaA6R4P6.js b/web/settings/assets/device-DXOtDi9V.js similarity index 78% rename from web/settings/assets/device-CaA6R4P6.js rename to web/settings/assets/device-DXOtDi9V.js index 9862dd52e5..fcfbbdb4c6 100644 --- a/web/settings/assets/device-CaA6R4P6.js +++ b/web/settings/assets/device-DXOtDi9V.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as t,k as l,e as p,m as i,q as m,A as v}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceCarloGavazzi",mixins:[d]},f={class:"device-carlo-gavazzi"};function _(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",f,[i(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as l,e as p,m as i,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceCarloGavazzi",mixins:[d]},f={class:"device-carlo-gavazzi"};function _(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",f,[i(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-D7oGPfwz.js b/web/settings/assets/device-DYUFbFFV.js similarity index 74% rename from web/settings/assets/device-D7oGPfwz.js rename to web/settings/assets/device-DYUFbFFV.js index ef43989635..80b66b283b 100644 --- a/web/settings/assets/device-D7oGPfwz.js +++ b/web/settings/assets/device-DYUFbFFV.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron3P75CT",mixins:[a]},v={class:"device-victron-3p75ct"};function f(o,e,b,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron 3P75CT ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron_3p75ct/device.vue"]]);export{T as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron3P75CT",mixins:[a]},v={class:"device-victron-3p75ct"};function f(o,e,b,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron 3P75CT ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron_3p75ct/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-B-FM1FI2.js b/web/settings/assets/device-DaUzDfJC.js similarity index 85% rename from web/settings/assets/device-B-FM1FI2.js rename to web/settings/assets/device-DaUzDfJC.js index 3d87ce9d7d..0c5b208730 100644 --- a/web/settings/assets/device-B-FM1FI2.js +++ b/web/settings/assets/device-DaUzDfJC.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as i,k as g,e as b,m as t,q as r,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function c(n,e,_,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>[...e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])]),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>[...e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const M=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{M as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as g,e as b,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function c(n,e,_,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>[...e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])]),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>[...e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const M=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-7nie8LYK.js b/web/settings/assets/device-DajujJNO.js similarity index 78% rename from web/settings/assets/device-7nie8LYK.js rename to web/settings/assets/device-DajujJNO.js index 523f4c5088..a852cdc5ed 100644 --- a/web/settings/assets/device-7nie8LYK.js +++ b/web/settings/assets/device-DajujJNO.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as o,k as _,e as b,m as t,q as i,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVenusCE",mixins:[m]},f={class:"device-venus_c_e"};function v(n,e,g,w,C,k){const a=o("openwb-base-heading"),p=o("openwb-base-alert"),d=o("openwb-base-text-input"),u=o("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Marstek Venus C, E ",-1)])]),_:1}),t(p,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[r(" Es muss ein Modbus-TCP-Adapter eingesetzt werden, um den RS485-Modbus-Port des Speichers mit dem Netzwerk zu verbinden. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname des Adapters",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=s=>n.updateConfiguration(s,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port des Adapters",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=s=>n.updateConfiguration(s,"configuration.port"))},null,8,["model-value"])])}const z=l(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/device.vue"]]);export{z as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as o,k as _,e as b,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVenusCE",mixins:[m]},f={class:"device-venus_c_e"};function v(n,e,g,w,C,k){const a=o("openwb-base-heading"),p=o("openwb-base-alert"),d=o("openwb-base-text-input"),u=o("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Marstek Venus C, E ",-1)])]),_:1}),t(p,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[r(" Es muss ein Modbus-TCP-Adapter eingesetzt werden, um den RS485-Modbus-Port des Speichers mit dem Netzwerk zu verbinden. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname des Adapters",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=s=>n.updateConfiguration(s,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port des Adapters",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=s=>n.updateConfiguration(s,"configuration.port"))},null,8,["model-value"])])}const z=l(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/device.vue"]]);export{z as default}; diff --git a/web/settings/assets/device-DH3Gi3n1.js b/web/settings/assets/device-DdYCjXX-.js similarity index 67% rename from web/settings/assets/device-DH3Gi3n1.js rename to web/settings/assets/device-DdYCjXX-.js index 817f60299a..d5e8e90728 100644 --- a/web/settings/assets/device-DH3Gi3n1.js +++ b/web/settings/assets/device-DdYCjXX-.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as t,k as d,e as u,m as n,q as l,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const V=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{V as default}; +import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as d,e as u,m as n,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const V=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/device-R9tnmWUQ.js b/web/settings/assets/device-DdrUDEK_.js similarity index 68% rename from web/settings/assets/device-R9tnmWUQ.js rename to web/settings/assets/device-DdrUDEK_.js index abcc033a42..0a246c7b31 100644 --- a/web/settings/assets/device-R9tnmWUQ.js +++ b/web/settings/assets/device-DdrUDEK_.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as t,k as l,e as d,m as n,q as m,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarLog",mixins:[r]},u={class:"device-solar_log"};function f(o,e,g,v,b,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return l(),d("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as l,e as d,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarLog",mixins:[r]},u={class:"device-solar_log"};function f(o,e,g,v,b,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return l(),d("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-Bdq6veVj.js b/web/settings/assets/device-DfKVgx7A.js similarity index 78% rename from web/settings/assets/device-Bdq6veVj.js rename to web/settings/assets/device-DfKVgx7A.js index 5387383563..e5833559b4 100644 --- a/web/settings/assets/device-Bdq6veVj.js +++ b/web/settings/assets/device-DfKVgx7A.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS3P",mixins:[u]},f={class:"device-azzurro_zcs_3p"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs_3p/device.vue"]]);export{P as default}; +import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS3P",mixins:[u]},f={class:"device-azzurro_zcs_3p"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs_3p/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-BW7XDo1J.js b/web/settings/assets/device-DhOZN3TO.js similarity index 77% rename from web/settings/assets/device-BW7XDo1J.js rename to web/settings/assets/device-DhOZN3TO.js index b85e9d0d2a..e9d3f851e9 100644 --- a/web/settings/assets/device-BW7XDo1J.js +++ b/web/settings/assets/device-DhOZN3TO.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as a,k as u,e as p,m as t,q as l,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,b,_,w){const s=a("openwb-base-heading"),i=a("openwb-base-text-input");return u(),p("div",f,[t(s,null,{default:l(()=>[...e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.username,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.username"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const A=d(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{A as default}; +import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as a,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,b,_,w){const s=a("openwb-base-heading"),i=a("openwb-base-text-input");return u(),p("div",f,[t(s,null,{default:l(()=>[...e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.username,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.username"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const A=d(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{A as default}; diff --git a/web/settings/assets/device-CjHCk_76.js b/web/settings/assets/device-Djcanbbk.js similarity index 67% rename from web/settings/assets/device-CjHCk_76.js rename to web/settings/assets/device-Djcanbbk.js index 4b66607dc5..c9792283ee 100644 --- a/web/settings/assets/device-CjHCk_76.js +++ b/web/settings/assets/device-Djcanbbk.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as t,k as m,e as d,m as n,q as l,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMystrom",mixins:[a]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c("Einstellungen für mystrom",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{h as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as m,e as d,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMystrom",mixins:[a]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c("Einstellungen für mystrom",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-eQnrxHxL.js b/web/settings/assets/device-DoYhIPYo.js similarity index 77% rename from web/settings/assets/device-eQnrxHxL.js rename to web/settings/assets/device-DoYhIPYo.js index 99fb7c59fd..2df639857e 100644 --- a/web/settings/assets/device-eQnrxHxL.js +++ b/web/settings/assets/device-DoYhIPYo.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as s,k as u,e as p,m as t,q as l,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>[...e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{x as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as s,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>[...e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-r6j0r7A3.js b/web/settings/assets/device-Dqxkpm4s.js similarity index 78% rename from web/settings/assets/device-r6j0r7A3.js rename to web/settings/assets/device-Dqxkpm4s.js index b778a2f4f5..3aa59e6bf6 100644 --- a/web/settings/assets/device-r6j0r7A3.js +++ b/web/settings/assets/device-Dqxkpm4s.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as n,k as m,e as _,m as a,q as i,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>[...e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])]),_:1},8,["model-value"])])}const q=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{q as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as m,e as _,m as a,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>[...e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])]),_:1},8,["model-value"])])}const q=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-zzcTsTtg.js b/web/settings/assets/device-DsVDr5dU.js similarity index 68% rename from web/settings/assets/device-zzcTsTtg.js rename to web/settings/assets/device-DsVDr5dU.js index 7771af230b..e9018fc5f5 100644 --- a/web/settings/assets/device-zzcTsTtg.js +++ b/web/settings/assets/device-DsVDr5dU.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as r,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmaWebbox",mixins:[p]},_={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für SMA Webbox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{h as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmaWebbox",mixins:[p]},_={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für SMA Webbox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-_jQ1Q-kw.js b/web/settings/assets/device-DxhmA9hW.js similarity index 77% rename from web/settings/assets/device-_jQ1Q-kw.js rename to web/settings/assets/device-DxhmA9hW.js index 5b5f5f0097..9162f5675c 100644 --- a/web/settings/assets/device-_jQ1Q-kw.js +++ b/web/settings/assets/device-DxhmA9hW.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{U as default}; +import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-Bu9XgqYP.js b/web/settings/assets/device-DzDhZ3zK.js similarity index 73% rename from web/settings/assets/device-Bu9XgqYP.js rename to web/settings/assets/device-DzDhZ3zK.js index d7218e730f..33fb83fc7c 100644 --- a/web/settings/assets/device-Bu9XgqYP.js +++ b/web/settings/assets/device-DzDhZ3zK.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as i,k as d,e as u,m as t,q as l,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function v(o,e,w,_,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const D=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{D as default}; +import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as i,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function v(o,e,w,_,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const D=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-BQvmc-9M.js b/web/settings/assets/device-GL-gGFSm.js similarity index 69% rename from web/settings/assets/device-BQvmc-9M.js rename to web/settings/assets/device-GL-gGFSm.js index 4c6d2bffc9..96463113b6 100644 --- a/web/settings/assets/device-BQvmc-9M.js +++ b/web/settings/assets/device-GL-gGFSm.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as t,k as d,e as l,m as n,q as c,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,k){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; +import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as d,e as l,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,k){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-DQEBMJF9.js b/web/settings/assets/device-MHTiTYZF.js similarity index 73% rename from web/settings/assets/device-DQEBMJF9.js rename to web/settings/assets/device-MHTiTYZF.js index 50fdbfe8d8..232fd7c7d0 100644 --- a/web/settings/assets/device-DQEBMJF9.js +++ b/web/settings/assets/device-MHTiTYZF.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOrno",mixins:[p]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Orno WE-514",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOrno",mixins:[p]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Orno WE-514",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-By6KThCl.js b/web/settings/assets/device-N5GdJSbQ.js similarity index 74% rename from web/settings/assets/device-By6KThCl.js rename to web/settings/assets/device-N5GdJSbQ.js index b6c801ac2f..88153f357e 100644 --- a/web/settings/assets/device-By6KThCl.js +++ b/web/settings/assets/device-N5GdJSbQ.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const I=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{I as default}; +import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const I=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-F6XhS-t5.js b/web/settings/assets/device-Pg4epvz-.js similarity index 77% rename from web/settings/assets/device-F6XhS-t5.js rename to web/settings/assets/device-Pg4epvz-.js index e433e68d6e..59edf99452 100644 --- a/web/settings/assets/device-F6XhS-t5.js +++ b/web/settings/assets/device-Pg4epvz-.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSofar",mixins:[d]},v={class:"device-sofar"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{E as default}; +import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSofar",mixins:[d]},v={class:"device-sofar"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DKuTl1vv.js b/web/settings/assets/device-TuHf60ob.js similarity index 78% rename from web/settings/assets/device-DKuTl1vv.js rename to web/settings/assets/device-TuHf60ob.js index 95a3dcdaf3..a1f19fc1e7 100644 --- a/web/settings/assets/device-DKuTl1vv.js +++ b/web/settings/assets/device-TuHf60ob.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as b,e as _,m as t,q as r,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return b(),_("div",f,[t(a,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as b,e as _,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return b(),_("div",f,[t(a,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-FdkK1iVn.js b/web/settings/assets/device-Xoa0qNQw.js similarity index 77% rename from web/settings/assets/device-FdkK1iVn.js rename to web/settings/assets/device-Xoa0qNQw.js index eb497ab18b..88fd211629 100644 --- a/web/settings/assets/device-FdkK1iVn.js +++ b/web/settings/assets/device-Xoa0qNQw.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as i,k as p,e as d,m as t,q as m,A as v}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),d("div",_,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const E=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{E as default}; +import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as p,e as d,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),d("div",_,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const E=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DbK7jIMj.js b/web/settings/assets/device-dqP8cZ7r.js similarity index 82% rename from web/settings/assets/device-DbK7jIMj.js rename to web/settings/assets/device-dqP8cZ7r.js index 2f9f1740de..dccf1080df 100644 --- a/web/settings/assets/device-DbK7jIMj.js +++ b/web/settings/assets/device-dqP8cZ7r.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as n,k as m,e as b,m as t,q as s,A as c,x as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDeye",mixins:[l]},v={class:"device-deye"};function g(o,e,w,x,y,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),b("div",v,[t(r,null,{default:s(()=>[...e[2]||(e[2]=[c("Einstellungen für Deye",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[_("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const P=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{P as default}; +import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as m,e as b,m as t,q as s,A as c,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDeye",mixins:[l]},v={class:"device-deye"};function g(o,e,w,x,y,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),b("div",v,[t(r,null,{default:s(()=>[...e[2]||(e[2]=[c("Einstellungen für Deye",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[_("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const P=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-BBC5ID1s.js b/web/settings/assets/device-rzxKRkPl.js similarity index 80% rename from web/settings/assets/device-BBC5ID1s.js rename to web/settings/assets/device-rzxKRkPl.js index 7f7fa7d516..5f329ddb0e 100644 --- a/web/settings/assets/device-BBC5ID1s.js +++ b/web/settings/assets/device-rzxKRkPl.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const d=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(d,null,{default:a(()=>[...e[3]||(e[3]=[r(" Einstellungen für Siemens ",-1)])]),_:1}),t(p,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[r(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{U as default}; +import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const d=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(d,null,{default:a(()=>[...e[3]||(e[3]=[r(" Einstellungen für Siemens ",-1)])]),_:1}),t(p,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[r(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-Nalxzfta.js b/web/settings/assets/device-vwuASijr.js similarity index 78% rename from web/settings/assets/device-Nalxzfta.js rename to web/settings/assets/device-vwuASijr.js index e6bfc95651..abd20ccedb 100644 --- a/web/settings/assets/device-Nalxzfta.js +++ b/web/settings/assets/device-vwuASijr.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as t,k as p,e as l,m as i,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowMicro",mixins:[a]},b={class:"device-sungrow-micro"};function g(o,e,v,_,w,x){const s=t("openwb-base-heading"),u=t("openwb-base-text-input"),r=t("openwb-base-number-input");return p(),l("div",b,[i(s,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Sungrow Micro Wechselrichter SxxxS",-1)])]),_:1}),i(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=d(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_micro/device.vue"]]);export{B as default}; +import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as p,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowMicro",mixins:[a]},b={class:"device-sungrow-micro"};function g(o,e,v,_,w,x){const s=t("openwb-base-heading"),u=t("openwb-base-text-input"),r=t("openwb-base-number-input");return p(),l("div",b,[i(s,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Sungrow Micro Wechselrichter SxxxS",-1)])]),_:1}),i(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=d(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_micro/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/displayTheme-CcEyZTR4.js b/web/settings/assets/displayTheme-D2mZh2_2.js similarity index 95% rename from web/settings/assets/displayTheme-CcEyZTR4.js rename to web/settings/assets/displayTheme-D2mZh2_2.js index 6e4ed55bfc..f40658c9e8 100644 --- a/web/settings/assets/displayTheme-CcEyZTR4.js +++ b/web/settings/assets/displayTheme-D2mZh2_2.js @@ -1 +1 @@ -import{D as v}from"./DisplayConfiguration-CBLfIXsk.js";import{_,l as s,k as r,e as c,m as a,q as o,A as u,y as b,u as p}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,C,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>[...e[15]||(e[15]=[u("Bediensperre",-1)])]),_:1}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>[...e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>[...e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>[...e[18]||(e[18]=[u("Ansichten",-1)])]),_:1}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>[...e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])]),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>[...e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])]),_:1},8,["model-value"]),a(d,null,{help:o(()=>[...e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])]),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const E=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{E as default}; +import{D as v}from"./DisplayConfiguration-BEaqDSWf.js";import{_,l as s,k as r,e as c,m as a,q as o,A as u,y as b,u as p}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,C,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>[...e[15]||(e[15]=[u("Bediensperre",-1)])]),_:1}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>[...e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>[...e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>[...e[18]||(e[18]=[u("Ansichten",-1)])]),_:1}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>[...e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])]),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>[...e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])]),_:1},8,["model-value"]),a(d,null,{help:o(()=>[...e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])]),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const E=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{E as default}; diff --git a/web/settings/assets/displayTheme-C1tK2DiA.js b/web/settings/assets/displayTheme-DSCxcdhW.js similarity index 81% rename from web/settings/assets/displayTheme-C1tK2DiA.js rename to web/settings/assets/displayTheme-DSCxcdhW.js index ffb4abb307..e9ba611749 100644 --- a/web/settings/assets/displayTheme-C1tK2DiA.js +++ b/web/settings/assets/displayTheme-DSCxcdhW.js @@ -1 +1 @@ -import{D as d}from"./DisplayConfiguration-CBLfIXsk.js";import{_ as m,l as n,k as i,e as c,m as l,q as s,A as a,y as b,u as g}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const p=n("openwb-base-heading"),r=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[l(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Bediensperre",-1)])]),_:1}),l(r,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>[...e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),b(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>[...e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):g("",!0)])}const $=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{$ as default}; +import{D as d}from"./DisplayConfiguration-BEaqDSWf.js";import{_ as m,l as n,k as i,e as c,m as l,q as s,A as a,y as b,u as g}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const p=n("openwb-base-heading"),r=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[l(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Bediensperre",-1)])]),_:1}),l(r,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>[...e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),b(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>[...e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):g("",!0)])}const $=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{$ as default}; diff --git a/web/settings/assets/external_inverter-CXGMSOOf.js b/web/settings/assets/external_inverter-yhBlc68v.js similarity index 85% rename from web/settings/assets/external_inverter-CXGMSOOf.js rename to web/settings/assets/external_inverter-yhBlc68v.js index 1e78fbc659..7ac7aab84f 100644 --- a/web/settings/assets/external_inverter-CXGMSOOf.js +++ b/web/settings/assets/external_inverter-yhBlc68v.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as i,k as g,e as f,m as o,q as r,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolaredgeExternalInverter",mixins:[m]},c={class:"device-solaredge-external-inverter"};function v(n,e,_,w,x,C){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",c,[o(l,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])]),_:1}),o(u,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])]),_:1}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>[...e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])]),_:1},8,["model-value"])])}const I=p(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as i,k as g,e as f,m as o,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolaredgeExternalInverter",mixins:[m]},c={class:"device-solaredge-external-inverter"};function v(n,e,_,w,x,C){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",c,[o(l,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])]),_:1}),o(u,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])]),_:1}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>[...e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])]),_:1},8,["model-value"])])}const I=p(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/flexible_tariff-BbtEphLP.js b/web/settings/assets/flexible_tariff-B7GMl0Rk.js similarity index 72% rename from web/settings/assets/flexible_tariff-BbtEphLP.js rename to web/settings/assets/flexible_tariff-B7GMl0Rk.js index ef0d1e7f7b..7f9caf0edf 100644 --- a/web/settings/assets/flexible_tariff-BbtEphLP.js +++ b/web/settings/assets/flexible_tariff-B7GMl0Rk.js @@ -1 +1 @@ -import{F as n}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as a,l as s,k as l,e as o,m as f,q as p,A as e,x as t}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffEkz",mixins:[n]},m={class:"flexible-tariff-ekz"};function u(d,r,_,b,x,k){const i=s("openwb-base-alert");return l(),o("div",m,[f(i,{subtype:"info"},{default:p(()=>[...r[0]||(r[0]=[e(" Dynamischer Tarif der Elektrizitätswerke des Kantons Zürich (EKZ) - www.ekz.ch/de/privatkunden/strom/tarife/dynamischer-wahltarif.html ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1),t("br",null,null,-1)])]),_:1})])}const E=a(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ekz/flexible_tariff.vue"]]);export{E as default}; +import{F as n}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as a,l as s,k as l,e as o,m as f,q as p,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffEkz",mixins:[n]},m={class:"flexible-tariff-ekz"};function u(d,r,_,b,x,k){const i=s("openwb-base-alert");return l(),o("div",m,[f(i,{subtype:"info"},{default:p(()=>[...r[0]||(r[0]=[e(" Dynamischer Tarif der Elektrizitätswerke des Kantons Zürich (EKZ) - www.ekz.ch/de/privatkunden/strom/tarife/dynamischer-wahltarif.html ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1),t("br",null,null,-1)])]),_:1})])}const E=a(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ekz/flexible_tariff.vue"]]);export{E as default}; diff --git a/web/settings/assets/flexible_tariff-CWf9GT1d.js b/web/settings/assets/flexible_tariff-BXSuQZLV.js similarity index 95% rename from web/settings/assets/flexible_tariff-CWf9GT1d.js rename to web/settings/assets/flexible_tariff-BXSuQZLV.js index c9b99a7a91..cd8a83dbd3 100644 --- a/web/settings/assets/flexible_tariff-CWf9GT1d.js +++ b/web/settings/assets/flexible_tariff-BXSuQZLV.js @@ -1 +1 @@ -import{F as H}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as S,k as s,e as f,x as u,f as x,l as o,y as w,D as N,q as a,m as l,z as C,A as p,u as F,K as V,L as y,E as z,J as $,M as E}from"./vendor-JxinjXxC.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,c,v,g,n){return s(),f("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[x(t.$slots,"start")]),u("div",K,[x(t.$slots,"end")])])]),u("div",M,[x(t.$slots,"action")])])])}const R=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const j={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const c=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;c.push({value:d,text:d})}return c},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},L={key:0,class:"w-100 alert alert-danger"},J=["onUpdate:modelValue","onChange"],G=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("time-row"),k=o("openwb-base-setting-element");return s(),w(k,null,N({title:a(()=>[x(t.$slots,"title",{},()=>[p($(c.title),1)])]),default:a(()=>[l(h,null,{start:a(()=>[...e[0]||(e[0]=[p(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[p(" Ende ",-1)])]),action:a(()=>[l(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[l(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(s(),f("div",L," Keine Zeitbereiche definiert! ")):F("",!0),(s(!0),f(V,null,y(n.value,(_,b)=>(s(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(n.generateTimeOptions("00:00","23:00"),i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,G))),128))],40,J),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(g.endOptions[b],i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(s(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[x(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(j,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("openwb-base-text-input"),k=o("openwb-base-number-input"),_=o("openwb-base-select-input"),b=o("time-table"),i=o("openwb-base-card");return s(),w(i,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[p($(n.tariff.name),1)]),actions:a(()=>[l(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=r=>t.$emit("delete"))},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[l(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=r=>n.tariff.name=r),title:"Tarifname"},null,8,["modelValue"]),l(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=r=>n.tariff.price=parseFloat((r/100).toFixed(5)))},null,8,["model-value"]),l(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=r=>n.dates=r),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),l(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=r=>n.tariff.active_times.times=r),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const oe={name:"FlexibleTariffFixedHours",components:{FontAwesomeIcon:O,FixedTariff:ie},mixins:[H],computed:{value:{get(){return this.flexibleTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},se={class:"flexible-tariff-fixed-hours"};function le(t,e,c,v,g,n){const m=o("openwb-base-alert"),d=o("openwb-base-number-input"),h=o("font-awesome-icon"),k=o("openwb-base-avatar"),_=o("openwb-base-heading"),b=o("fixed-tariff");return s(),f("div",se,[l(m,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[p(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),l(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[p(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),l(_,null,{actions:a(()=>[l(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=p(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(s(),w(m,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[p(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),p(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(s(!0),f(V,null,y(n.value.configuration.tariffs,(i,r)=>(s(),w(b,{key:r,"model-value":i,"onUpdate:modelValue":q=>n.value.configuration.tariffs[r]=q,onDelete:q=>n.removeTariff(r)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(oe,[["render",le],["__scopeId","data-v-dd67c8e4"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/flexible_tariff.vue"]]);export{be as default}; +import{F as H}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as S,k as s,e as f,x as u,f as x,l as o,y as w,D as N,q as a,m as l,z as C,A as p,u as F,K as V,L as y,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,c,v,g,n){return s(),f("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[x(t.$slots,"start")]),u("div",K,[x(t.$slots,"end")])])]),u("div",M,[x(t.$slots,"action")])])])}const R=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const j={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const c=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;c.push({value:d,text:d})}return c},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},L={key:0,class:"w-100 alert alert-danger"},J=["onUpdate:modelValue","onChange"],G=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("time-row"),k=o("openwb-base-setting-element");return s(),w(k,null,N({title:a(()=>[x(t.$slots,"title",{},()=>[p($(c.title),1)])]),default:a(()=>[l(h,null,{start:a(()=>[...e[0]||(e[0]=[p(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[p(" Ende ",-1)])]),action:a(()=>[l(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[l(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(s(),f("div",L," Keine Zeitbereiche definiert! ")):F("",!0),(s(!0),f(V,null,y(n.value,(_,b)=>(s(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(n.generateTimeOptions("00:00","23:00"),i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,G))),128))],40,J),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(g.endOptions[b],i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(s(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[x(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(j,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("openwb-base-text-input"),k=o("openwb-base-number-input"),_=o("openwb-base-select-input"),b=o("time-table"),i=o("openwb-base-card");return s(),w(i,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[p($(n.tariff.name),1)]),actions:a(()=>[l(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=r=>t.$emit("delete"))},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[l(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=r=>n.tariff.name=r),title:"Tarifname"},null,8,["modelValue"]),l(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=r=>n.tariff.price=parseFloat((r/100).toFixed(5)))},null,8,["model-value"]),l(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=r=>n.dates=r),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),l(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=r=>n.tariff.active_times.times=r),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const oe={name:"FlexibleTariffFixedHours",components:{FontAwesomeIcon:O,FixedTariff:ie},mixins:[H],computed:{value:{get(){return this.flexibleTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},se={class:"flexible-tariff-fixed-hours"};function le(t,e,c,v,g,n){const m=o("openwb-base-alert"),d=o("openwb-base-number-input"),h=o("font-awesome-icon"),k=o("openwb-base-avatar"),_=o("openwb-base-heading"),b=o("fixed-tariff");return s(),f("div",se,[l(m,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[p(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),l(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[p(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),l(_,null,{actions:a(()=>[l(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=p(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(s(),w(m,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[p(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),p(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(s(!0),f(V,null,y(n.value.configuration.tariffs,(i,r)=>(s(),w(b,{key:r,"model-value":i,"onUpdate:modelValue":q=>n.value.configuration.tariffs[r]=q,onDelete:q=>n.removeTariff(r)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(oe,[["render",le],["__scopeId","data-v-dd67c8e4"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/flexible_tariff.vue"]]);export{be as default}; diff --git a/web/settings/assets/flexible_tariff-CTpYrhmT.js b/web/settings/assets/flexible_tariff-BmnVQBW5.js similarity index 79% rename from web/settings/assets/flexible_tariff-CTpYrhmT.js rename to web/settings/assets/flexible_tariff-BmnVQBW5.js index 3c3470b04f..d7f2bac802 100644 --- a/web/settings/assets/flexible_tariff-CTpYrhmT.js +++ b/web/settings/assets/flexible_tariff-BmnVQBW5.js @@ -1 +1 @@ -import{F as r}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as a,l,k as s,e as f,m as n,q as u,A as p}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"FlexibleTariffWestfalenWind",mixins:[r]},m={class:"flexible-tariff-westfalen-wind"};function b(i,e,g,w,c,x){const o=l("openwb-base-text-input");return s(),f("div",m,[n(o,{title:"Benutzername",subtype:"user",required:"","model-value":i.flexibleTariff.configuration.username,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.username"))},null,8,["model-value"]),n(o,{title:"Passwort",subtype:"password",required:"","model-value":i.flexibleTariff.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),n(o,{title:"Vertrags-Nummer (optional)","model-value":i.flexibleTariff.configuration.contract_id,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.contract_id"))},{help:u(()=>[...e[3]||(e[3]=[p(" Bei mehreren Verträgen kann zusätzlich die Vertrags-Nummer angegeben werden, um die Preise dieses Vertrags abzurufen. ",-1)])]),_:1},8,["model-value"])])}const N=a(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/westfalen_wind/flexible_tariff.vue"]]);export{N as default}; +import{F as r}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as a,l,k as s,e as f,m as n,q as u,A as p}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"FlexibleTariffWestfalenWind",mixins:[r]},m={class:"flexible-tariff-westfalen-wind"};function b(i,e,g,w,c,x){const o=l("openwb-base-text-input");return s(),f("div",m,[n(o,{title:"Benutzername",subtype:"user",required:"","model-value":i.flexibleTariff.configuration.username,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.username"))},null,8,["model-value"]),n(o,{title:"Passwort",subtype:"password",required:"","model-value":i.flexibleTariff.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),n(o,{title:"Vertrags-Nummer (optional)","model-value":i.flexibleTariff.configuration.contract_id,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.contract_id"))},{help:u(()=>[...e[3]||(e[3]=[p(" Bei mehreren Verträgen kann zusätzlich die Vertrags-Nummer angegeben werden, um die Preise dieses Vertrags abzurufen. ",-1)])]),_:1},8,["model-value"])])}const N=a(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/westfalen_wind/flexible_tariff.vue"]]);export{N as default}; diff --git a/web/settings/assets/flexible_tariff-DqMzly43.js b/web/settings/assets/flexible_tariff-CTd9X6xC.js similarity index 76% rename from web/settings/assets/flexible_tariff-DqMzly43.js rename to web/settings/assets/flexible_tariff-CTd9X6xC.js index e3a1470fee..5f634b7b47 100644 --- a/web/settings/assets/flexible_tariff-DqMzly43.js +++ b/web/settings/assets/flexible_tariff-CTd9X6xC.js @@ -1 +1 @@ -import{F as r}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as l,l as a,k as u,e as s,m as n}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"FlexibleTariffOctopusEnergy",mixins:[r]},p={class:"flexible-tariff-octopusenergy"};function m(e,o,d,b,c,g){const t=a("openwb-base-text-input");return u(),s("div",p,[n(t,{title:"Benutzername",subtype:"user",required:"","model-value":e.flexibleTariff.configuration.email,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),n(t,{title:"Passwort",subtype:"password",required:"","model-value":e.flexibleTariff.configuration.password,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.password"))},null,8,["model-value"]),n(t,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.flexibleTariff.configuration.accountId,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.accountId"))},null,8,["model-value"])])}const B=l(f,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/octopusenergy/flexible_tariff.vue"]]);export{B as default}; +import{F as r}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as l,l as a,k as u,e as s,m as n}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"FlexibleTariffOctopusEnergy",mixins:[r]},p={class:"flexible-tariff-octopusenergy"};function m(e,o,d,b,c,g){const t=a("openwb-base-text-input");return u(),s("div",p,[n(t,{title:"Benutzername",subtype:"user",required:"","model-value":e.flexibleTariff.configuration.email,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),n(t,{title:"Passwort",subtype:"password",required:"","model-value":e.flexibleTariff.configuration.password,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.password"))},null,8,["model-value"]),n(t,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.flexibleTariff.configuration.accountId,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.accountId"))},null,8,["model-value"])])}const B=l(f,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/octopusenergy/flexible_tariff.vue"]]);export{B as default}; diff --git a/web/settings/assets/flexible_tariff-CNNa5OV-.js b/web/settings/assets/flexible_tariff-CYFz2wtm.js similarity index 85% rename from web/settings/assets/flexible_tariff-CNNa5OV-.js rename to web/settings/assets/flexible_tariff-CYFz2wtm.js index 956530d494..5f865e4323 100644 --- a/web/settings/assets/flexible_tariff-CNNa5OV-.js +++ b/web/settings/assets/flexible_tariff-CYFz2wtm.js @@ -1 +1 @@ -import{F as f}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as p,l as r,k as d,e as m,m as i,q as a,A as s,x as c}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"FlexibleTariffEnergyCharts",mixins:[f]},b={class:"flexible-tariff-energy-charts"};function h(n,e,_,w,x,v){const o=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),m("div",b,[i(o,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),c("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])]),_:1}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":n.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.flexibleTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(parseFloat(t.toFixed(3)),"configuration.surcharge"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])]),_:1},8,["model-value"])])}const F=p(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/energycharts/flexible_tariff.vue"]]);export{F as default}; +import{F as f}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as p,l as r,k as d,e as m,m as i,q as a,A as s,x as c}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"FlexibleTariffEnergyCharts",mixins:[f]},b={class:"flexible-tariff-energy-charts"};function h(n,e,_,w,x,v){const o=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),m("div",b,[i(o,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),c("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])]),_:1}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":n.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.flexibleTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(parseFloat(t.toFixed(3)),"configuration.surcharge"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])]),_:1},8,["model-value"])])}const F=p(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/energycharts/flexible_tariff.vue"]]);export{F as default}; diff --git a/web/settings/assets/flexible_tariff-D1LP0FYy.js b/web/settings/assets/flexible_tariff-D2I_bbD1.js similarity index 93% rename from web/settings/assets/flexible_tariff-D1LP0FYy.js rename to web/settings/assets/flexible_tariff-D2I_bbD1.js index 7fe990a89c..378fb87aa7 100644 --- a/web/settings/assets/flexible_tariff-D1LP0FYy.js +++ b/web/settings/assets/flexible_tariff-D2I_bbD1.js @@ -1 +1 @@ -import{a as b}from"./vendor-axios-CL9DOa3h.js";import{F as g}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as c,l as a,k as p,e as h,m as n,q as r,A as i}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"FlexibleTariffRabot",mixins:[g],data(){return{contractNumbers:[]}},computed:{contractOptions(){const t=this.contractNumbers.map(e=>({value:e,text:e}));return t.length===0&&this.flexibleTariff.configuration.contract_number&&t.push({value:this.flexibleTariff.configuration.contract_number,text:this.flexibleTariff.configuration.contract_number}),t}},methods:{rabot_login_window(){const t=window.open("about:blank","RabotLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus(),this.createAuthUrl().then(e=>{t.location.href=e.authorizationUrl}).catch(e=>{t.close(),console.error("Fehler beim Erstellen des Rabot-Links:",e),this.$root.postClientMessage("Fehler beim Erstellen der Rabot-Authentifizierung: "+(e.response?.data?.message||e.message),"danger")})},async createAuthUrl(){const t=await b.post("https://rabot.openwb.de/rabot-auth.php",{headers:{"Content-Type":"application/json"}});if(!t.data.success)throw new Error("Server-Fehler beim Erstellen der Rabot-Authentifizierung");return t.data},async fetch_contract_number(){if(!this.flexibleTariff.configuration.customer_number){this.$root.postClientMessage("Bitte gib zuerst eine Kundennummer ein.","warning");return}try{const t=await b.get(`https://rabot.openwb.de/rabot-proxy.php/customers/${this.flexibleTariff.configuration.customer_number}/contracts`,{headers:{"Content-Type":"application/json"}});if(t.data&&t.data.contractNumbers&&t.data.contractNumbers.length>0){const e=t.data.contractNumbers;this.contractNumbers=e;const o=e[0];this.updateConfiguration(o,"configuration.contract_number"),e.length>1?this.$root.postClientMessage(`${e.length} Verträge gefunden. Erster Vertrag ausgewählt: ${o}. Du kannst einen anderen Vertrag aus der Liste wählen.`,"success"):this.$root.postClientMessage("Vertragsnummer erfolgreich abgerufen: "+o,"success")}else this.$root.postClientMessage("Keine Verträge für diese Kundennummer gefunden.","warning")}catch(t){console.error("Fehler beim Abrufen der Vertragsnummer:",t),this.$root.postClientMessage("Fehler beim Abrufen der Vertragsnummer: "+(t.response?.data?.message||t.message),"danger")}}}},_={class:"flexible-tariff-rabot"};function x(t,e,o,C,V,s){const l=a("openwb-base-alert"),m=a("openwb-base-button-input"),f=a("openwb-base-text-input"),d=a("openwb-base-select-input");return p(),h("div",_,[n(l,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[i(" Über die Rabot-Authentifizierung kannst Du Deine Stromtarif-Daten für die Ladeplanung nutzen. Nach der Anmeldung bei Rabot wird eine Kundennummer in der Adresszeile angezeigt, die Du hier einfügen musst. ",-1)])]),_:1}),n(l,{subtype:"warning"},{default:r(()=>[...e[4]||(e[4]=[i(" Die Rabot-Authentifizierung kann nur über einen Computer oder die openWB-Cloud (remote.openwb.de) durchgeführt werden. Das Eintragen von Kunden- und Vertragsnummer ist nicht ausreichend, da nach der Anmeldung bei Rabot noch die Zustimmung erteilt werden muss. ",-1)])]),_:1}),n(m,{title:"1. Bei Rabot anmelden","button-text":"Bei Rabot Anmelden",subtype:"success",onButtonClicked:e[0]||(e[0]=()=>s.rabot_login_window())},{help:r(()=>[...e[5]||(e[5]=[i(" Es wird ein neues Browserfenster geöffnet, in dem Du Dich bei Rabot mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1}),n(f,{title:"2. Kundennummer kopieren und einfügen",required:"","model-value":t.flexibleTariff.configuration.customer_number,"onUpdate:modelValue":e[1]||(e[1]=u=>t.updateConfiguration(u,"configuration.customer_number"))},{help:r(()=>[...e[6]||(e[6]=[i(" Nachdem die Rabot-Authentifizierung abgeschlossen wurde, wird im geöffneten Browserfenster eine Kundennummer angezeigt. Diese kopieren und hier einfügen. Diese wird benötigt, um auf Ihre Tarif-Daten zugreifen zu können. ",-1)])]),_:1},8,["model-value"]),n(m,{title:"3. Vertragsnummer abrufen","button-text":"Vertrag laden",subtype:"info",disabled:!t.flexibleTariff.configuration.customer_number,onButtonClicked:s.fetch_contract_number},{help:r(()=>[...e[7]||(e[7]=[i(" Mit der Kundennummer wird automatisch die zugehörige Vertragsnummer von Rabot abgerufen. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n(d,{title:"Vertragsnummer",options:s.contractOptions,"model-value":t.flexibleTariff.configuration.contract_number,"onUpdate:modelValue":e[2]||(e[2]=u=>t.updateConfiguration(u,"configuration.contract_number"))},{help:r(()=>[...e[8]||(e[8]=[i(" Wähle eine der verfügbaren Vertragsnummern aus. Diese wird für den Zugriff auf die Tarif-Daten benötigt. ",-1)])]),_:1},8,["options","model-value"])])}const B=c(w,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/rabot/flexible_tariff.vue"]]);export{B as default}; +import{a as b}from"./vendor-axios-DdFvNBv9.js";import{F as g}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as c,l as a,k as p,e as h,m as n,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"FlexibleTariffRabot",mixins:[g],data(){return{contractNumbers:[]}},computed:{contractOptions(){const t=this.contractNumbers.map(e=>({value:e,text:e}));return t.length===0&&this.flexibleTariff.configuration.contract_number&&t.push({value:this.flexibleTariff.configuration.contract_number,text:this.flexibleTariff.configuration.contract_number}),t}},methods:{rabot_login_window(){const t=window.open("about:blank","RabotLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus(),this.createAuthUrl().then(e=>{t.location.href=e.authorizationUrl}).catch(e=>{t.close(),console.error("Fehler beim Erstellen des Rabot-Links:",e),this.$root.postClientMessage("Fehler beim Erstellen der Rabot-Authentifizierung: "+(e.response?.data?.message||e.message),"danger")})},async createAuthUrl(){const t=await b.post("https://rabot.openwb.de/rabot-auth.php",{headers:{"Content-Type":"application/json"}});if(!t.data.success)throw new Error("Server-Fehler beim Erstellen der Rabot-Authentifizierung");return t.data},async fetch_contract_number(){if(!this.flexibleTariff.configuration.customer_number){this.$root.postClientMessage("Bitte gib zuerst eine Kundennummer ein.","warning");return}try{const t=await b.get(`https://rabot.openwb.de/rabot-proxy.php/customers/${this.flexibleTariff.configuration.customer_number}/contracts`,{headers:{"Content-Type":"application/json"}});if(t.data&&t.data.contractNumbers&&t.data.contractNumbers.length>0){const e=t.data.contractNumbers;this.contractNumbers=e;const o=e[0];this.updateConfiguration(o,"configuration.contract_number"),e.length>1?this.$root.postClientMessage(`${e.length} Verträge gefunden. Erster Vertrag ausgewählt: ${o}. Du kannst einen anderen Vertrag aus der Liste wählen.`,"success"):this.$root.postClientMessage("Vertragsnummer erfolgreich abgerufen: "+o,"success")}else this.$root.postClientMessage("Keine Verträge für diese Kundennummer gefunden.","warning")}catch(t){console.error("Fehler beim Abrufen der Vertragsnummer:",t),this.$root.postClientMessage("Fehler beim Abrufen der Vertragsnummer: "+(t.response?.data?.message||t.message),"danger")}}}},_={class:"flexible-tariff-rabot"};function x(t,e,o,C,V,s){const l=a("openwb-base-alert"),m=a("openwb-base-button-input"),f=a("openwb-base-text-input"),d=a("openwb-base-select-input");return p(),h("div",_,[n(l,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[i(" Über die Rabot-Authentifizierung kannst Du Deine Stromtarif-Daten für die Ladeplanung nutzen. Nach der Anmeldung bei Rabot wird eine Kundennummer in der Adresszeile angezeigt, die Du hier einfügen musst. ",-1)])]),_:1}),n(l,{subtype:"warning"},{default:r(()=>[...e[4]||(e[4]=[i(" Die Rabot-Authentifizierung kann nur über einen Computer oder die openWB-Cloud (remote.openwb.de) durchgeführt werden. Das Eintragen von Kunden- und Vertragsnummer ist nicht ausreichend, da nach der Anmeldung bei Rabot noch die Zustimmung erteilt werden muss. ",-1)])]),_:1}),n(m,{title:"1. Bei Rabot anmelden","button-text":"Bei Rabot Anmelden",subtype:"success",onButtonClicked:e[0]||(e[0]=()=>s.rabot_login_window())},{help:r(()=>[...e[5]||(e[5]=[i(" Es wird ein neues Browserfenster geöffnet, in dem Du Dich bei Rabot mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1}),n(f,{title:"2. Kundennummer kopieren und einfügen",required:"","model-value":t.flexibleTariff.configuration.customer_number,"onUpdate:modelValue":e[1]||(e[1]=u=>t.updateConfiguration(u,"configuration.customer_number"))},{help:r(()=>[...e[6]||(e[6]=[i(" Nachdem die Rabot-Authentifizierung abgeschlossen wurde, wird im geöffneten Browserfenster eine Kundennummer angezeigt. Diese kopieren und hier einfügen. Diese wird benötigt, um auf Ihre Tarif-Daten zugreifen zu können. ",-1)])]),_:1},8,["model-value"]),n(m,{title:"3. Vertragsnummer abrufen","button-text":"Vertrag laden",subtype:"info",disabled:!t.flexibleTariff.configuration.customer_number,onButtonClicked:s.fetch_contract_number},{help:r(()=>[...e[7]||(e[7]=[i(" Mit der Kundennummer wird automatisch die zugehörige Vertragsnummer von Rabot abgerufen. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n(d,{title:"Vertragsnummer",options:s.contractOptions,"model-value":t.flexibleTariff.configuration.contract_number,"onUpdate:modelValue":e[2]||(e[2]=u=>t.updateConfiguration(u,"configuration.contract_number"))},{help:r(()=>[...e[8]||(e[8]=[i(" Wähle eine der verfügbaren Vertragsnummern aus. Diese wird für den Zugriff auf die Tarif-Daten benötigt. ",-1)])]),_:1},8,["options","model-value"])])}const B=c(w,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/rabot/flexible_tariff.vue"]]);export{B as default}; diff --git a/web/settings/assets/flexible_tariff-BAHUZdp_.js b/web/settings/assets/flexible_tariff-DBcMB1Nb.js similarity index 78% rename from web/settings/assets/flexible_tariff-BAHUZdp_.js rename to web/settings/assets/flexible_tariff-DBcMB1Nb.js index a44e38dfb7..a49ed2e37e 100644 --- a/web/settings/assets/flexible_tariff-BAHUZdp_.js +++ b/web/settings/assets/flexible_tariff-DBcMB1Nb.js @@ -1 +1 @@ -import{F as a}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as s,l,k as f,e as p,m as o,q as u,A as d}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffVoltego",mixins:[a]},m={class:"flexible-tariff-voltego"};function b(t,e,_,g,x,v){const r=l("openwb-base-alert"),n=l("openwb-base-text-input");return f(),p("div",m,[o(r,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[d(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du direkt von Voltego. Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Voltego-Account abfragen lassen! ",-1)])]),_:1}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const $=s(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/voltego/flexible_tariff.vue"]]);export{$ as default}; +import{F as a}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as s,l,k as f,e as p,m as o,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffVoltego",mixins:[a]},m={class:"flexible-tariff-voltego"};function b(t,e,_,g,x,v){const r=l("openwb-base-alert"),n=l("openwb-base-text-input");return f(),p("div",m,[o(r,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[d(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du direkt von Voltego. Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Voltego-Account abfragen lassen! ",-1)])]),_:1}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const $=s(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/voltego/flexible_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/flexible_tariff-PmiVaPpv.js b/web/settings/assets/flexible_tariff-DTKfP5xv.js similarity index 71% rename from web/settings/assets/flexible_tariff-PmiVaPpv.js rename to web/settings/assets/flexible_tariff-DTKfP5xv.js index ba568d7245..6bdf5cefdb 100644 --- a/web/settings/assets/flexible_tariff-PmiVaPpv.js +++ b/web/settings/assets/flexible_tariff-DTKfP5xv.js @@ -1 +1 @@ -import{F as o}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as a,l as n,k as s,e as l,m as p,q as f,A as e,x as t}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffGroupeE",mixins:[o]},u={class:"flexible-tariff-groupe-e"};function m(_,r,d,b,x,g){const i=n("openwb-base-alert");return s(),l("div",u,[p(i,{subtype:"info"},{default:f(()=>[...r[0]||(r[0]=[e(" Tarif Vario der Groupe E (Westschweiz) - www.groupe-e.ch/de/strom/vario ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1)])]),_:1})])}const $=a(c,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/groupe_e/flexible_tariff.vue"]]);export{$ as default}; +import{F as o}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as a,l as n,k as s,e as l,m as p,q as f,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffGroupeE",mixins:[o]},u={class:"flexible-tariff-groupe-e"};function m(_,r,d,b,x,g){const i=n("openwb-base-alert");return s(),l("div",u,[p(i,{subtype:"info"},{default:f(()=>[...r[0]||(r[0]=[e(" Tarif Vario der Groupe E (Westschweiz) - www.groupe-e.ch/de/strom/vario ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1)])]),_:1})])}const $=a(c,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/groupe_e/flexible_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/flexible_tariff-ZQ3pyAsQ.js b/web/settings/assets/flexible_tariff-Dd4agfmV.js similarity index 87% rename from web/settings/assets/flexible_tariff-ZQ3pyAsQ.js rename to web/settings/assets/flexible_tariff-Dd4agfmV.js index 301b3046f1..0116da38d8 100644 --- a/web/settings/assets/flexible_tariff-ZQ3pyAsQ.js +++ b/web/settings/assets/flexible_tariff-Dd4agfmV.js @@ -1 +1 @@ -import{F as p}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as f,l,k as u,e as d,m as o,q as a,A as n,x as m}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"FlexibleTariffOstrom",mixins:[p]},c={class:"flexible-tariff-ostrom"};function g(t,e,_,x,v,w){const s=l("openwb-base-alert"),r=l("openwb-base-text-input");return u(),d("div",c,[o(s,{subtype:"info"},{default:a(()=>[...e[3]||(e[3]=[n(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem ostrom-Account abfragen lassen! ",-1)])]),_:1}),o(r,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(r,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),o(r,{title:"Postleitzahl","model-value":t.flexibleTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:a(()=>[...e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])]),_:1},8,["model-value"])])}const A=f(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ostrom/flexible_tariff.vue"]]);export{A as default}; +import{F as p}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as f,l,k as u,e as d,m as o,q as a,A as n,x as m}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"FlexibleTariffOstrom",mixins:[p]},c={class:"flexible-tariff-ostrom"};function g(t,e,_,x,v,w){const s=l("openwb-base-alert"),r=l("openwb-base-text-input");return u(),d("div",c,[o(s,{subtype:"info"},{default:a(()=>[...e[3]||(e[3]=[n(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem ostrom-Account abfragen lassen! ",-1)])]),_:1}),o(r,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(r,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),o(r,{title:"Postleitzahl","model-value":t.flexibleTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:a(()=>[...e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])]),_:1},8,["model-value"])])}const A=f(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ostrom/flexible_tariff.vue"]]);export{A as default}; diff --git a/web/settings/assets/flexible_tariff-k72Cumcb.js b/web/settings/assets/flexible_tariff-DguwaAtd.js similarity index 90% rename from web/settings/assets/flexible_tariff-k72Cumcb.js rename to web/settings/assets/flexible_tariff-DguwaAtd.js index 610abfc41f..8ab7fa59dc 100644 --- a/web/settings/assets/flexible_tariff-k72Cumcb.js +++ b/web/settings/assets/flexible_tariff-DguwaAtd.js @@ -1 +1 @@ -import{F as c}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as m,l as s,k as g,e as _,m as r,q as h,A as l,x as T}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const x={name:"FlexibleTariffTibber",mixins:[c],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.flexibleTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.flexibleTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let n=t.address.address1;return t.address.address2&&(n=n+", "+t.address.address2),t.address.address3&&(n=n+", "+t.address.address3),n=n+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:n}}),this.flexibleTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},k={class:"flexible-tariff-tibber"};function v(i,e,t,n,d,b){const u=s("openwb-base-alert"),a=s("openwb-base-text-input"),f=s("openwb-base-button-input"),p=s("openwb-base-select-input");return g(),_("div",k,[r(u,{subtype:"info"},{default:h(()=>[...e[3]||(e[3]=[l(" Deinen persönlichen Tibber-Token erhältst Du über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandle Deinen Token wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Tibber-Account abfragen lassen! Die Home-ID kannst Du (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Deines Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])]),_:1}),r(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.flexibleTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),r(f,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!i.flexibleTariff.configuration.token?.length,onButtonClicked:b.getTibberHomeList},null,8,["disabled","onButtonClicked"]),r(p,{title:"Verfügbare Home-IDs",options:d.tibberHomeList,"model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),r(a,{title:"Home-ID",required:"","model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const V=m(x,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/tibber/flexible_tariff.vue"]]);export{V as default}; +import{F as c}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as m,l as s,k as g,e as _,m as r,q as h,A as l,x as T}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const x={name:"FlexibleTariffTibber",mixins:[c],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.flexibleTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.flexibleTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let n=t.address.address1;return t.address.address2&&(n=n+", "+t.address.address2),t.address.address3&&(n=n+", "+t.address.address3),n=n+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:n}}),this.flexibleTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},k={class:"flexible-tariff-tibber"};function v(i,e,t,n,d,b){const u=s("openwb-base-alert"),a=s("openwb-base-text-input"),f=s("openwb-base-button-input"),p=s("openwb-base-select-input");return g(),_("div",k,[r(u,{subtype:"info"},{default:h(()=>[...e[3]||(e[3]=[l(" Deinen persönlichen Tibber-Token erhältst Du über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandle Deinen Token wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Tibber-Account abfragen lassen! Die Home-ID kannst Du (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Deines Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])]),_:1}),r(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.flexibleTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),r(f,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!i.flexibleTariff.configuration.token?.length,onButtonClicked:b.getTibberHomeList},null,8,["disabled","onButtonClicked"]),r(p,{title:"Verfügbare Home-IDs",options:d.tibberHomeList,"model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),r(a,{title:"Home-ID",required:"","model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const V=m(x,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/tibber/flexible_tariff.vue"]]);export{V as default}; diff --git a/web/settings/assets/flexible_tariff-Dlg38UZN.js b/web/settings/assets/flexible_tariff-w7-xLoOe.js similarity index 91% rename from web/settings/assets/flexible_tariff-Dlg38UZN.js rename to web/settings/assets/flexible_tariff-w7-xLoOe.js index affae58f4a..c6cfb3ec2a 100644 --- a/web/settings/assets/flexible_tariff-Dlg38UZN.js +++ b/web/settings/assets/flexible_tariff-w7-xLoOe.js @@ -1 +1 @@ -import{F as m}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as g,l as u,k as f,e as p,m as l,q as a,A as i,x as o,J as r,u as x}from"./vendor-JxinjXxC.js";import"./index-BBXHIMfY.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"FlexibleTariffAwattar",mixins:[m]},T={class:"flexible-tariff-awattar"},w={key:0,class:"mt-3"},B={class:"alert alert-info mb-3"},C={class:"row"},V={class:"col-md-4"},k={class:"col-md-4"},A={class:"col-md-4"};function F(t,e,P,S,y,U){const d=u("openwb-base-select-input"),b=u("openwb-base-button-group-input"),s=u("openwb-base-number-input");return f(),p("div",T,[l(d,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},{help:a(()=>[...e[5]||(e[5]=[i(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])]),_:1},8,["model-value"]),l(b,{title:"Preisart",buttons:[{buttonValue:!0,text:"Netto"},{buttonValue:!1,text:"Brutto"}],"model-value":t.flexibleTariff.configuration.net??!0,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.net"))},{help:a(()=>[...e[6]||(e[6]=[i(" Netto: Reine Börsenpreise ohne Aufschläge",-1),o("br",null,null,-1),i(" Brutto: Börsenpreise mit konfigurierbaren Aufschlägen und MwSt. ",-1)])]),_:1},8,["model-value"]),t.flexibleTariff.configuration.net?x("",!0):(f(),p("div",w,[e[15]||(e[15]=o("h5",{class:"mb-3"},"Preisberechnung",-1)),o("div",B,[e[7]||(e[7]=o("strong",null,"Formel:",-1)),e[8]||(e[8]=o("br",null,null,-1)),i(" Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT"),1),e[9]||(e[9]=o("br",null,null,-1)),i(" + | Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT")+" | × "+r((t.flexibleTariff.configuration.proportional/100||0).toFixed(2))+" ("+r((t.flexibleTariff.configuration.proportional||0).toFixed(0))+"%)",1),e[10]||(e[10]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.fix*1e5||0).toFixed(3))+" Cent/kWh",1),e[11]||(e[11]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.tax||0).toFixed(0))+"% MwSt. ",1)]),o("div",C,[o("div",V,[l(s,{title:"Proportionaler Aufschlag",unit:"%",min:0,max:100,step:.01,"model-value":t.flexibleTariff.configuration.proportional||0,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.proportional"))},{help:a(()=>[...e[12]||(e[12]=[i(" Prozentuale Gebühr auf den Börsenpreis (z.B. 3% = 0.03) ",-1)])]),_:1},8,["model-value"])]),o("div",k,[l(s,{title:"Fester Aufschlag",unit:"Cent/kWh",min:0,step:.001,"model-value":t.flexibleTariff.configuration.fix*1e5||0,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n/1e5,"configuration.fix"))},{help:a(()=>[...e[13]||(e[13]=[i(" Feste Gebühr pro kWh (z.B. 1,500 Cent/kWh) ",-1)])]),_:1},8,["model-value"])]),o("div",A,[l(s,{title:"Mehrwertsteuer",unit:"%",min:0,max:50,step:.01,"model-value":t.flexibleTariff.configuration.tax||0,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.tax"))},{help:a(()=>[...e[14]||(e[14]=[i(" Mehrwertsteuer in Prozent (z.B. 20%) ",-1)])]),_:1},8,["model-value"])])])]))])}const D=g(v,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/awattar/flexible_tariff.vue"]]);export{D as default}; +import{F as m}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as g,l as u,k as f,e as p,m as l,q as a,A as i,x as o,J as r,u as x}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"FlexibleTariffAwattar",mixins:[m]},T={class:"flexible-tariff-awattar"},w={key:0,class:"mt-3"},B={class:"alert alert-info mb-3"},C={class:"row"},V={class:"col-md-4"},k={class:"col-md-4"},A={class:"col-md-4"};function F(t,e,P,S,y,U){const d=u("openwb-base-select-input"),b=u("openwb-base-button-group-input"),s=u("openwb-base-number-input");return f(),p("div",T,[l(d,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},{help:a(()=>[...e[5]||(e[5]=[i(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])]),_:1},8,["model-value"]),l(b,{title:"Preisart",buttons:[{buttonValue:!0,text:"Netto"},{buttonValue:!1,text:"Brutto"}],"model-value":t.flexibleTariff.configuration.net??!0,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.net"))},{help:a(()=>[...e[6]||(e[6]=[i(" Netto: Reine Börsenpreise ohne Aufschläge",-1),o("br",null,null,-1),i(" Brutto: Börsenpreise mit konfigurierbaren Aufschlägen und MwSt. ",-1)])]),_:1},8,["model-value"]),t.flexibleTariff.configuration.net?x("",!0):(f(),p("div",w,[e[15]||(e[15]=o("h5",{class:"mb-3"},"Preisberechnung",-1)),o("div",B,[e[7]||(e[7]=o("strong",null,"Formel:",-1)),e[8]||(e[8]=o("br",null,null,-1)),i(" Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT"),1),e[9]||(e[9]=o("br",null,null,-1)),i(" + | Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT")+" | × "+r((t.flexibleTariff.configuration.proportional/100||0).toFixed(2))+" ("+r((t.flexibleTariff.configuration.proportional||0).toFixed(0))+"%)",1),e[10]||(e[10]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.fix*1e5||0).toFixed(3))+" Cent/kWh",1),e[11]||(e[11]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.tax||0).toFixed(0))+"% MwSt. ",1)]),o("div",C,[o("div",V,[l(s,{title:"Proportionaler Aufschlag",unit:"%",min:0,max:100,step:.01,"model-value":t.flexibleTariff.configuration.proportional||0,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.proportional"))},{help:a(()=>[...e[12]||(e[12]=[i(" Prozentuale Gebühr auf den Börsenpreis (z.B. 3% = 0.03) ",-1)])]),_:1},8,["model-value"])]),o("div",k,[l(s,{title:"Fester Aufschlag",unit:"Cent/kWh",min:0,step:.001,"model-value":t.flexibleTariff.configuration.fix*1e5||0,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n/1e5,"configuration.fix"))},{help:a(()=>[...e[13]||(e[13]=[i(" Feste Gebühr pro kWh (z.B. 1,500 Cent/kWh) ",-1)])]),_:1},8,["model-value"])]),o("div",A,[l(s,{title:"Mehrwertsteuer",unit:"%",min:0,max:50,step:.01,"model-value":t.flexibleTariff.configuration.tax||0,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.tax"))},{help:a(()=>[...e[14]||(e[14]=[i(" Mehrwertsteuer in Prozent (z.B. 20%) ",-1)])]),_:1},8,["model-value"])])])]))])}const D=g(v,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/awattar/flexible_tariff.vue"]]);export{D as default}; diff --git a/web/settings/assets/grid_fee-BxlzNkwq.js b/web/settings/assets/grid_fee-BoQDv0Kx.js similarity index 95% rename from web/settings/assets/grid_fee-BxlzNkwq.js rename to web/settings/assets/grid_fee-BoQDv0Kx.js index 1fb9427538..142bf12bb6 100644 --- a/web/settings/assets/grid_fee-BxlzNkwq.js +++ b/web/settings/assets/grid_fee-BoQDv0Kx.js @@ -1 +1 @@ -import{G as H}from"./GeneralChargeConfiguration-JQcEANi8.js";import{_ as S,k as i,e as p,x as u,f as V,l as s,y as w,D as N,q as a,m as r,z as C,A as c,u as F,K as y,L as x,E as z,J as $,M as E}from"./vendor-JxinjXxC.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,m,v,g,n){return i(),p("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[V(t.$slots,"start")]),u("div",K,[V(t.$slots,"end")])])]),u("div",M,[V(t.$slots,"action")])])])}const G=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const R={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:G},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const m=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;m.push({value:d,text:d})}return m},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},L=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),k=s("openwb-base-setting-element");return i(),w(k,null,N({title:a(()=>[V(t.$slots,"title",{},()=>[c($(m.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>[...e[0]||(e[0]=[c(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[c(" Ende ",-1)])]),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(i(),p("div",j," Keine Zeitbereiche definiert! ")):F("",!0),(i(!0),p(y,null,x(n.value,(_,b)=>(i(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[0]=o,class:"form-control",required:"",onChange:o=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(n.generateTimeOptions("00:00","23:00"),o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,J))),128))],40,L),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[1]=o,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(g.endOptions[b],o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(i(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(o=>n.removeTime(b),["stop"])},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[V(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(R,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),k=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),o=s("openwb-base-card");return i(),w(o,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[c($(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(5)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const oe=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const se={name:"GridFeeFixedHours",components:{FontAwesomeIcon:O,FixedTariff:oe},mixins:[H],computed:{value:{get(){return this.gridFee},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},ie={class:"grid-fee-fixed-hours"};function re(t,e,m,v,g,n){const f=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),k=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return i(),p("div",ie,[r(f,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[c(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),r(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=o=>n.value.configuration.default_price=parseFloat((o/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[c(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=c(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(i(),w(f,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[c(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),c(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(i(!0),p(y,null,x(n.value.configuration.tariffs,(o,l)=>(i(),w(b,{key:l,"model-value":o,"onUpdate:modelValue":q=>n.value.configuration.tariffs[l]=q,onDelete:q=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(se,[["render",re],["__scopeId","data-v-5ed1a321"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/grid_fee.vue"]]);export{be as default}; +import{G as H}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as S,k as i,e as p,x as u,f as V,l as s,y as w,D as N,q as a,m as r,z as C,A as c,u as F,K as y,L as x,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,m,v,g,n){return i(),p("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[V(t.$slots,"start")]),u("div",K,[V(t.$slots,"end")])])]),u("div",M,[V(t.$slots,"action")])])])}const G=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const R={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:G},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const m=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;m.push({value:d,text:d})}return m},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},L=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),k=s("openwb-base-setting-element");return i(),w(k,null,N({title:a(()=>[V(t.$slots,"title",{},()=>[c($(m.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>[...e[0]||(e[0]=[c(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[c(" Ende ",-1)])]),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(i(),p("div",j," Keine Zeitbereiche definiert! ")):F("",!0),(i(!0),p(y,null,x(n.value,(_,b)=>(i(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[0]=o,class:"form-control",required:"",onChange:o=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(n.generateTimeOptions("00:00","23:00"),o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,J))),128))],40,L),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[1]=o,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(g.endOptions[b],o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(i(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(o=>n.removeTime(b),["stop"])},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[V(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(R,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),k=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),o=s("openwb-base-card");return i(),w(o,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[c($(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(5)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const oe=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const se={name:"GridFeeFixedHours",components:{FontAwesomeIcon:O,FixedTariff:oe},mixins:[H],computed:{value:{get(){return this.gridFee},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},ie={class:"grid-fee-fixed-hours"};function re(t,e,m,v,g,n){const f=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),k=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return i(),p("div",ie,[r(f,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[c(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),r(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=o=>n.value.configuration.default_price=parseFloat((o/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[c(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=c(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(i(),w(f,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[c(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),c(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(i(!0),p(y,null,x(n.value.configuration.tariffs,(o,l)=>(i(),w(b,{key:l,"model-value":o,"onUpdate:modelValue":q=>n.value.configuration.tariffs[l]=q,onDelete:q=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(se,[["render",re],["__scopeId","data-v-5ed1a321"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/grid_fee.vue"]]);export{be as default}; diff --git a/web/settings/assets/index-BBXHIMfY.js b/web/settings/assets/index-CyH1Au4V.js similarity index 96% rename from web/settings/assets/index-BBXHIMfY.js rename to web/settings/assets/index-CyH1Au4V.js index bd244e5055..c96d165cff 100644 --- a/web/settings/assets/index-BBXHIMfY.js +++ b/web/settings/assets/index-CyH1Au4V.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Status-Cq-cUxwl.js","assets/vendor-fortawesome-DD1DIYBi.js","assets/vendor-JxinjXxC.js","assets/vendor-D1GV4U4l.css","assets/vendor-chartjs-CfpTrYqu.js","assets/vendor-luxon-BDx6lZXm.js","assets/vendor-bootstrap-BTTEOGLM.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-CL9DOa3h.js","assets/Status-C2EBkHqs.css","assets/ChargeLog--8Mbs6Fl.js","assets/ChargeLog-D2ZLixbI.css","assets/Chart-CnTslwyz.js","assets/Chart-BggLkBbQ.css","assets/GeneralConfiguration-D9XW5ejg.js","assets/SystemVersion-ClVKOJRu.js","assets/dynamic-import-helper-BheWnx7M.js","assets/IdentificationConfiguration-BapSq8DD.js","assets/DisplayConfiguration-CBLfIXsk.js","assets/GeneralChargeConfiguration-JQcEANi8.js","assets/SurplusChargeConfiguration-C7J2uSph.js","assets/ActiveBatControlConfiguration-CcFt4tiZ.js","assets/HardwareInstallation-BsQdwN_Y.js","assets/LoadManagementConfiguration-BH64OBxz.js","assets/OpenwbSortableList-BnacrijU.js","assets/OpenwbSortableList-C11EhIQj.css","assets/ChargePointInstallation-CN2wQ7QE.js","assets/ChargePointInstallation-37TSBtDo.css","assets/VehicleConfiguration--T3YyIjm.js","assets/IoConfiguration-cTbf922R.js","assets/CloudConfiguration-CQRDvjjg.js","assets/MqttBridgeConfiguration-DM8X-gxb.js","assets/DebugConfiguration-GU58L2wl.js","assets/DebugConfiguration-CN753w98.css","assets/Support-DdqSn3pe.js","assets/LegalSettings-g7-88rjM.js","assets/SystemConfiguration-BZnhVkFh.js","assets/SystemConfiguration-BWslT2W-.css","assets/SecurityConfiguration-7o6Gg3lo.js","assets/DataManagement-BquAussF.js","assets/InstallAssistant-AdA1tpOL.js","assets/Error-CzwVgK-o.js","assets/TestingStore-D73y9Rra.js"])))=>i.map(i=>d[i]); -import{_ as S,e as c,f as _,j as C,k as i,l as g,m as b,q as m,u as d,x as l,y as f,z as E,A as h,D as P,E as O,F as $,G as K,I as V,J as w,K as M,L as q,M as Q,N as de,O as ue,P as ce,Q as pe,T as j,R as G,n as me,S as fe,U as ge,V as he,W as be,X as _e,Y as ve,Z as ye,$ as we}from"./vendor-JxinjXxC.js";import{l as A,f as Y,a as X,F as T,b as ke,c as Se,d as N,e as Ce,g as U,h as Be,i as $e,j as Ie,k as Oe,m as Ae,n as Te,o as Me,p as Ve,q as qe,r as Pe,s as De,t as Le,u as Ee,v as xe,w as ee,x as Re,y as We,z as je,A as ze,B as Ne,C as te,D as Ue,E as Fe,G as He,H as Ke,I as Ge,J as Je,K as Ze,L as Qe,M as Ye,N as Xe,O as et,P as se,Q as tt,R as st,S as nt,T as ot,U as it}from"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import{p as at,a as lt}from"./vendor-axios-CL9DOa3h.js";import"./vendor-jquery-CEMonh9Y.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))u(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&u(a)}).observe(document,{childList:!0,subtree:!0});function s(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function u(o){if(o.ep)return;o.ep=!0;const n=s(o);fetch(o.href,n)}})();const rt={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function dt(e,t,s,u,o,n){return i(),c("div",{class:C(["card-text alert","alert-"+s.subtype])},[_(e.$slots,"default",{},void 0,!0)],2)}const ut=S(rt,[["render",dt],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),ct=Object.freeze(Object.defineProperty({__proto__:null,default:ut},Symbol.toStringTag,{value:"Module"}));A.add(Y,X);const pt={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:T},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},mt={key:0,class:"col-md-4 col-form-label"},ft={class:"form-row"},gt={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function ht(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",{class:C(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),c("div",mt,[_(e.$slots,"title",{},void 0,!0),b(p,{description:`Hilfe ${o.showHelp?"verbergen":"anzeigen"}`},{default:m(()=>[e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable ml-1",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),_:1},8,["description"])])):d("",!0),l("div",{class:C(e.$slots.title?"col-md-8":"col px-0")},[l("div",{class:C({"form-row":e.$slots.title})},[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("*ELEMENT MISSING*",-1))],!0)],2),l("div",ft,[o.showHelp?(i(),c("span",gt,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],2)],2)}const D=S(pt,[["render",ht],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),bt=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"})),_t={name:"BaseSettingComponents",data(){return{uid:Math.random().toString(36).substring(2,15)}}},L=S(_t,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/BaseSettingComponents.vue"]]);A.add(ke,Se,N,Ce);const vt={name:"OpenwbArrayInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]},validElements:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},disabled:{type:Boolean,default:()=>!1},readonly:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:""}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},remainingElements(){return this.validElements.length===0?[]:this.validElements.filter(e=>!this.value.includes(e.value||e))},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)&&(this.validElements.length===0||this.validElements.includes(this.newTag)||this.validElements.some(e=>e.value===this.newTag))&&this.$refs.tagInput?.checkValidity()}},tagLabel(){return e=>{const t=this.validElements.find(s=>(s.value||s)===e);return t?t.label||t.value||t:e}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},yt={key:0,class:"w-100"},wt={class:"input-group"},kt={class:"input-group-prepend"},St={class:"input-group-text"},Ct=["id","disabled"],Bt=["id","disabled"],$t={value:"",disabled:""},It=["value"],Ot={class:"input-group-append"},At={class:"tagList mt-1 w-100"},Tt={key:0,class:"noTag"};function Mt(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[s.readonly||s.disabled?d("",!0):(i(),c("div",yt,[l("div",wt,[l("div",kt,[l("div",St,[_(e.$slots,"input-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0)])]),s.validElements.length===0?O((i(),c("input",$({key:0,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>o.newTag=r),type:"text",class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[1]||(t[1]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),null,16,Ct)),[[V,o.newTag]]):O((i(),c("select",$({key:1,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[2]||(t[2]=r=>o.newTag=r),class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[3]||(t[3]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),[l("option",$t,w(n.remainingElements.length>0?"Bitte wählen...":"Keine weiteren Optionen verfügbar"),1),(i(!0),c(M,null,q(n.remainingElements,(r,v)=>(i(),c("option",{key:v,value:r.value||r},w(r.label||r.value||r),9,It))),128))],16,Bt)),[[Q,o.newTag]]),l("div",Ot,[l("div",{class:C(["input-group-text",n.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[4]||(t[4]=(...r)=>n.addTag&&n.addTag(...r))},[_(e.$slots,"input-add",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])])])),l("div",At,[n.value.length==0?(i(),c("span",Tt,[b(a,{icon:["fas","info-circle"]}),h(" "+w(s.noElementsMessage),1)])):d("",!0),(i(!0),c(M,null,q(n.value,(r,v)=>(i(),c("span",{key:v,class:"tag"},[_(e.$slots,"element-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0),h(" "+w(n.tagLabel(r))+" ",1),s.readonly||s.disabled?d("",!0):(i(),f(a,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:k=>n.removeTag(v)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Vt=S(vt,[["render",Mt],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),qt=Object.freeze(Object.defineProperty({__proto__:null,default:Vt},Symbol.toStringTag,{value:"Module"})),Pt={name:"OpenwbAvatar"},Dt={class:"avatar"};function Lt(e,t,s,u,o,n){return i(),c("div",Dt,[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("?",-1))],!0)])}const Et=S(Pt,[["render",Lt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),xt=Object.freeze(Object.defineProperty({__proto__:null,default:Et},Symbol.toStringTag,{value:"Module"}));A.add(U);const Rt={name:"OpenwbButtonRow",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{buttons:{type:Array,required:!0},modelValue:{type:[String,Number,Boolean],default:null},disabled:{type:Boolean,default:!1},uid:{type:String,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Wt={class:"btn-group btn-block btn-group-toggle"},jt=["for"],zt=["id","value","disabled","onClick"];function Nt(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",Wt,[(i(!0),c(M,null,q(s.buttons,p=>(i(),c("label",{key:p.buttonValue,class:C(["btn btn-same-size btn-centered",[{active:s.modelValue===p.buttonValue},{disabled:s.disabled},p.class?p.class:"btn-outline-info"]]),for:`${s.uid}-${p.buttonValue}`},[l("span",null,[O(l("input",$({id:`${s.uid}-${p.buttonValue}`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"radio",value:p.buttonValue},{ref_for:!0},e.$attrs,{disabled:s.disabled,onClick:r=>e.$emit("button-click",p.buttonValue)}),null,16,zt),[[de,n.value]]),_(e.$slots,"label-"+p.buttonValue,{},()=>[h(w(p.text),1)],!0),t[1]||(t[1]=l("span",null," ",-1)),b(a,{icon:["fas","check"],style:ue([n.value==p.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],10,jt))),128))])}const ne=S(Rt,[["render",Nt],["__scopeId","data-v-4bd221b6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonRow.vue"]]),Ut=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"})),Ft={name:"OpenwbButtonGroupInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseButtonRow:ne},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0},disabled:{type:Boolean,required:!1,default:!1},maxButtonsPerRow:{type:Number,default:Number.POSITIVE_INFINITY}},emits:["update:modelValue","button-click"],data(){return{containerWidth:0}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},maxButtonsPerRowAuto(){return this.containerWidth<=200?1:this.containerWidth<=360?2:this.containerWidth<=550?3:1/0},buttonRows(){const e=[];for(let t=0;t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Ht,[(i(!0),c(M,null,q(n.buttonRows,(r,v)=>(i(),f(a,$({key:v,buttons:r,uid:e.uid,"model-value":n.value,disabled:s.disabled},{ref_for:!0},e.$attrs,{"onUpdate:modelValue":t[0]||(t[0]=k=>n.value=k),onButtonClick:t[1]||(t[1]=k=>e.$emit("button-click",k))}),P({_:2},[q(r,k=>({name:`label-${k.buttonValue}`,fn:m(y=>[_(e.$slots,`label-${k.buttonValue}`,$({ref_for:!0},y),void 0,!0)])}))]),1040,["buttons","uid","model-value","disabled"]))),128))],512)]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Gt=S(Ft,[["render",Kt],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Jt=Object.freeze(Object.defineProperty({__proto__:null,default:Gt},Symbol.toStringTag,{value:"Module"})),Zt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},Qt=["title"];function Yt(e,t,s,u,o,n){return i(),c("button",{type:"button",class:"btn btn-block",title:s.tooltip,onClick:t[0]||(t[0]=E((...a)=>n.click&&n.click(...a),["prevent"]))},[_(e.$slots,"default",{},()=>[h(w(s.title),1)],!0)],8,Qt)}const oe=S(Zt,[["render",Yt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:oe},Symbol.toStringTag,{value:"Module"})),es={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseClickButton:oe},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function ts(e,t,s,u,o,n){const a=g("openwb-base-click-button"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[b(a,$({class:(s.disabled?"btn-outline-":"btn-")+s.subtype,disabled:s.disabled},e.$attrs,{onButtonClicked:n.handleClick}),{default:m(()=>[h(w(s.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const ss=S(es,[["render",ts],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),ns=Object.freeze(Object.defineProperty({__proto__:null,default:ss},Symbol.toStringTag,{value:"Module"}));A.add(Be,$e);const os={name:"OpenwbCard",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},is={class:"form-group mb-0"},as={class:"form-row vaRow mb-0 py-2"},ls={class:"col"},rs={class:"card-actions ml-4"},ds={key:0,class:"card-actions mr-2"},us={key:2,class:"card-footer"};function cs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",{class:C(["card","border-"+s.subtype])},[s.title!==void 0||e.$slots.header?(i(),c("div",{key:0,class:C(["card-header py-1","bg-"+s.subtype]),onClick:t[0]||(t[0]=(...p)=>n.toggleBody&&n.toggleBody(...p))},[l("div",is,[l("div",as,[l("div",ls,[_(e.$slots,"header",{collapsed:o.isCollapsed},()=>[h(w(s.title),1)],!0)])])]),l("div",rs,[e.$slots.actions?(i(),c("div",ds,[_(e.$slots,"actions",{collapsed:o.isCollapsed},void 0,!0)])):d("",!0),s.collapsible?(i(),f(a,{key:1,icon:o.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):d("",!0)])],2)):d("",!0),o.isCollapsed===!1?(i(),c("div",$({key:1,class:["card-body",[s.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+s.bodyBg]]},e.$attrs),[_(e.$slots,"default",{},void 0,!0)],16)):d("",!0),e.$slots.footer&&o.isCollapsed===!1?(i(),c("div",us,[_(e.$slots,"footer",{},void 0,!0)])):d("",!0)],2)}const ps=S(os,[["render",cs],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),ms=Object.freeze(Object.defineProperty({__proto__:null,default:ps},Symbol.toStringTag,{value:"Module"})),fs={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},gs={class:"col-md-8"},hs=["id"];function bs(e,t,s,u,o,n){const a=g("openwb-base-setting-element");return i(),f(a,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[l("div",gs,[O(l("input",$({id:`${e.uid}-checkbox-input`,"onUpdate:modelValue":t[0]||(t[0]=p=>n.value=p),class:"form-control",type:"checkbox"},e.$attrs),null,16,hs),[[ce,n.value]])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const _s=S(fs,[["render",bs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),vs=Object.freeze(Object.defineProperty({__proto__:null,default:_s},Symbol.toStringTag,{value:"Module"}));A.add(Ie);const ys={name:"OpenwbColorPicker",components:{FontAwesomeIcon:T},mixins:[L],props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},ws={class:"wrapper"},ks=["id","value","title"];function Ss(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",ws,[l("input",{id:`${e.uid}-color-input`,type:"color",class:"custom-color-picker",value:s.modelValue,title:`Farbe: ${s.modelValue}`,onInput:t[0]||(t[0]=r=>n.changed(r.target.value))},null,40,ks),s.defaultColor?(i(),f(p,{key:0,description:`Zurücksetzen auf Standardfarbe (${s.defaultColor})`},{default:m(()=>[b(a,{class:"ml-1 clickable",icon:["fas","rotate-left"],onClick:t[1]||(t[1]=r=>n.changed(s.defaultColor))})]),_:1},8,["description"])):d("",!0)])}const Cs=S(ys,[["render",Ss],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Bs=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"})),{text:J,copy:$s,copied:Is,isSupported:Os}=pe({copiedDuring:3e3,legacy:!0});A.add(Oe,Ae);const As={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:T},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?.innerText?this.$refs.content.innerText.trim():""},isCopied(){return Is.value&&J.value===this.contentText},copySupported(){return Os.value}},methods:{click(){this.copySupported&&$s(this.contentText).then(()=>{console.debug("Text copied to clipboard:",J.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},Ts=["title"],Ms={ref:"content"};function Vs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("span",{title:n.copySupported&&!n.isCopied?s.tooltip:"",class:C({"copy-me":n.copySupported&&!n.isCopied}),onClick:t[0]||(t[0]=E((...p)=>n.click&&n.click(...p),["stop"]))},[l("span",Ms,[_(e.$slots,"default",{},void 0,!0)],512),n.copySupported?(i(),f(a,{key:0,class:"ml-1",icon:n.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):d("",!0)],10,Ts)}const qs=S(As,[["render",Vs],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),Ps=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));A.add(Y,X,U);const Ds={name:"OpenwbHeading",components:{FontAwesomeIcon:T},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ls={class:"heading-text"},Es={key:0,class:"actions"},xs={class:""},Rs={key:0,class:"form-row alert alert-info small flex-fill"};function Ws(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c(M,null,[l("div",$({class:"card-text card-text-heading"},e.$attrs),[l("div",Ls,[_(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),e.$slots.actions?(i(),c("span",Es,[_(e.$slots,"actions",{},void 0,!0)])):d("",!0)],16),l("div",xs,[o.showHelp?(i(),c("span",Rs,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],64)}const js=S(Ds,[["render",Ws],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),zs=Object.freeze(Object.defineProperty({__proto__:null,default:js},Symbol.toStringTag,{value:"Module"}));A.add(Te,Me,Ve,qe);const R={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},Ns={name:"OpenwbIoPattern",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return R[e].icon},getIconClass(e){return R[e].iconClass},getTitle(e){return R[e].title},toggleInput(e,t){this.value[e]=R[t].nextValue}}};function Us(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip"),r=g("openwb-base-setting-element");return i(),f(r,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[(i(!0),c(M,null,q(n.value,(v,k)=>(i(),c("span",{key:k},[b(p,{description:n.getTitle(v)},{default:m(()=>[b(a,{icon:n.getIcon(v),class:C([n.getIconClass(v),"fa-fw clickable"]),size:"2x",transform:v=="undefined"?"shrink-6":null,mask:v=="undefined"?["fas","square"]:null,onClick:E(y=>n.toggleInput(k,v),["stop","prevent"]),onMousedown:t[0]||(t[0]=E(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=E(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Fs=S(Ns,[["render",Us],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),Hs=Object.freeze(Object.defineProperty({__proto__:null,default:Fs},Symbol.toStringTag,{value:"Module"})),Ks={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=[...this.buttons]),e.findIndex(t=>t.event==="close")===-1&&!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)}}},Gs={class:"modal-content"},Js={class:"modal-title"},Zs={class:"modal-body"},Qs=["disabled","data-event"];function Ys(e,t,s,u,o,n){return s.show?(i(),f(j,{key:0,to:"body"},[t[5]||(t[5]=l("div",{class:"modal-backdrop fade show"},null,-1)),l("div",{class:"modal fade d-block show",role:"dialog",onClick:t[3]||(t[3]=(...a)=>n.handleClick&&n.handleClick(...a))},[l("div",{class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document",onClick:t[2]||(t[2]=E(()=>{},["stop"]))},[l("div",Gs,[l("div",{class:C(["modal-header","bg-"+s.subtype])},[l("h4",Js,w(s.title),1),s.preventClose?d("",!0):(i(),c("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>n.handleClick&&n.handleClick(...a))}," × "))],2),l("div",Zs,[_(e.$slots,"default",{},()=>[t[4]||(t[4]=h("# Body #",-1))])]),n.myButtons.length>0?(i(),c("div",{key:0,class:C(["modal-footer d-flex","justify-content-"+s.footerAlignment])},[(i(!0),c(M,null,q(n.myButtons,a=>(i(),c("button",{key:a.text,disabled:a.disabled===!0,type:"button",class:C(["btn",(a.disabled?"btn-outline-":"btn-")+(a.subtype??"secondary")]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...p)=>n.handleClick&&n.handleClick(...p))},w(a.text),11,Qs))),128))],2)):d("",!0)])])])])):d("",!0)}const Xs=S(Ks,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Xs},Symbol.toStringTag,{value:"Module"}));A.add(Pe);const tn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},sn={class:"input-group"},nn={class:"input-group-prepend"},on={class:"input-group-text"},an=["id"],ln={key:0,class:"input-group-append"},rn={class:"input-group-text"},dn={key:1,class:"input-group-append"},un={class:"input-group-text p-0"};function cn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",sn,[l("div",nn,[l("div",on,[b(a,{icon:["fas","calculator"]})])]),O(l("input",$({id:`${e.uid}-number-input`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,an),[[V,n.value,void 0,{lazy:!0,number:!0}]]),s.unit?(i(),c("div",ln,[l("div",rn,w(s.unit),1)])):d("",!0),e.$slots.append?(i(),c("div",dn,[l("div",un,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pn=S(tn,[["render",cn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),mn=Object.freeze(Object.defineProperty({__proto__:null,default:pn},Symbol.toStringTag,{value:"Module"}));A.add(De,Le);const fn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",gn,[l("div",hn,[n.label?(i(),c("label",{key:0,class:"col-2 pl-0 col-form-label valueLabel",for:`${e.uid}-button`},w(n.label),9,bn)):d("",!0),l("button",{id:`${e.uid}-button`,class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[0]||(t[0]=(...r)=>n.decrement&&n.decrement(...r))},[b(a,{icon:["fas","step-backward"]})],8,_n),l("div",vn,[O(l("input",$({"onUpdate:modelValue":t[1]||(t[1]=r=>n.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:s.min,max:s.max,step:s.step},e.$attrs),null,16,yn),[[V,n.sliderValue,void 0,{number:!0}]])]),l("button",{class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[2]||(t[2]=(...r)=>n.increment&&n.increment(...r))},[b(a,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const kn=S(fn,[["render",wn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:kn},Symbol.toStringTag,{value:"Module"}));A.add(N);const Cn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Bn={class:"w-100"},$n={class:"input-group"},In={key:0,class:"input-group-prepend"},On={class:"input-group-text"},An=["id"],Tn=["value"],Mn=["value"],Vn=["label"],qn=["value"],Pn={key:1,class:"input-group-append"};function Dn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({default:m(()=>[l("div",Bn,[l("div",$n,[e.$slots.prefix?(i(),c("div",In,[l("div",On,[_(e.$slots,"prefix")])])):d("",!0),O(l("select",$({id:`${e.uid}-select`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"col form-control"},e.$attrs),[s.notSelected!==void 0?(i(),c("option",{key:0,value:s.emptyValue,disabled:""}," -- "+w(s.notSelected)+" -- ",9,Tn)):d("",!0),(i(!0),c(M,null,q(s.options,r=>(i(),c("option",{key:r.value,value:r.value},w(r.text),9,Mn))),128)),(i(!0),c(M,null,q(s.groups,r=>(i(),c("optgroup",{key:r.label,label:r.label},[(i(!0),c(M,null,q(r.options,v=>(i(),c("option",{key:v.value,value:v.value},w(v.text),9,qn))),128))],8,Vn))),128))],16,An),[[Q,n.value]]),s.addButton?(i(),c("div",Pn,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})])],2)])):d("",!0)])])]),_:2},[e.$slots.title||s.title?{name:"title",fn:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"1"}:void 0]),1024)}const Ln=S(Cn,[["render",Dn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),En=Object.freeze(Object.defineProperty({__proto__:null,default:Ln},Symbol.toStringTag,{value:"Module"}));A.add(U,Ee,xe);const xn={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:T},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0},saveLabel:{type:String,default:"Speichern"},saveDisabled:{type:Boolean,default:!1},saveId:{type:String,default:"saveSettingsBtn"},resetLabel:{type:String,default:"Änderungen verwerfen"},resetDisabled:{type:Boolean,default:!1},resetId:{type:String,default:"modalResetBtn"},defaultsLabel:{type:String,default:"Werkseinstellungen"},defaultsDisabled:{type:Boolean,default:!1},defaultsId:{type:String,default:"modalDefaultsBtn"}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},Rn={class:"row justify-content-center mb-1"},Wn={class:"col-md-4 d-flex py-1 justify-content-center"},jn=["id","disabled"],zn={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},Nn=["id","disabled"],Un={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},Fn=["id","disabled"];function Hn(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog"),p=g("font-awesome-icon");return i(),c(M,null,[b(a,{show:n.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:m(()=>[...t[3]||(t[3]=[h(" Einstellungen werden gespeichert... ",-1)])]),_:1},8,["show"]),b(a,{show:o.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:n.handleModalReset},{default:m(()=>[...t[4]||(t[4]=[h(" Willst Du die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])]),_:1},8,["show","onModalResult"]),b(a,{show:o.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:n.handleModalDefaults},{default:m(()=>[...t[5]||(t[5]=[h(" Willst Du wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])]),_:1},8,["show","onModalResult"]),l("div",Rn,[l("div",Wn,[l("button",{id:s.saveId,type:"button",class:C(["btn btn-block",[{disabled:s.saveDisabled},s.saveDisabled?"btn-outline-success":"btn-success"]]),disabled:s.saveDisabled,onClick:t[0]||(t[0]=(...r)=>n.saveSettings&&n.saveSettings(...r))},[h(w(s.saveLabel)+" ",1),b(p,{icon:["fas","check"]})],10,jn)]),s.hideReset?d("",!0):(i(),c("div",zn,[l("button",{id:s.resetId,type:"button",class:C(["btn btn-block",[{disabled:s.resetDisabled},s.resetDisabled?"btn-outline-warning":"btn-warning"]]),disabled:s.resetDisabled,onClick:t[1]||(t[1]=(...r)=>n.showResetModal&&n.showResetModal(...r))},[h(w(s.resetLabel)+" ",1),b(p,{icon:["fas","undo"]})],10,Nn)])),s.hideDefaults?d("",!0):(i(),c("div",Un,[l("button",{id:s.defaultsId,type:"button",class:C(["btn btn-block",[{disabled:s.defaultsDisabled},s.defaultsDisabled?"btn-outline-danger":"btn-danger"]]),disabled:s.defaultsDisabled,onClick:t[2]||(t[2]=(...r)=>n.showDefaultsModal&&n.showDefaultsModal(...r))},[h(w(s.defaultsLabel)+" ",1),b(p,{icon:["fas","times"]})],10,Fn)]))])],64)}const Kn=S(xn,[["render",Hn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),Gn=Object.freeze(Object.defineProperty({__proto__:null,default:Kn},Symbol.toStringTag,{value:"Module"}));A.add(ee,Re,We,je,ze,Ne,te,Ue,Fe,He,Ke,N,Ge,Je);const Jn={name:"OpenwbTextInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","group","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},validator:{type:Function,required:!1,default:null},showQuickButtons:{type:Boolean,default:!1},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.validator){console.log("Validating input value:",e);const t=this.validator(e);console.log("Validation result:",t);const s=this.inputRef;t!==!0?(console.log("Marking input as invalid",JSON.stringify(this.$refs)),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(t),this.inputInvalid=!0,this.tempValue=e):(console.log("Input is valid"),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(""),this.inputInvalid=!1)}if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"},addDisabled:{get(){return this.value===this.emptyValue}}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,s=new Date(this.modelValue);switch(this.subtype){case"date":s.setDate(s.getDate()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0")+"-"+String(s.getDate()).padStart(2,"0");break;case"month":s.setMonth(s.getMonth()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0");break;case"year":s.setYear(s.getFullYear()+e),t=String(s.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Zn,[l("div",Qn,[l("div",Yn,[l("div",Xn,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="email"?(i(),f(a,{key:1,icon:["fas","envelope"]})):d("",!0),s.subtype=="host"?(i(),f(a,{key:2,icon:["fas","network-wired"]})):d("",!0),s.subtype=="url"?(i(),f(a,{key:3,icon:["fas","globe"]})):d("",!0),s.subtype=="user"?(i(),f(a,{key:4,icon:["fas","user"]})):d("",!0),s.subtype=="group"?(i(),f(a,{key:5,icon:["fas","users"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:6,icon:["fas","code"]})):d("",!0),s.subtype=="password"?(i(),f(a,{key:7,icon:o.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):d("",!0),s.subtype=="time"?(i(),f(a,{key:8,icon:["fas","clock"]})):d("",!0),s.subtype=="date"||s.subtype=="month"||s.subtype=="year"?(i(),f(a,{key:9,icon:["fas","calendar-day"]})):d("",!0)])]),["text","user","group"].includes(s.subtype)?O((i(),c("input",$({key:0,id:`${e.uid}-text-input`,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"text",class:["form-control",{invalid:o.inputInvalid}]},e.$attrs,{pattern:s.pattern}),null,16,eo)),[[V,n.value]]):d("",!0),s.subtype=="json"?O((i(),c("input",$({key:1,id:`${e.uid}-json-input`,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,to)),[[V,n.value]]):d("",!0),s.subtype=="password"?O((i(),c("input",$({key:2,id:`${e.uid}-password-input`,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>n.value=r),type:o.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,so)),[[G,n.value]]):d("",!0),s.subtype=="host"?O((i(),c("input",$({key:3,id:`${e.uid}-host-input`,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.hostPattern}),null,16,no)),[[V,n.value]]):d("",!0),["email","url"].includes(s.subtype)?O((i(),c("input",$({key:4,id:`${e.uid}-url-input`,ref:"urlInput","onUpdate:modelValue":t[4]||(t[4]=r=>n.value=r),type:s.subtype,class:"form-control"},e.$attrs),null,16,oo)),[[G,n.value]]):d("",!0),s.subtype=="time"?O((i(),c("input",$({key:5,id:`${e.uid}-time-input`,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>n.value=r),type:"time",class:"form-control"},e.$attrs),null,16,io)),[[V,n.value]]):d("",!0),s.subtype=="date"?O((i(),c("input",$({key:6,id:`${e.uid}-date-input`,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>n.value=r),type:"date",class:"form-control"},e.$attrs),null,16,ao)),[[V,n.value]]):d("",!0),s.subtype=="month"?O((i(),c("input",$({key:7,id:`${e.uid}-month-input`,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>n.value=r),type:"month",class:"form-control"},e.$attrs),null,16,lo)),[[V,n.value]]):d("",!0),s.subtype=="year"?O((i(),c("input",$({key:8,id:`${e.uid}-year-input`,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,ro)),[[V,n.value]]):d("",!0),s.unit?(i(),c("div",uo,[l("div",co,w(s.unit),1)])):d("",!0),s.subtype=="password"?(i(),c("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>n.togglePassword&&n.togglePassword(...r))},[l("div",po,[b(a,{icon:o.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>n.modify(-1))},[...t[13]||(t[13]=[l("div",{class:"input-group-text"},"-",-1)])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>n.modify(1))},[...t[14]||(t[14]=[l("div",{class:"input-group-text"},"+",-1)])])):d("",!0),s.addButton?(i(),c("div",mo,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[12]||(t[12]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])):d("",!0),e.$slots.append?(i(),c("div",fo,[l("div",go,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const bo=S(Jn,[["render",ho],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),_o=Object.freeze(Object.defineProperty({__proto__:null,default:bo},Symbol.toStringTag,{value:"Module"}));A.add(ee,te);const vo={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:D,FontAwesomeIcon:T},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},yo={class:"w-100"},wo={class:"input-group"},ko={class:"input-group-prepend"},So={class:"input-group-text"},Co=["id"],Bo=["id"],$o={key:2,class:"input-group-append"},Io={class:"input-group-text"},Oo={class:"form-text text-muted text-right"};function Ao(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",yo,[l("div",wo,[l("div",ko,[l("div",So,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:1,icon:["fas","code"]})):d("",!0)])]),s.subtype==="json"?O((i(),c("textarea",$({key:0,id:`${e.uid}-textarea`,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Co)),[[V,n.value,void 0,{lazy:!0}]]):O((i(),c("textarea",$({key:1,id:`${e.uid}-textarea`,"onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Bo)),[[V,n.value]]),e.$attrs.maxlength?(i(),c("div",$o,[l("div",Io,[l("small",Oo,w(n.length)+" / "+w(e.$attrs.maxlength),1)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const To=S(vo,[["render",Ao],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Mo=Object.freeze(Object.defineProperty({__proto__:null,default:To},Symbol.toStringTag,{value:"Module"})),Vo={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const u=new Date-this.timestamp*1e3;for(var o in e)if(Math.abs(u)>e[o]){this.relativeTime=t.format(Math.round(-u/e[o]),o);break}u>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},qo={key:0,class:"time-diff"},Po={class:"toast-body"};function Do(e,t,s,u,o,n){return i(),c("div",{class:C(["toast","border-"+s.subtype]),role:"alert"},[l("div",{class:C(["toast-header","bg-"+s.subtype])},[t[2]||(t[2]=l("strong",{class:"pr-2 mr-auto"},"openWB",-1)),s.timestamp?(i(),c("small",qo,w(o.relativeTime),1)):d("",!0),l("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>n.dismiss&&n.dismiss(...a))},[...t[1]||(t[1]=[l("span",{"aria-hidden":"true"},"×",-1)])])],2),l("div",Po,[_(e.$slots,"default",{},void 0,!0)])],2)}const Lo=S(Vo,[["render",Do],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Eo=Object.freeze(Object.defineProperty({__proto__:null,default:Lo},Symbol.toStringTag,{value:"Module"})),xo={name:"OpenwbTooltip",props:{description:{type:String,default:"#TOOLTIP#"},addHint:{type:Boolean,default:!1}}},Ro=["title"];function Wo(e,t,s,u,o,n){return i(),c("div",{class:C(["base-text",{dotted:s.addHint}]),title:s.description},[_(e.$slots,"default",{},void 0,!0)],10,Ro)}const jo=S(xo,[["render",Wo],["__scopeId","data-v-c65a1128"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTooltip.vue"]]),zo=Object.freeze(Object.defineProperty({__proto__:null,default:jo},Symbol.toStringTag,{value:"Module"})),No={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopics:[],weekdays:["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],chargeModes:["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"],statusLevel:["success","warning","danger"]}},computed:{mqttTopicsToSubscribe(){return this.mqttTopics.map(e=>e.topic)},mqttTopicsToPublish(){return this.mqttTopics.filter(e=>e.writeable).map(e=>e.topic)}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,s=void 0){console.debug("updateState:",e,t,s),this.$store.commit({type:"updateTopic",topic:e,objectPath:s,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let s=e;t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let u=Object.keys(this.$store.state.mqtt).filter(o=>o.match(s));return u.forEach((o,n,a)=>{a[n]=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),u},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,s=t,u=1){if(!(e==null||isNaN(e)))return e=e*u,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:s})},formatNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,s,u):"-"},formatPhaseArrayNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(o=>this.formatNumber(o,t,s,u)):["-","-","-"]},translateChargeMode(e){return{instant_charging:"Sofort",pv_charging:"PV",scheduled_charging:"Zielladen",time_charging:"Zeitladen",eco_charging:"Eco",standby:"Standby",stop:"Stop"}[e]||e}}},z=S(No,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);A.add(Ze);const Uo={name:"OpenwbNavBar",components:{FontAwesomeIcon:T},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/security/access/+",writeable:!1}]}},computed:{nodeEnv(){return"development"},accessAllowed(){return e=>this.$store.state.mqtt[`openWB/system/security/access/${e}`]===!0}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},Fo={class:"navbar navbar-expand-xl bg-dark navbar-dark fixed-top"},Ho={ref:"navbarButton",class:"navbar-toggler mr-auto",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},Ko={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},Go={class:"navbar-nav mr-auto"},Jo={key:0,class:"nav-item"},Zo={class:"nav-item dropdown nav-separator-before"},Qo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},Yo={class:"nav-item dropdown nav-separator-before"},Xo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ei={class:"nav-item dropdown"},ti={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},si={class:"nav-item dropdown"},ni={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},oi={key:5,class:"dropdown-divider"},ii={key:6,href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"},ai={class:"nav-item dropdown"},li={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ri={class:"nav-item nav-separator-before"},di={class:"nav-link",href:"https://wiki.openwb.de/",target:"_blank"};function ui(e,t,s,u,o,n){const a=g("router-link"),p=g("font-awesome-icon");return i(),c("nav",Fo,[t[30]||(t[30]=l("a",{class:"navbar-brand",href:"/openWB/web/"},[l("span",null,"openWB")],-1)),l("button",Ho,[...t[0]||(t[0]=[l("span",{class:"navbar-toggler-icon"},null,-1)])],512),l("div",Ko,[l("ul",Go,[n.accessAllowed("Status")?(i(),c("li",Jo,[b(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:m(()=>[...t[1]||(t[1]=[h(" Status ",-1)])]),_:1})])):d("",!0),l("li",Zo,[t[4]||(t[4]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),l("div",Qo,[n.accessAllowed("ChargeLog")?(i(),f(a,{key:0,to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[2]||(t[2]=[h(" Ladeprotokoll ",-1)])]),_:1})):d("",!0),n.accessAllowed("Chart")?(i(),f(a,{key:1,to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[3]||(t[3]=[h(" Diagramme ",-1)])]),_:1})):d("",!0)])]),l("li",Yo,[t[8]||(t[8]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),l("div",Xo,[n.accessAllowed("GeneralConfiguration")?(i(),f(a,{key:0,to:"/GeneralConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[5]||(t[5]=[h(" Allgemein ",-1)])]),_:1})):d("",!0),n.accessAllowed("DisplayConfiguration")?(i(),f(a,{key:1,to:"/DisplayConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[6]||(t[6]=[h(" Display ",-1)])]),_:1})):d("",!0),n.accessAllowed("IdentificationConfiguration")?(i(),f(a,{key:2,to:"/IdentificationConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[7]||(t[7]=[h(" Identifikation ",-1)])]),_:1})):d("",!0)])]),l("li",ei,[t[12]||(t[12]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),l("div",ti,[n.accessAllowed("GeneralChargeConfiguration")?(i(),f(a,{key:0,to:"/GeneralChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[9]||(t[9]=[h(" Übergreifendes ",-1)])]),_:1})):d("",!0),n.accessAllowed("SurplusChargeConfiguration")?(i(),f(a,{key:1,to:"/SurplusChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[10]||(t[10]=[h(" Überschuss-Laden ",-1)])]),_:1})):d("",!0),n.accessAllowed("ActiveBatControlConfiguration")?(i(),f(a,{key:2,to:"/ActiveBatControlConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[11]||(t[11]=[h(" Speichersteuerung ",-1)])]),_:1})):d("",!0)])]),l("li",si,[t[18]||(t[18]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),l("div",ni,[n.accessAllowed("HardwareInstallation")?(i(),f(a,{key:0,to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[13]||(t[13]=[h(" Geräte und Komponenten ",-1)])]),_:1})):d("",!0),n.accessAllowed("LoadManagementConfiguration")?(i(),f(a,{key:1,to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[14]||(t[14]=[h(" Lastmanagement ",-1)])]),_:1})):d("",!0),n.accessAllowed("ChargePointInstallation")?(i(),f(a,{key:2,to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[15]||(t[15]=[h(" Ladepunkte ",-1)])]),_:1})):d("",!0),n.accessAllowed("VehicleConfiguration")?(i(),f(a,{key:3,to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[16]||(t[16]=[h(" Fahrzeuge ",-1)])]),_:1})):d("",!0),n.accessAllowed("IoConfiguration")?(i(),f(a,{key:4,to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[17]||(t[17]=[h(" Ein-/Ausgänge ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("div",oi)):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("a",ii," SmartHome ")):d("",!0)])]),l("li",ai,[t[28]||(t[28]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),l("div",li,[n.accessAllowed("InstallAssistant")?(i(),f(a,{key:0,to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[19]||(t[19]=[h(" Einrichtungsassistent ",-1)])]),_:1})):d("",!0),n.accessAllowed("CloudConfiguration")?(i(),f(a,{key:1,to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[20]||(t[20]=[h(" openWB Cloud ",-1)])]),_:1})):d("",!0),n.accessAllowed("MqttBridgeConfiguration")?(i(),f(a,{key:2,to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[21]||(t[21]=[h(" MQTT-Brücken ",-1)])]),_:1})):d("",!0),n.accessAllowed("DebugConfiguration")?(i(),f(a,{key:3,to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[22]||(t[22]=[h(" Fehlersuche ",-1)])]),_:1})):d("",!0),n.accessAllowed("Support")?(i(),f(a,{key:4,to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[23]||(t[23]=[h(" Support ",-1)])]),_:1})):d("",!0),n.accessAllowed("DataManagement")?(i(),f(a,{key:5,to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[24]||(t[24]=[h(" Datenverwaltung ",-1)])]),_:1})):d("",!0),n.accessAllowed("SecurityConfiguration")?(i(),f(a,{key:6,to:"/System/SecurityConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[25]||(t[25]=[h(" Sicherheit ",-1)])]),_:1})):d("",!0),n.accessAllowed("SystemConfiguration")?(i(),f(a,{key:7,to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[26]||(t[26]=[h(" System ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegalSettings")?(i(),f(a,{key:8,to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[27]||(t[27]=[h(" Rechtliches ",-1)])]),_:1})):d("",!0)])]),l("li",ri,[l("a",di,[t[29]||(t[29]=h(" Wiki ",-1)),b(p,{icon:["fas","external-link-alt"]})])])])],512),t[31]||(t[31]=l("div",{class:"ml-auto d-flex flex-row align-items-center"},[l("div",{id:"info-target"}),l("div",{id:"user-target"}),l("div",{id:"message-target"})],-1))])}const ci=S(Uo,[["render",ui],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]),pi={name:"OpenwbPageFooter"},mi={id:"footer",class:"footer bg-dark text-light font-small"},fi={class:"container text-center"};function gi(e,t,s,u,o,n){return i(),c("footer",mi,[l("div",fi,[l("small",null," Du befindest dich hier: Einstellungen / "+w(e.$route.meta.heading),1)])])}const hi=S(pi,[["render",gi],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);A.add(Qe,Ye,Xe,et);const bi={name:"OpenwbPageUser",components:{FontAwesomeIcon:T,FontAwesomeLayers:se},mixins:[z],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/security/access_allowed",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],showLoginModal:!1,showPasswordResetModal:!1,showLogoutModal:!1,username:"",password:"",token:"",passwordConfirm:"",tokenRequested:!1,passwordResetRequested:!1,smallScreen:!1}},computed:{loggedInUser(){return this.$store.state.local.username||null},userManagementActive(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},accessAllowed(){return this.$store.state.mqtt["openWB/system/security/access_allowed"]===void 0?!1:this.$store.state.mqtt["openWB/system/security/access_allowed"]===!0},anonymousAccessAllowed(){return this.accessAllowed&&this.loggedInUser===null},dataProtectionAcknowledged(){return this.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0},loginButtons(){let e=[{text:"Anmelden",event:"login",subtype:"success",disabled:this.stringIsEmpty(this.username)||this.stringIsEmpty(this.password)}];return this.dataProtectionAcknowledged&&e.push({text:"Kennwort vergessen",event:"forgot_password",subtype:"warning"}),e},requestTokenDisabled(){return this.stringIsEmpty(this.username)||this.tokenRequested},resetPasswordDisabled(){return this.stringIsEmpty(this.username)||this.stringIsEmpty(this.token)||this.stringIsEmpty(this.password)||this.stringIsEmpty(this.passwordConfirm)||this.password!==this.passwordConfirm||this.passwordResetRequested},modalBlockerVisible(){return this.$store.state.local.modalBlockerVisible===!0}},watch:{userManagementActive(){this.checkAutoLogin()},loggedInUser(e){e&&this.checkAutoLogin()},accessAllowed(){this.checkAutoLogin()},modalBlockerVisible(){this.checkAutoLogin()}},mounted(){me(()=>{this.checkAutoLogin()})},beforeMount(){window.addEventListener("resize",this.updateScreenSize),this.updateScreenSize()},beforeUnmount(){window.removeEventListener("resize",this.updateScreenSize)},methods:{updateScreenSize(){this.smallScreen=window.innerWidth<576},stringIsEmpty(e){return!e||e.length===0},checkAutoLogin(){console.debug("Checking auto login: ",this.userManagementActive,this.accessAllowed,this.loggedInUser),this.userManagementActive&&!this.accessAllowed&&!this.modalBlockerVisible?this.showLoginModal=!0:this.showLoginModal=!1},doLogin(e){switch(e){case"login":if(!this.username||!this.password){this.$root.postClientMessage("Benutzername und Passwort erforderlich.","danger");return}this.$cookies.set("mqtt",`${this.username}:${this.password}`),this.$root.reconnectMqttClient(),location.reload();break;case"forgot_password":console.warn("Password reset requested for user:",this.username),this.showLoginModal=!1,this.username="",this.password="",this.showPasswordResetModal=!0;break;default:this.showLoginModal=!1,this.username="",this.password=""}},processResetResult(e){switch(console.log("Password reset modal result:",e),e){case"request_token":if(!this.username){this.$root.postClientMessage("Benutzername erforderlich.","danger");return}console.warn("Requesting password reset token for:",this.username),this.tokenRequested=!0,this.$emit("sendCommand",{command:"createPasswordResetToken",data:{username:this.username}});break;case"reset_password":if(!this.username||!this.token||!this.password||!this.passwordConfirm||this.password!==this.passwordConfirm){this.$root.postClientMessage("Benutzername, Token und neues Kennwort erforderlich.","danger");return}console.warn("Resetting password for:",this.username,"with token:",this.token,"and new password:",this.password),this.passwordResetRequested=!0,this.$root.postClientMessage("Das Token wird geprüft und bei Erfolg das Passwort zurückgesetzt. Dieser Vorgang dauert ein paar Sekunden.","info"),this.$emit("sendCommand",{command:"resetUserPassword",data:{username:this.username,token:this.token,newPassword:this.password}});break;case"close":this.showPasswordResetModal=!1,this.username="",this.password="",this.token="",this.passwordConfirm="",this.tokenRequested=!1,this.passwordResetRequested=!1,this.showLoginModal=!0;return}},doLogout(e){this.showLogoutModal=!1,e==="confirm"&&(console.warn("Logging out user"),this.$cookies.remove("mqtt"),this.$root.reconnectMqttClient(),location.reload())}}},_i={id:"user-indicator",class:"ml-2"},vi={key:0,class:"pill bg-primary"},yi={key:0,class:"non-selectable"},wi={key:1,class:"pill bg-secondary"},ki={name:"loginForm"},Si={name:"requestTokenForm"};function Ci(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-tooltip"),r=g("FontAwesomeLayers"),v=g("openwb-base-modal-dialog"),k=g("openwb-base-text-input");return i(),c(M,null,[n.userManagementActive===!0?(i(),f(j,{key:0,defer:"",to:"#user-target"},[l("div",_i,[n.loggedInUser?(i(),c("span",vi,[b(p,{description:`Angemeldet als ${n.loggedInUser}`},{default:m(()=>[b(a,{icon:["fas","circle-user"],size:"lg"}),o.smallScreen?d("",!0):(i(),c("span",yi,w(n.loggedInUser),1))]),_:1},8,["description"]),b(p,{description:"Abmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-from-bracket"],size:"lg",onClick:t[0]||(t[0]=y=>o.showLogoutModal=!0)})]),_:1})])):(i(),c("span",wi,[b(p,{description:"Nicht angemeldet"},{default:m(()=>[b(r,null,{default:m(()=>[b(a,{icon:["fas","circle-user"]}),b(a,{icon:["fas","ban"],color:"red"})]),_:1})]),_:1}),b(p,{description:"Anmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-to-bracket"],size:"lg",onClick:t[1]||(t[1]=y=>o.showLoginModal=!0)})]),_:1})]))])])):d("",!0),n.userManagementActive?(i(),f(v,{key:1,show:o.showLogoutModal,title:"Abmelden",subtype:"warning",buttons:[{text:"Abmelden",event:"confirm",subtype:"danger"}],onModalResult:t[2]||(t[2]=y=>n.doLogout(y))},{default:m(()=>[...t[11]||(t[11]=[l("p",null,"Willst Du Dich wirklich abmelden?",-1)])]),_:1},8,["show"])):d("",!0),n.userManagementActive?(i(),f(v,{key:2,show:o.showLoginModal,"prevent-close":!n.anonymousAccessAllowed,title:"Anmelden",subtype:"success",buttons:n.loginButtons,onModalResult:t[5]||(t[5]=y=>n.doLogin(y))},{default:m(()=>[l("form",ki,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[3]||(t[3]=y=>o.username=y),title:"Benutzername",subtype:"user",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[4]||(t[4]=y=>o.password=y),title:"Passwort",subtype:"password",required:"",autocomplete:"current-password"},null,8,["modelValue"])])]),_:1},8,["show","prevent-close","buttons"])):d("",!0),n.userManagementActive&&n.dataProtectionAcknowledged?(i(),f(v,{key:3,show:o.showPasswordResetModal,title:"Kennwort zurücksetzen",subtype:"warning",buttons:[{text:"Token anfordern",event:"request_token",subtype:"success",disabled:n.requestTokenDisabled},{text:"Kennwort zurücksetzen",event:"reset_password",subtype:"primary",disabled:n.resetPasswordDisabled},{text:"Zurück",event:"close",subtype:"secondary"}],onModalResult:t[10]||(t[10]=y=>n.processResetResult(y))},{default:m(()=>[l("form",Si,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[6]||(t[6]=y=>o.username=y),title:"Benutzername",subtype:"user","empty-value":"",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.token,"onUpdate:modelValue":t[7]||(t[7]=y=>o.token=y),title:"Token",subtype:"password","empty-value":"",readonly:o.username.length<=0,disabled:o.username.length<=0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[8]||(t[8]=y=>o.password=y),title:"Neues Kennwort",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.passwordConfirm,"onUpdate:modelValue":t[9]||(t[9]=y=>o.passwordConfirm=y),title:"Neues Kennwort bestätigen",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0,validator:y=>y===o.password||"Kennwörter stimmen nicht überein"},null,8,["modelValue","readonly","disabled","validator"])])]),_:1},8,["show","buttons"])):d("",!0)],64)}const Bi=S(bi,[["render",Ci],["__scopeId","data-v-adc196c2"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageUser.vue"]]);A.add(tt,st);const $i={name:"OpenwbPageMqttConnectionState",components:{FontAwesomeIcon:T},props:{connected:{type:Boolean,required:!0}},data(){return{showIcon:!this.connected,visibilityTimeout:null}},watch:{connected(e){e?(clearTimeout(this.visibilityTimeout),this.visibilityTimeout=setTimeout(()=>{this.showIcon=!1},5e3)):(this.showIcon=!0,clearTimeout(this.visibilityTimeout))}}},Ii={id:"connection-state-indicator",class:"ml-2"};function Oi(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-avatar"),r=g("openwb-base-tooltip");return o.showIcon?(i(),f(j,{key:0,defer:"",to:"#info-target"},[l("div",Ii,[b(r,{description:`Verbindung ${s.connected?"hergestellt":"getrennt"}`},{default:m(()=>[b(p,{class:C(s.connected?"text-success":"bg-danger")},{default:m(()=>[b(a,{icon:s.connected?["fas","link"]:["fas","link-slash"]},null,8,["icon"])]),_:1},8,["class"])]),_:1},8,["description"])])])):d("",!0)}const Ai=S($i,[["render",Oi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMqttConnectionState.vue"]]);A.add(nt,ot);const Ti={name:"OpenwbPageMessages",components:{FontAwesomeIcon:T,FontAwesomeLayers:se,FontAwesomeLayersText:it},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/command/"+this.$root.mqttClientId+"/messages/+",writeable:!1},{topic:"openWB/system/messages/+",writeable:!1}],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,s)=>((t=="light"&&["info","success","warning","danger"].includes(s.type)||t=="info"&&["success","warning","danger"].includes(s.type)||t=="success"&&["warning","danger"].includes(s.type)||t=="warning"&&s.type=="danger")&&(t=s.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.localMessages.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[s,u]of Object.entries(e))t.push({topic:s,...u});return t},localMessages(){const e=this.$store.state.local.messages||{};var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});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.localMessages.find(s=>s.topic===e.topic)?this.$store.commit("removeClientMessage",e.topic):this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.dismissMessage({topic:e.topic})}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Mi=["title"],Vi=["innerHTML"];function qi(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("font-awesome-layers-text"),r=g("font-awesome-layers"),v=g("openwb-base-alert"),k=g("openwb-base-click-button"),y=g("openwb-base-toast");return i(),c(M,null,[(i(),f(j,{defer:"",to:"#message-target"},[l("div",{id:"message-indicator",class:C(["text-light clickable",o.showAllMessages?"active":""]),title:o.showAllMessages?"nur neue Nachrichten anzeigen":"Alle Nachrichten anzeigen",onClick:t[0]||(t[0]=(...I)=>n.toggleAllMessages&&n.toggleAllMessages(...I))},[b(r,{"full-width":""},{default:m(()=>[b(a,{icon:o.showAllMessages?["fas","bell"]:["far","bell"],class:C(n.messageIndicatorClass)},null,8,["icon","class"]),n.messages.length>0?(i(),f(p,{key:0,counter:"",value:n.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):d("",!0)]),_:1})],10,Mi)])),n.recentMessages.length>0||o.showAllMessages?(i(),c("div",{key:0,class:C(["openwb-toast-container",o.showAllMessages?"full-height":""])},[n.recentMessages.length==0?(i(),f(v,{key:0,subtype:"info"},{default:m(()=>[...t[1]||(t[1]=[h(" Keine Nachrichten vorhanden. ",-1)])]),_:1})):o.showAllMessages?(i(),f(k,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:n.dismissAllMessages},{default:m(()=>[...t[2]||(t[2]=[h(" Alle Nachrichten löschen ",-1)])]),_:1},8,["onButtonClicked"])):d("",!0),(i(!0),c(M,null,q(n.recentMessages,I=>(i(),f(y,{key:I.topic,topic:I.topic,source:I.source,subtype:I.type,timestamp:I.timestamp,onDismiss:n.dismissMessage,onHide:n.hideMessage},{default:m(()=>[l("span",{innerHTML:I.message},null,8,Vi)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):d("",!0)],64)}const Pi=S(Ti,[["render",qi],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Di={name:"OpenwbPageBlocker",mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],disconnectedTimeout:null}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.mqttClientDisconnected?"Verbindung zur openWB verloren":this.reloadRequired?"Die Seite muss neu geladen werden":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress||this.mqttClientDisconnected)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},mqttClientDisconnected(){return!this.$root.$data.connected},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.$store.state.local.modalBlockerVisible},modalType(){return this.mqttClientDisconnected&&!(this.bootInProgress||this.updateInProgress)?"danger":"dark"}},watch:{mqttClientDisconnected(e){e===!0?this.disconnectedTimeout=window.setTimeout(()=>{this.mqttClientDisconnected&&this.updateLocalStore()},2e3):(this.disconnectedTimeout&&(clearTimeout(this.disconnectedTimeout),this.disconnectedTimeout=null),this.updateLocalStore())},bootInProgress(e){e===!0&&this.updateInProgress===!0&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!0}),this.updateLocalStore()},updateInProgress(e){e===!1&&this.bootInProgress===!1&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!1}),this.updateLocalStore()},reloadRequired(){this.updateLocalStore()}},methods:{updateLocalStore(){this.$store.commit("storeLocal",{name:"modalBlockerVisible",value:this.bootInProgress||this.updateInProgress||this.reloadRequired||this.mqttClientDisconnected})},handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Li={class:"openwb-blocker"},Ei={key:0},xi={key:1},Ri={key:2},Wi={key:3},ji={key:4};function zi(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog");return i(),c("div",Li,[b(a,{show:n.showModalBlocker,title:n.title,subtype:n.modalType,"prevent-close":!0,buttons:n.myButtons,onModalResult:t[0]||(t[0]=p=>n.handleModalResult(p))},{default:m(()=>[n.bootInProgress?(i(),c("p",Ei,"Der Systemstart ist noch nicht abgeschlossen.")):n.updateInProgress?(i(),c("p",xi,"Es wird eine Systemaktualisierung ausgeführt.")):n.mqttClientDisconnected?(i(),c("p",Ri,[...t[1]||(t[1]=[h(" Die Verbindung zur openWB wurde unterbrochen.",-1),l("br",null,null,-1),h(" Es wird versucht, die Verbindung wieder herzustellen... ",-1)])])):n.reloadRequired?(i(),c("p",Wi,"Bitte die Seite neu laden.")):(i(),c("p",ji,"Bitte warten..."))]),_:1},8,["show","title","subtype","buttons"])])}const Ni=S(Di,[["render",zi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]),Ui={name:"OpenwbSettingsApp",components:{NavBar:ci,PageFooter:hi,UserInfo:Bi,MqttConnectionState:Ai,Messages:Pi,Blocker:Ni},data(){return{client:null,connected:!1,connection:{protocol:location.protocol=="https:"?"wss":"ws",protocolVersion:5,host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),path:"/ws",connectTimeout:4e3,reconnectPeriod:4e3,resubscribe:!0,properties:{requestResponseInformation:!0,requestProblemInformation:!0}},dataTimeout:null}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)},nodeEnv(){return"development"}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(u){return new Promise(o=>setTimeout(o,u))}function s(u){return u.includes("#")||u.includes("+")}this.$store.commit("storeLocal",{name:"savingData",value:!0});try{let u={};if(e===void 0){console.error("no topics to save defined!");return}if(Array.isArray(e))e.forEach(o=>{if(s(o)){console.debug("expanding wildcard topic:",o);const n=this.getWildcardTopics(o);Object.entries(n).forEach(([a,p])=>{console.debug("adding topic to save:",a),u[a]=p})}else console.debug("adding topic to save:",o),u[o]=this.$store.state.mqtt[o]});else{console.error("expected array, got ",typeof e);return}for(const[o,n]of Object.entries(u)){if(o.startsWith("$CONTROL")){console.debug("skipping control topic:",o);continue}let a=o.replace("openWB/","openWB/set/");console.debug("saving data:",a,n),this.doPublish(a,n),await t(50)}}finally{this.$store.commit("storeLocal",{name:"savingData",value:!1})}},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish(`openWB/set/command/${this.client.options.clientId}/todo/${e.command}`,e,!1)},createConnection(){const{protocol:e,host:t,port:s,path:u,...o}=this.connection,n=`${e}://${t}:${s}${u}`,[a,p]=this.$cookies.get("mqtt")?.match(/^([^:]+):(.+)$/)?.slice(1)||[null,null];a&&p||console.debug("Anonymous mqtt connection (no cookie set)"),(this.nodeEnv!=="production"||e=="wss")&&a&&p&&(console.debug(`Using mqtt credentials from cookie: "${a}" / "${p.charAt(0)}..."`),o.username=a,o.password=p,a==="admin"&&p==="openwb"&&(console.warn("Using default mqtt credentials! This is insecure and not recommended for production systems."),this.postClientMessage("Warnung: Es werden die Standard-Zugangsdaten für MQTT verwendet! Dies ist unsicher und wird für Produktivsysteme nicht empfohlen.","warning"))),console.debug("connecting to broker:",n),this.client=fe.connect(n,o),this.client.on("connect",()=>{this.connected=!0,console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),a&&(this.postClientMessage(`Angemeldet als "${a}".`,"success"),this.$store.commit("storeLocal",{name:"username",value:a})),this.doSubscribe(["openWB/system/boot_done","openWB/system/dataprotection_acknowledged","openWB/system/usage_terms_acknowledged","openWB/system/installAssistantDone","openWB/system/security/access/+"]),this.dataTimeout=setTimeout(()=>{console.warn("No data received after 1 second, connection might not be working. Removing mqtt cookie and trying again with anonymous connection."),a&&(this.$cookies.remove("mqtt"),this.reconnectMqttClient())},1e3)}),this.client.on("error",r=>{this.connected=!1,console.error("Connection failed",r),this.$cookies.remove("mqtt"),this.$store.commit("storeLocal",{name:"username",value:null}),this.reconnectMqttClient()}),this.client.on("message",(r,v)=>{if(this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null),v.toString().length>0){let k;try{k=JSON.parse(v.toString())}catch(y){console.debug("Json parsing failed, fallback to string: ",r,y),k=v.toString()}this.$store.commit("updateTopic",{topic:r,payload:k})}else this.$store.commit("removeTopic",r)}),this.client.on("end",()=>{this.connected=!1,console.error("mqtt connection ended")}),this.client.on("close",()=>{this.connected=!1,console.error("mqtt connection closed")}),this.client.on("offline",()=>{this.connected=!1,console.error("mqtt connection offline")}),this.client.on("disconnect",()=>{this.connected=!1,console.error("mqtt connection disconnected")}),this.client.on("reconnect",()=>{console.error("mqtt connection reconnecting...")})},endConnection(){this.connected?(console.warn("Ending mqtt connection..."),this.client.end(),this.connected=!1,this.$store.commit("storeLocal",{name:"username",value:null}),this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null)):console.error("No mqtt connection to end.")},reconnectMqttClient(){this.client?.connected&&this.endConnection(),this.createConnection()},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,{},s=>{if(s){this.postClientMessage(`Daten konnten nicht abonniert werden.
Topic: ${t}
${s}`,"danger"),this.$store.commit("removeSubscription",t);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,s=>{s&&(console.error("Unsubscribe error",s),this.postClientMessage(`Daten konnten nicht abbestellt werden.
Topic: ${t}
${s}`,"danger"))}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(s=>{console.debug("removing wildcardTopic:",s),this.$store.commit("removeTopic",s)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,s=!0,u=2){let o={qos:u,retain:s};this.client.publish(e,JSON.stringify(t),o,n=>{n&&(console.error("Publish error",n),this.postClientMessage(`Daten konnten nicht geschrieben werden.
Topic: ${e}
${n}`,"danger"))})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const s=Date.now();this.$store.commit({type:"addClientMessage",timestamp:s,payload:{message:e,type:t,source:"client",timestamp:Math.floor(s/1e3)}})},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})}}},Fi={role:"main",class:"container"},Hi={id:"content"};function Ki(e,t,s,u,o,n){const a=g("nav-bar"),p=g("router-view"),r=g("page-footer"),v=g("mqtt-connection-state"),k=g("user-info"),y=g("messages"),I=g("blocker");return i(),c(M,null,[l("header",null,[b(a)]),l("div",Fi,[l("div",Hi,[l("h1",null,w(e.$route.meta.heading),1),b(p,{onSave:n.saveValues,onReset:n.resetValues,onDefaults:n.setDefaultValues,onSendCommand:n.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),b(r),b(v,{connected:o.connected},null,8,["connected"]),b(k,{onSendCommand:n.sendCommand},null,8,["onSendCommand"]),b(y),b(I)],64)}const Gi=S(Ui,[["render",Ki],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Ji="modulepreload",Zi=function(e){return"/openWB/web/settings/"+e},Z={},B=function(t,s,u){let o=Promise.resolve();if(s&&s.length>0){let r=function(v){return Promise.all(v.map(k=>Promise.resolve(k).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),p=a?.nonce||a?.getAttribute("nonce");o=r(s.map(v=>{if(v=Zi(v),v in Z)return;Z[v]=!0;const k=v.endsWith(".css"),y=k?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${v}"]${y}`))return;const I=document.createElement("link");if(I.rel=k?"stylesheet":Ji,k||(I.as="script"),I.crossOrigin="",I.href=v,p&&I.setAttribute("nonce",p),document.head.appendChild(I),k)return new Promise((le,re)=>{I.addEventListener("load",le),I.addEventListener("error",()=>re(new Error(`Unable to preload CSS for ${v}`)))})}))}function n(a){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=a,window.dispatchEvent(p),!p.defaultPrevented)throw a}return o.then(a=>{for(const p of a||[])p.status==="rejected"&&n(p.reason);return t().catch(n)})},Qi={namespaced:!0,state:()=>({hiddenDatasets:[]}),mutations:{toggleDataset(e,t){e.hiddenDatasets.includes(t)?e.hiddenDatasets=e.hiddenDatasets.filter(s=>s!==t):e.hiddenDatasets.push(t)},setHiddenDatasets(e,t){e.hiddenDatasets=t}}};let ie={mqtt:{},mqttSubscriptions:{},local:{modalBlockerVisible:!1,reloadRequired:!1,savingData:!1,username:null}};ie.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",text8:"Text mit Add-Button",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const x=ge({state:ie,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 s=(u,o,n)=>o.split(".").reduce((a,p,r)=>a[p]=o.split(".").length===r+1?n:a[p]||{},u);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?s(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?s(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"))},addClientMessage(e,t){e.local.messages||(e.local.messages={}),e.local.messages[t.timestamp]=t.payload},removeClientMessage(e,t){e.local.messages&&t in e.local.messages&&delete e.local.messages[t]},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:{chartLegend:Qi},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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(s),clearInterval(u),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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(s),clearInterval(u),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},accessAllowed(e){return t=>new Promise(s=>{const u=`openWB/system/security/access/${t}`;if(e.mqtt[u]!==void 0)s(e.mqtt[u]);else{var o,n;o=setTimeout(()=>{clearInterval(n),s(!1)},5e3),n=setInterval(()=>{e.mqtt[u]!==void 0&&(clearTimeout(o),clearInterval(n),s(e.mqtt[u]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),ae=[{path:"/",redirect:"/GeneralConfiguration"},{path:"/Status",name:"Status",meta:{heading:"Status",checkPermissions:!0},component:()=>B(()=>import("./Status-Cq-cUxwl.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll",checkPermissions:!0},component:()=>B(()=>import("./ChargeLog--8Mbs6Fl.js"),__vite__mapDeps([11,1,2,3,6,7,8,9,12]))},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"Chart",meta:{heading:"Auswertungen - Diagramme",checkPermissions:!0},component:()=>B(()=>import("./Chart-CnTslwyz.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,14]))},{path:"/GeneralConfiguration",name:"GeneralConfiguration",meta:{heading:"Einstellungen - Allgemein",checkPermissions:!0},component:()=>B(()=>import("./GeneralConfiguration-D9XW5ejg.js").then(e=>e.a),__vite__mapDeps([15,1,2,3,16,17]))},{path:"/IdentificationConfiguration",name:"IdentificationConfiguration",meta:{heading:"Einstellungen - Identifikation",checkPermissions:!0},component:()=>B(()=>import("./IdentificationConfiguration-BapSq8DD.js"),__vite__mapDeps([18,16,2,3,1,6,7,8,9]))},{path:"/DisplayConfiguration",name:"DisplayConfiguration",meta:{heading:"Einstellungen - Display",checkPermissions:!0},component:()=>B(()=>import("./DisplayConfiguration-CBLfIXsk.js").then(e=>e.a),__vite__mapDeps([19,17,1,2,3]))},{path:"/GeneralChargeConfiguration",name:"GeneralChargeConfiguration",meta:{heading:"Ladeeinstellungen - Übergreifendes",checkPermissions:!0},component:()=>B(()=>import("./GeneralChargeConfiguration-JQcEANi8.js").then(e=>e.a),__vite__mapDeps([20,17,1,2,3]))},{path:"/SurplusChargeConfiguration",name:"SurplusChargeConfiguration",meta:{heading:"Ladeeinstellungen - Überschuss-Laden",checkPermissions:!0},component:()=>B(()=>import("./SurplusChargeConfiguration-C7J2uSph.js"),__vite__mapDeps([21,16,2,3,1,6,7,8,9]))},{path:"/ActiveBatControlConfiguration",name:"ActiveBatControlConfiguration",meta:{heading:"Ladeeinstellungen - Speichersteuerung",checkPermissions:!0},component:()=>B(()=>import("./ActiveBatControlConfiguration-CcFt4tiZ.js"),__vite__mapDeps([22,1,2,3,6,7,8,9]))},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten",checkPermissions:!0},component:()=>B(()=>import("./HardwareInstallation-BsQdwN_Y.js").then(e=>e.a),__vite__mapDeps([23,1,2,3,17]))},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement",checkPermissions:!0},component:()=>B(()=>import("./LoadManagementConfiguration-BH64OBxz.js"),__vite__mapDeps([24,1,2,3,25,26,6,7,8,9]))},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte",checkPermissions:!0},component:()=>B(()=>import("./ChargePointInstallation-CN2wQ7QE.js").then(e=>e.c),__vite__mapDeps([27,1,2,3,16,17,28]))},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge",checkPermissions:!0},component:()=>B(()=>import("./VehicleConfiguration--T3YyIjm.js").then(e=>e.b),__vite__mapDeps([29,1,2,3,17]))},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge",checkPermissions:!0},component:()=>B(()=>import("./IoConfiguration-cTbf922R.js").then(e=>e.b),__vite__mapDeps([30,1,2,3,17]))},{path:"/System/CloudConfiguration",name:"CloudConfiguration",meta:{heading:"System - openWB Cloud",checkPermissions:!0},component:()=>B(()=>import("./CloudConfiguration-CQRDvjjg.js"),__vite__mapDeps([31,1,2,3,6,7,8,9]))},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfiguration",meta:{heading:"System - MQTT-Brücken",checkPermissions:!0},component:()=>B(()=>import("./MqttBridgeConfiguration-DM8X-gxb.js"),__vite__mapDeps([32,1,2,3,6,7,8,9]))},{path:"/System/DebugConfiguration",name:"DebugConfiguration",meta:{heading:"System - Fehlersuche",checkPermissions:!0},component:()=>B(()=>import("./DebugConfiguration-GU58L2wl.js"),__vite__mapDeps([33,1,2,3,9,6,7,8,34]))},{path:"/System/Support",name:"Support",meta:{heading:"System - Support",checkPermissions:!0},component:()=>B(()=>import("./Support-DdqSn3pe.js"),__vite__mapDeps([35,1,2,3,6,7,8,9]))},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches",checkPermissions:!0},component:()=>B(()=>import("./LegalSettings-g7-88rjM.js"),__vite__mapDeps([36,1,2,3,6,7,8,9]))},{path:"/System/SystemConfiguration",name:"SystemConfiguration",meta:{heading:"System - System",checkPermissions:!0},component:()=>B(()=>import("./SystemConfiguration-BZnhVkFh.js"),__vite__mapDeps([37,1,2,3,6,7,8,9,38]))},{path:"/System/SecurityConfiguration",name:"SecurityConfiguration",meta:{heading:"System - Sicherheit",checkPermissions:!0},component:()=>B(()=>import("./SecurityConfiguration-7o6Gg3lo.js"),__vite__mapDeps([39,1,2,3,6,7,8,9]))},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung",checkPermissions:!0},component:()=>B(()=>import("./DataManagement-BquAussF.js").then(e=>e.a),__vite__mapDeps([40,1,2,3,17]))},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent",checkPermissions:!0},component:()=>B(()=>import("./InstallAssistant-AdA1tpOL.js"),__vite__mapDeps([41,17,2,3,1,6,7,8,9]))},{path:"/Error",name:"Error",meta:{heading:"Fehler",checkPermissions:!1},component:()=>B(()=>import("./Error-CzwVgK-o.js"),__vite__mapDeps([42,2,3]))}];ae.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store",checkPermissions:!1},component:()=>B(()=>import("./TestingStore-D73y9Rra.js"),__vite__mapDeps([43,25,2,3,1,26,6,7,8,9]))});const F=he({history:be(),routes:ae});let W=!1;F.beforeEach(async e=>{const t=async n=>{if(n.meta.checkPermissions===!0){const a=await x.getters.accessAllowed(n.name);if(console.debug("access check for",n.name,"->",a),W)return console.debug("route already handled, cancel further processing"),!1;if(!a)return console.warn("no permission to access",n.name),x.state.local.username?{name:"Error"}:(console.debug("not logged in, cancel navigation to",n.name),W=!0,!1)}return!0};if(W=!1,!await x.getters.usageTermsAcknowledged)return e.name!=="LegalSettings"?(console.log("usage terms not acknowledged, redirect to legal settings"),{name:"LegalSettings"}):(console.log("usage terms not acknowledged, but already on legal settings, continue"),await t(e));if(!await x.getters.installAssistantDone)return e.name!=="InstallAssistant"?(console.log("install assistant not done, redirect to install assistant"),{name:"InstallAssistant"}):(console.log("install assistant not done, but already on install assistant, continue"),await t(e));const o=await t(e);return W=!0,o});F.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const H=_e(Gi);H.use(x).use(F).use(at,lt).use(ve,{expire:"30d",path:"/",domain:"",secure:!0,sameSite:"Lax"});const Yi=Object.assign({"./components/OpenwbBaseAlert.vue":ct,"./components/OpenwbBaseArrayInput.vue":qt,"./components/OpenwbBaseAvatar.vue":xt,"./components/OpenwbBaseButtonGroupInput.vue":Jt,"./components/OpenwbBaseButtonInput.vue":ns,"./components/OpenwbBaseButtonRow.vue":Ut,"./components/OpenwbBaseCard.vue":ms,"./components/OpenwbBaseCheckboxInput.vue":vs,"./components/OpenwbBaseClickButton.vue":Xt,"./components/OpenwbBaseColorPicker.vue":Bs,"./components/OpenwbBaseCopyToClipboard.vue":Ps,"./components/OpenwbBaseHeading.vue":zs,"./components/OpenwbBaseIoPattern.vue":Hs,"./components/OpenwbBaseModalDialog.vue":en,"./components/OpenwbBaseNumberInput.vue":mn,"./components/OpenwbBaseRangeInput.vue":Sn,"./components/OpenwbBaseSelectInput.vue":En,"./components/OpenwbBaseSettingElement.vue":bt,"./components/OpenwbBaseSubmitButtons.vue":Gn,"./components/OpenwbBaseTextInput.vue":_o,"./components/OpenwbBaseTextarea.vue":Mo,"./components/OpenwbBaseToast.vue":Eo,"./components/OpenwbBaseTooltip.vue":zo});Object.entries(Yi).forEach(([e,t])=>{const s=ye(we(e.split("/").pop().replace(/\.\w+$/,"")));H.component(s,t.default)});H.mount("#app");export{z as C,D as O,B as _}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Status-DYns2lPM.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-chartjs-0RUe1kvq.js","assets/vendor-luxon-BDx6lZXm.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/Status-C2EBkHqs.css","assets/ChargeLog-Bgx1bSon.js","assets/ChargeLog-D2ZLixbI.css","assets/Chart-q4SmWErO.js","assets/Chart-BggLkBbQ.css","assets/GeneralConfiguration-CMMYSFfh.js","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/IdentificationConfiguration-NvHT7cba.js","assets/DisplayConfiguration-BEaqDSWf.js","assets/GeneralChargeConfiguration-tvikf7OT.js","assets/SurplusChargeConfiguration-Mmn_2MTQ.js","assets/ActiveBatControlConfiguration-DEBiR6H9.js","assets/HardwareInstallation-caZ0sA9z.js","assets/LoadManagementConfiguration-DVcGfr2E.js","assets/OpenwbSortableList-BORHS8nd.js","assets/OpenwbSortableList-C11EhIQj.css","assets/ChargePointInstallation-C3IshOKk.js","assets/ChargePointInstallation-37TSBtDo.css","assets/VehicleConfiguration-TZSwJptx.js","assets/IoConfiguration-vfX10CsO.js","assets/CloudConfiguration-Cu4M2u7m.js","assets/MqttBridgeConfiguration-hMk_UUpV.js","assets/DebugConfiguration-D4jVRy6l.js","assets/DebugConfiguration-CN753w98.css","assets/Support-LbG1Bt3q.js","assets/LegalSettings-DO80lenG.js","assets/SystemConfiguration-BYwqt7v1.js","assets/SystemConfiguration-BWslT2W-.css","assets/SecurityConfiguration-BMtEoSIk.js","assets/DataManagement-FAi2cjUn.js","assets/InstallAssistant-D7lW6Pyr.js","assets/Error-BZ1TitTh.js","assets/TestingStore-D88H008a.js"])))=>i.map(i=>d[i]); +import{_ as S,e as c,f as _,j as C,k as i,l as g,m as b,q as m,u as d,x as l,y as f,z as E,A as h,D as P,E as O,F as $,G as K,I as V,J as w,K as M,L as q,M as Q,N as de,O as ue,P as ce,Q as pe,T as j,R as G,n as me,S as fe,U as ge,V as he,W as be,X as _e,Y as ve,Z as ye,$ as we}from"./vendor-Bo8v-nQD.js";import{l as A,f as Y,a as X,F as T,b as ke,c as Se,d as N,e as Ce,g as U,h as Be,i as $e,j as Ie,k as Oe,m as Ae,n as Te,o as Me,p as Ve,q as qe,r as Pe,s as De,t as Le,u as Ee,v as xe,w as ee,x as Re,y as We,z as je,A as ze,B as Ne,C as te,D as Ue,E as Fe,G as He,H as Ke,I as Ge,J as Je,K as Ze,L as Qe,M as Ye,N as Xe,O as et,P as se,Q as tt,R as st,S as nt,T as ot,U as it}from"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import{p as at,a as lt}from"./vendor-axios-DdFvNBv9.js";import"./vendor-jquery-CEMonh9Y.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))u(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&u(a)}).observe(document,{childList:!0,subtree:!0});function s(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function u(o){if(o.ep)return;o.ep=!0;const n=s(o);fetch(o.href,n)}})();const rt={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function dt(e,t,s,u,o,n){return i(),c("div",{class:C(["card-text alert","alert-"+s.subtype])},[_(e.$slots,"default",{},void 0,!0)],2)}const ut=S(rt,[["render",dt],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),ct=Object.freeze(Object.defineProperty({__proto__:null,default:ut},Symbol.toStringTag,{value:"Module"}));A.add(Y,X);const pt={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:T},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},mt={key:0,class:"col-md-4 col-form-label"},ft={class:"form-row"},gt={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function ht(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",{class:C(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),c("div",mt,[_(e.$slots,"title",{},void 0,!0),b(p,{description:`Hilfe ${o.showHelp?"verbergen":"anzeigen"}`},{default:m(()=>[e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable ml-1",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),_:1},8,["description"])])):d("",!0),l("div",{class:C(e.$slots.title?"col-md-8":"col px-0")},[l("div",{class:C({"form-row":e.$slots.title})},[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("*ELEMENT MISSING*",-1))],!0)],2),l("div",ft,[o.showHelp?(i(),c("span",gt,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],2)],2)}const D=S(pt,[["render",ht],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),bt=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"})),_t={name:"BaseSettingComponents",data(){return{uid:Math.random().toString(36).substring(2,15)}}},L=S(_t,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/BaseSettingComponents.vue"]]);A.add(ke,Se,N,Ce);const vt={name:"OpenwbArrayInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]},validElements:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},disabled:{type:Boolean,default:()=>!1},readonly:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:""}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},remainingElements(){return this.validElements.length===0?[]:this.validElements.filter(e=>!this.value.includes(e.value||e))},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)&&(this.validElements.length===0||this.validElements.includes(this.newTag)||this.validElements.some(e=>e.value===this.newTag))&&this.$refs.tagInput?.checkValidity()}},tagLabel(){return e=>{const t=this.validElements.find(s=>(s.value||s)===e);return t?t.label||t.value||t:e}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},yt={key:0,class:"w-100"},wt={class:"input-group"},kt={class:"input-group-prepend"},St={class:"input-group-text"},Ct=["id","disabled"],Bt=["id","disabled"],$t={value:"",disabled:""},It=["value"],Ot={class:"input-group-append"},At={class:"tagList mt-1 w-100"},Tt={key:0,class:"noTag"};function Mt(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[s.readonly||s.disabled?d("",!0):(i(),c("div",yt,[l("div",wt,[l("div",kt,[l("div",St,[_(e.$slots,"input-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0)])]),s.validElements.length===0?O((i(),c("input",$({key:0,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>o.newTag=r),type:"text",class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[1]||(t[1]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),null,16,Ct)),[[V,o.newTag]]):O((i(),c("select",$({key:1,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[2]||(t[2]=r=>o.newTag=r),class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[3]||(t[3]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),[l("option",$t,w(n.remainingElements.length>0?"Bitte wählen...":"Keine weiteren Optionen verfügbar"),1),(i(!0),c(M,null,q(n.remainingElements,(r,v)=>(i(),c("option",{key:v,value:r.value||r},w(r.label||r.value||r),9,It))),128))],16,Bt)),[[Q,o.newTag]]),l("div",Ot,[l("div",{class:C(["input-group-text",n.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[4]||(t[4]=(...r)=>n.addTag&&n.addTag(...r))},[_(e.$slots,"input-add",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])])])),l("div",At,[n.value.length==0?(i(),c("span",Tt,[b(a,{icon:["fas","info-circle"]}),h(" "+w(s.noElementsMessage),1)])):d("",!0),(i(!0),c(M,null,q(n.value,(r,v)=>(i(),c("span",{key:v,class:"tag"},[_(e.$slots,"element-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0),h(" "+w(n.tagLabel(r))+" ",1),s.readonly||s.disabled?d("",!0):(i(),f(a,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:k=>n.removeTag(v)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Vt=S(vt,[["render",Mt],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),qt=Object.freeze(Object.defineProperty({__proto__:null,default:Vt},Symbol.toStringTag,{value:"Module"})),Pt={name:"OpenwbAvatar"},Dt={class:"avatar"};function Lt(e,t,s,u,o,n){return i(),c("div",Dt,[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("?",-1))],!0)])}const Et=S(Pt,[["render",Lt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),xt=Object.freeze(Object.defineProperty({__proto__:null,default:Et},Symbol.toStringTag,{value:"Module"}));A.add(U);const Rt={name:"OpenwbButtonRow",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{buttons:{type:Array,required:!0},modelValue:{type:[String,Number,Boolean],default:null},disabled:{type:Boolean,default:!1},uid:{type:String,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Wt={class:"btn-group btn-block btn-group-toggle"},jt=["for"],zt=["id","value","disabled","onClick"];function Nt(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",Wt,[(i(!0),c(M,null,q(s.buttons,p=>(i(),c("label",{key:p.buttonValue,class:C(["btn btn-same-size btn-centered",[{active:s.modelValue===p.buttonValue},{disabled:s.disabled},p.class?p.class:"btn-outline-info"]]),for:`${s.uid}-${p.buttonValue}`},[l("span",null,[O(l("input",$({id:`${s.uid}-${p.buttonValue}`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"radio",value:p.buttonValue},{ref_for:!0},e.$attrs,{disabled:s.disabled,onClick:r=>e.$emit("button-click",p.buttonValue)}),null,16,zt),[[de,n.value]]),_(e.$slots,"label-"+p.buttonValue,{},()=>[h(w(p.text),1)],!0),t[1]||(t[1]=l("span",null," ",-1)),b(a,{icon:["fas","check"],style:ue([n.value==p.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],10,jt))),128))])}const ne=S(Rt,[["render",Nt],["__scopeId","data-v-4bd221b6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonRow.vue"]]),Ut=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"})),Ft={name:"OpenwbButtonGroupInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseButtonRow:ne},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0},disabled:{type:Boolean,required:!1,default:!1},maxButtonsPerRow:{type:Number,default:Number.POSITIVE_INFINITY}},emits:["update:modelValue","button-click"],data(){return{containerWidth:0}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},maxButtonsPerRowAuto(){return this.containerWidth<=200?1:this.containerWidth<=360?2:this.containerWidth<=550?3:1/0},buttonRows(){const e=[];for(let t=0;t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Ht,[(i(!0),c(M,null,q(n.buttonRows,(r,v)=>(i(),f(a,$({key:v,buttons:r,uid:e.uid,"model-value":n.value,disabled:s.disabled},{ref_for:!0},e.$attrs,{"onUpdate:modelValue":t[0]||(t[0]=k=>n.value=k),onButtonClick:t[1]||(t[1]=k=>e.$emit("button-click",k))}),P({_:2},[q(r,k=>({name:`label-${k.buttonValue}`,fn:m(y=>[_(e.$slots,`label-${k.buttonValue}`,$({ref_for:!0},y),void 0,!0)])}))]),1040,["buttons","uid","model-value","disabled"]))),128))],512)]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Gt=S(Ft,[["render",Kt],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Jt=Object.freeze(Object.defineProperty({__proto__:null,default:Gt},Symbol.toStringTag,{value:"Module"})),Zt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},Qt=["title"];function Yt(e,t,s,u,o,n){return i(),c("button",{type:"button",class:"btn btn-block",title:s.tooltip,onClick:t[0]||(t[0]=E((...a)=>n.click&&n.click(...a),["prevent"]))},[_(e.$slots,"default",{},()=>[h(w(s.title),1)],!0)],8,Qt)}const oe=S(Zt,[["render",Yt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:oe},Symbol.toStringTag,{value:"Module"})),es={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseClickButton:oe},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function ts(e,t,s,u,o,n){const a=g("openwb-base-click-button"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[b(a,$({class:(s.disabled?"btn-outline-":"btn-")+s.subtype,disabled:s.disabled},e.$attrs,{onButtonClicked:n.handleClick}),{default:m(()=>[h(w(s.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const ss=S(es,[["render",ts],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),ns=Object.freeze(Object.defineProperty({__proto__:null,default:ss},Symbol.toStringTag,{value:"Module"}));A.add(Be,$e);const os={name:"OpenwbCard",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},is={class:"form-group mb-0"},as={class:"form-row vaRow mb-0 py-2"},ls={class:"col"},rs={class:"card-actions ml-4"},ds={key:0,class:"card-actions mr-2"},us={key:2,class:"card-footer"};function cs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",{class:C(["card","border-"+s.subtype])},[s.title!==void 0||e.$slots.header?(i(),c("div",{key:0,class:C(["card-header py-1","bg-"+s.subtype]),onClick:t[0]||(t[0]=(...p)=>n.toggleBody&&n.toggleBody(...p))},[l("div",is,[l("div",as,[l("div",ls,[_(e.$slots,"header",{collapsed:o.isCollapsed},()=>[h(w(s.title),1)],!0)])])]),l("div",rs,[e.$slots.actions?(i(),c("div",ds,[_(e.$slots,"actions",{collapsed:o.isCollapsed},void 0,!0)])):d("",!0),s.collapsible?(i(),f(a,{key:1,icon:o.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):d("",!0)])],2)):d("",!0),o.isCollapsed===!1?(i(),c("div",$({key:1,class:["card-body",[s.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+s.bodyBg]]},e.$attrs),[_(e.$slots,"default",{},void 0,!0)],16)):d("",!0),e.$slots.footer&&o.isCollapsed===!1?(i(),c("div",us,[_(e.$slots,"footer",{},void 0,!0)])):d("",!0)],2)}const ps=S(os,[["render",cs],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),ms=Object.freeze(Object.defineProperty({__proto__:null,default:ps},Symbol.toStringTag,{value:"Module"})),fs={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},gs={class:"col-md-8"},hs=["id"];function bs(e,t,s,u,o,n){const a=g("openwb-base-setting-element");return i(),f(a,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[l("div",gs,[O(l("input",$({id:`${e.uid}-checkbox-input`,"onUpdate:modelValue":t[0]||(t[0]=p=>n.value=p),class:"form-control",type:"checkbox"},e.$attrs),null,16,hs),[[ce,n.value]])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const _s=S(fs,[["render",bs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),vs=Object.freeze(Object.defineProperty({__proto__:null,default:_s},Symbol.toStringTag,{value:"Module"}));A.add(Ie);const ys={name:"OpenwbColorPicker",components:{FontAwesomeIcon:T},mixins:[L],props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},ws={class:"wrapper"},ks=["id","value","title"];function Ss(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",ws,[l("input",{id:`${e.uid}-color-input`,type:"color",class:"custom-color-picker",value:s.modelValue,title:`Farbe: ${s.modelValue}`,onInput:t[0]||(t[0]=r=>n.changed(r.target.value))},null,40,ks),s.defaultColor?(i(),f(p,{key:0,description:`Zurücksetzen auf Standardfarbe (${s.defaultColor})`},{default:m(()=>[b(a,{class:"ml-1 clickable",icon:["fas","rotate-left"],onClick:t[1]||(t[1]=r=>n.changed(s.defaultColor))})]),_:1},8,["description"])):d("",!0)])}const Cs=S(ys,[["render",Ss],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Bs=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"})),{text:J,copy:$s,copied:Is,isSupported:Os}=pe({copiedDuring:3e3,legacy:!0});A.add(Oe,Ae);const As={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:T},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?.innerText?this.$refs.content.innerText.trim():""},isCopied(){return Is.value&&J.value===this.contentText},copySupported(){return Os.value}},methods:{click(){this.copySupported&&$s(this.contentText).then(()=>{console.debug("Text copied to clipboard:",J.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},Ts=["title"],Ms={ref:"content"};function Vs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("span",{title:n.copySupported&&!n.isCopied?s.tooltip:"",class:C({"copy-me":n.copySupported&&!n.isCopied}),onClick:t[0]||(t[0]=E((...p)=>n.click&&n.click(...p),["stop"]))},[l("span",Ms,[_(e.$slots,"default",{},void 0,!0)],512),n.copySupported?(i(),f(a,{key:0,class:"ml-1",icon:n.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):d("",!0)],10,Ts)}const qs=S(As,[["render",Vs],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),Ps=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));A.add(Y,X,U);const Ds={name:"OpenwbHeading",components:{FontAwesomeIcon:T},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ls={class:"heading-text"},Es={key:0,class:"actions"},xs={class:""},Rs={key:0,class:"form-row alert alert-info small flex-fill"};function Ws(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c(M,null,[l("div",$({class:"card-text card-text-heading"},e.$attrs),[l("div",Ls,[_(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),e.$slots.actions?(i(),c("span",Es,[_(e.$slots,"actions",{},void 0,!0)])):d("",!0)],16),l("div",xs,[o.showHelp?(i(),c("span",Rs,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],64)}const js=S(Ds,[["render",Ws],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),zs=Object.freeze(Object.defineProperty({__proto__:null,default:js},Symbol.toStringTag,{value:"Module"}));A.add(Te,Me,Ve,qe);const R={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},Ns={name:"OpenwbIoPattern",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return R[e].icon},getIconClass(e){return R[e].iconClass},getTitle(e){return R[e].title},toggleInput(e,t){this.value[e]=R[t].nextValue}}};function Us(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip"),r=g("openwb-base-setting-element");return i(),f(r,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[(i(!0),c(M,null,q(n.value,(v,k)=>(i(),c("span",{key:k},[b(p,{description:n.getTitle(v)},{default:m(()=>[b(a,{icon:n.getIcon(v),class:C([n.getIconClass(v),"fa-fw clickable"]),size:"2x",transform:v=="undefined"?"shrink-6":null,mask:v=="undefined"?["fas","square"]:null,onClick:E(y=>n.toggleInput(k,v),["stop","prevent"]),onMousedown:t[0]||(t[0]=E(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=E(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Fs=S(Ns,[["render",Us],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),Hs=Object.freeze(Object.defineProperty({__proto__:null,default:Fs},Symbol.toStringTag,{value:"Module"})),Ks={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=[...this.buttons]),e.findIndex(t=>t.event==="close")===-1&&!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)}}},Gs={class:"modal-content"},Js={class:"modal-title"},Zs={class:"modal-body"},Qs=["disabled","data-event"];function Ys(e,t,s,u,o,n){return s.show?(i(),f(j,{key:0,to:"body"},[t[5]||(t[5]=l("div",{class:"modal-backdrop fade show"},null,-1)),l("div",{class:"modal fade d-block show",role:"dialog",onClick:t[3]||(t[3]=(...a)=>n.handleClick&&n.handleClick(...a))},[l("div",{class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document",onClick:t[2]||(t[2]=E(()=>{},["stop"]))},[l("div",Gs,[l("div",{class:C(["modal-header","bg-"+s.subtype])},[l("h4",Js,w(s.title),1),s.preventClose?d("",!0):(i(),c("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>n.handleClick&&n.handleClick(...a))}," × "))],2),l("div",Zs,[_(e.$slots,"default",{},()=>[t[4]||(t[4]=h("# Body #",-1))])]),n.myButtons.length>0?(i(),c("div",{key:0,class:C(["modal-footer d-flex","justify-content-"+s.footerAlignment])},[(i(!0),c(M,null,q(n.myButtons,a=>(i(),c("button",{key:a.text,disabled:a.disabled===!0,type:"button",class:C(["btn",(a.disabled?"btn-outline-":"btn-")+(a.subtype??"secondary")]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...p)=>n.handleClick&&n.handleClick(...p))},w(a.text),11,Qs))),128))],2)):d("",!0)])])])])):d("",!0)}const Xs=S(Ks,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Xs},Symbol.toStringTag,{value:"Module"}));A.add(Pe);const tn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},sn={class:"input-group"},nn={class:"input-group-prepend"},on={class:"input-group-text"},an=["id"],ln={key:0,class:"input-group-append"},rn={class:"input-group-text"},dn={key:1,class:"input-group-append"},un={class:"input-group-text p-0"};function cn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",sn,[l("div",nn,[l("div",on,[b(a,{icon:["fas","calculator"]})])]),O(l("input",$({id:`${e.uid}-number-input`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,an),[[V,n.value,void 0,{lazy:!0,number:!0}]]),s.unit?(i(),c("div",ln,[l("div",rn,w(s.unit),1)])):d("",!0),e.$slots.append?(i(),c("div",dn,[l("div",un,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pn=S(tn,[["render",cn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),mn=Object.freeze(Object.defineProperty({__proto__:null,default:pn},Symbol.toStringTag,{value:"Module"}));A.add(De,Le);const fn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",gn,[l("div",hn,[n.label?(i(),c("label",{key:0,class:"col-2 pl-0 col-form-label valueLabel",for:`${e.uid}-button`},w(n.label),9,bn)):d("",!0),l("button",{id:`${e.uid}-button`,class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[0]||(t[0]=(...r)=>n.decrement&&n.decrement(...r))},[b(a,{icon:["fas","step-backward"]})],8,_n),l("div",vn,[O(l("input",$({"onUpdate:modelValue":t[1]||(t[1]=r=>n.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:s.min,max:s.max,step:s.step},e.$attrs),null,16,yn),[[V,n.sliderValue,void 0,{number:!0}]])]),l("button",{class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[2]||(t[2]=(...r)=>n.increment&&n.increment(...r))},[b(a,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const kn=S(fn,[["render",wn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:kn},Symbol.toStringTag,{value:"Module"}));A.add(N);const Cn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Bn={class:"w-100"},$n={class:"input-group"},In={key:0,class:"input-group-prepend"},On={class:"input-group-text"},An=["id"],Tn=["value"],Mn=["value"],Vn=["label"],qn=["value"],Pn={key:1,class:"input-group-append"};function Dn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({default:m(()=>[l("div",Bn,[l("div",$n,[e.$slots.prefix?(i(),c("div",In,[l("div",On,[_(e.$slots,"prefix")])])):d("",!0),O(l("select",$({id:`${e.uid}-select`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"col form-control"},e.$attrs),[s.notSelected!==void 0?(i(),c("option",{key:0,value:s.emptyValue,disabled:""}," -- "+w(s.notSelected)+" -- ",9,Tn)):d("",!0),(i(!0),c(M,null,q(s.options,r=>(i(),c("option",{key:r.value,value:r.value},w(r.text),9,Mn))),128)),(i(!0),c(M,null,q(s.groups,r=>(i(),c("optgroup",{key:r.label,label:r.label},[(i(!0),c(M,null,q(r.options,v=>(i(),c("option",{key:v.value,value:v.value},w(v.text),9,qn))),128))],8,Vn))),128))],16,An),[[Q,n.value]]),s.addButton?(i(),c("div",Pn,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})])],2)])):d("",!0)])])]),_:2},[e.$slots.title||s.title?{name:"title",fn:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"1"}:void 0]),1024)}const Ln=S(Cn,[["render",Dn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),En=Object.freeze(Object.defineProperty({__proto__:null,default:Ln},Symbol.toStringTag,{value:"Module"}));A.add(U,Ee,xe);const xn={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:T},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0},saveLabel:{type:String,default:"Speichern"},saveDisabled:{type:Boolean,default:!1},saveId:{type:String,default:"saveSettingsBtn"},resetLabel:{type:String,default:"Änderungen verwerfen"},resetDisabled:{type:Boolean,default:!1},resetId:{type:String,default:"modalResetBtn"},defaultsLabel:{type:String,default:"Werkseinstellungen"},defaultsDisabled:{type:Boolean,default:!1},defaultsId:{type:String,default:"modalDefaultsBtn"}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},Rn={class:"row justify-content-center mb-1"},Wn={class:"col-md-4 d-flex py-1 justify-content-center"},jn=["id","disabled"],zn={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},Nn=["id","disabled"],Un={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},Fn=["id","disabled"];function Hn(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog"),p=g("font-awesome-icon");return i(),c(M,null,[b(a,{show:n.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:m(()=>[...t[3]||(t[3]=[h(" Einstellungen werden gespeichert... ",-1)])]),_:1},8,["show"]),b(a,{show:o.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:n.handleModalReset},{default:m(()=>[...t[4]||(t[4]=[h(" Willst Du die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])]),_:1},8,["show","onModalResult"]),b(a,{show:o.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:n.handleModalDefaults},{default:m(()=>[...t[5]||(t[5]=[h(" Willst Du wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])]),_:1},8,["show","onModalResult"]),l("div",Rn,[l("div",Wn,[l("button",{id:s.saveId,type:"button",class:C(["btn btn-block",[{disabled:s.saveDisabled},s.saveDisabled?"btn-outline-success":"btn-success"]]),disabled:s.saveDisabled,onClick:t[0]||(t[0]=(...r)=>n.saveSettings&&n.saveSettings(...r))},[h(w(s.saveLabel)+" ",1),b(p,{icon:["fas","check"]})],10,jn)]),s.hideReset?d("",!0):(i(),c("div",zn,[l("button",{id:s.resetId,type:"button",class:C(["btn btn-block",[{disabled:s.resetDisabled},s.resetDisabled?"btn-outline-warning":"btn-warning"]]),disabled:s.resetDisabled,onClick:t[1]||(t[1]=(...r)=>n.showResetModal&&n.showResetModal(...r))},[h(w(s.resetLabel)+" ",1),b(p,{icon:["fas","undo"]})],10,Nn)])),s.hideDefaults?d("",!0):(i(),c("div",Un,[l("button",{id:s.defaultsId,type:"button",class:C(["btn btn-block",[{disabled:s.defaultsDisabled},s.defaultsDisabled?"btn-outline-danger":"btn-danger"]]),disabled:s.defaultsDisabled,onClick:t[2]||(t[2]=(...r)=>n.showDefaultsModal&&n.showDefaultsModal(...r))},[h(w(s.defaultsLabel)+" ",1),b(p,{icon:["fas","times"]})],10,Fn)]))])],64)}const Kn=S(xn,[["render",Hn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),Gn=Object.freeze(Object.defineProperty({__proto__:null,default:Kn},Symbol.toStringTag,{value:"Module"}));A.add(ee,Re,We,je,ze,Ne,te,Ue,Fe,He,Ke,N,Ge,Je);const Jn={name:"OpenwbTextInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","group","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},validator:{type:Function,required:!1,default:null},showQuickButtons:{type:Boolean,default:!1},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.validator){console.log("Validating input value:",e);const t=this.validator(e);console.log("Validation result:",t);const s=this.inputRef;t!==!0?(console.log("Marking input as invalid",JSON.stringify(this.$refs)),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(t),this.inputInvalid=!0,this.tempValue=e):(console.log("Input is valid"),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(""),this.inputInvalid=!1)}if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"},addDisabled:{get(){return this.value===this.emptyValue}}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,s=new Date(this.modelValue);switch(this.subtype){case"date":s.setDate(s.getDate()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0")+"-"+String(s.getDate()).padStart(2,"0");break;case"month":s.setMonth(s.getMonth()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0");break;case"year":s.setYear(s.getFullYear()+e),t=String(s.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Zn,[l("div",Qn,[l("div",Yn,[l("div",Xn,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="email"?(i(),f(a,{key:1,icon:["fas","envelope"]})):d("",!0),s.subtype=="host"?(i(),f(a,{key:2,icon:["fas","network-wired"]})):d("",!0),s.subtype=="url"?(i(),f(a,{key:3,icon:["fas","globe"]})):d("",!0),s.subtype=="user"?(i(),f(a,{key:4,icon:["fas","user"]})):d("",!0),s.subtype=="group"?(i(),f(a,{key:5,icon:["fas","users"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:6,icon:["fas","code"]})):d("",!0),s.subtype=="password"?(i(),f(a,{key:7,icon:o.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):d("",!0),s.subtype=="time"?(i(),f(a,{key:8,icon:["fas","clock"]})):d("",!0),s.subtype=="date"||s.subtype=="month"||s.subtype=="year"?(i(),f(a,{key:9,icon:["fas","calendar-day"]})):d("",!0)])]),["text","user","group"].includes(s.subtype)?O((i(),c("input",$({key:0,id:`${e.uid}-text-input`,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"text",class:["form-control",{invalid:o.inputInvalid}]},e.$attrs,{pattern:s.pattern}),null,16,eo)),[[V,n.value]]):d("",!0),s.subtype=="json"?O((i(),c("input",$({key:1,id:`${e.uid}-json-input`,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,to)),[[V,n.value]]):d("",!0),s.subtype=="password"?O((i(),c("input",$({key:2,id:`${e.uid}-password-input`,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>n.value=r),type:o.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,so)),[[G,n.value]]):d("",!0),s.subtype=="host"?O((i(),c("input",$({key:3,id:`${e.uid}-host-input`,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.hostPattern}),null,16,no)),[[V,n.value]]):d("",!0),["email","url"].includes(s.subtype)?O((i(),c("input",$({key:4,id:`${e.uid}-url-input`,ref:"urlInput","onUpdate:modelValue":t[4]||(t[4]=r=>n.value=r),type:s.subtype,class:"form-control"},e.$attrs),null,16,oo)),[[G,n.value]]):d("",!0),s.subtype=="time"?O((i(),c("input",$({key:5,id:`${e.uid}-time-input`,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>n.value=r),type:"time",class:"form-control"},e.$attrs),null,16,io)),[[V,n.value]]):d("",!0),s.subtype=="date"?O((i(),c("input",$({key:6,id:`${e.uid}-date-input`,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>n.value=r),type:"date",class:"form-control"},e.$attrs),null,16,ao)),[[V,n.value]]):d("",!0),s.subtype=="month"?O((i(),c("input",$({key:7,id:`${e.uid}-month-input`,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>n.value=r),type:"month",class:"form-control"},e.$attrs),null,16,lo)),[[V,n.value]]):d("",!0),s.subtype=="year"?O((i(),c("input",$({key:8,id:`${e.uid}-year-input`,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,ro)),[[V,n.value]]):d("",!0),s.unit?(i(),c("div",uo,[l("div",co,w(s.unit),1)])):d("",!0),s.subtype=="password"?(i(),c("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>n.togglePassword&&n.togglePassword(...r))},[l("div",po,[b(a,{icon:o.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>n.modify(-1))},[...t[13]||(t[13]=[l("div",{class:"input-group-text"},"-",-1)])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>n.modify(1))},[...t[14]||(t[14]=[l("div",{class:"input-group-text"},"+",-1)])])):d("",!0),s.addButton?(i(),c("div",mo,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[12]||(t[12]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])):d("",!0),e.$slots.append?(i(),c("div",fo,[l("div",go,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const bo=S(Jn,[["render",ho],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),_o=Object.freeze(Object.defineProperty({__proto__:null,default:bo},Symbol.toStringTag,{value:"Module"}));A.add(ee,te);const vo={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:D,FontAwesomeIcon:T},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},yo={class:"w-100"},wo={class:"input-group"},ko={class:"input-group-prepend"},So={class:"input-group-text"},Co=["id"],Bo=["id"],$o={key:2,class:"input-group-append"},Io={class:"input-group-text"},Oo={class:"form-text text-muted text-right"};function Ao(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",yo,[l("div",wo,[l("div",ko,[l("div",So,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:1,icon:["fas","code"]})):d("",!0)])]),s.subtype==="json"?O((i(),c("textarea",$({key:0,id:`${e.uid}-textarea`,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Co)),[[V,n.value,void 0,{lazy:!0}]]):O((i(),c("textarea",$({key:1,id:`${e.uid}-textarea`,"onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Bo)),[[V,n.value]]),e.$attrs.maxlength?(i(),c("div",$o,[l("div",Io,[l("small",Oo,w(n.length)+" / "+w(e.$attrs.maxlength),1)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const To=S(vo,[["render",Ao],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Mo=Object.freeze(Object.defineProperty({__proto__:null,default:To},Symbol.toStringTag,{value:"Module"})),Vo={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const u=new Date-this.timestamp*1e3;for(var o in e)if(Math.abs(u)>e[o]){this.relativeTime=t.format(Math.round(-u/e[o]),o);break}u>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},qo={key:0,class:"time-diff"},Po={class:"toast-body"};function Do(e,t,s,u,o,n){return i(),c("div",{class:C(["toast","border-"+s.subtype]),role:"alert"},[l("div",{class:C(["toast-header","bg-"+s.subtype])},[t[2]||(t[2]=l("strong",{class:"pr-2 mr-auto"},"openWB",-1)),s.timestamp?(i(),c("small",qo,w(o.relativeTime),1)):d("",!0),l("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>n.dismiss&&n.dismiss(...a))},[...t[1]||(t[1]=[l("span",{"aria-hidden":"true"},"×",-1)])])],2),l("div",Po,[_(e.$slots,"default",{},void 0,!0)])],2)}const Lo=S(Vo,[["render",Do],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Eo=Object.freeze(Object.defineProperty({__proto__:null,default:Lo},Symbol.toStringTag,{value:"Module"})),xo={name:"OpenwbTooltip",props:{description:{type:String,default:"#TOOLTIP#"},addHint:{type:Boolean,default:!1}}},Ro=["title"];function Wo(e,t,s,u,o,n){return i(),c("div",{class:C(["base-text",{dotted:s.addHint}]),title:s.description},[_(e.$slots,"default",{},void 0,!0)],10,Ro)}const jo=S(xo,[["render",Wo],["__scopeId","data-v-c65a1128"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTooltip.vue"]]),zo=Object.freeze(Object.defineProperty({__proto__:null,default:jo},Symbol.toStringTag,{value:"Module"})),No={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopics:[],weekdays:["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],chargeModes:["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"],statusLevel:["success","warning","danger"]}},computed:{mqttTopicsToSubscribe(){return this.mqttTopics.map(e=>e.topic)},mqttTopicsToPublish(){return this.mqttTopics.filter(e=>e.writeable).map(e=>e.topic)}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,s=void 0){console.debug("updateState:",e,t,s),this.$store.commit({type:"updateTopic",topic:e,objectPath:s,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let s=e;t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let u=Object.keys(this.$store.state.mqtt).filter(o=>o.match(s));return u.forEach((o,n,a)=>{a[n]=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),u},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,s=t,u=1){if(!(e==null||isNaN(e)))return e=e*u,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:s})},formatNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,s,u):"-"},formatPhaseArrayNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(o=>this.formatNumber(o,t,s,u)):["-","-","-"]},translateChargeMode(e){return{instant_charging:"Sofort",pv_charging:"PV",scheduled_charging:"Zielladen",time_charging:"Zeitladen",eco_charging:"Eco",standby:"Standby",stop:"Stop"}[e]||e}}},z=S(No,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);A.add(Ze);const Uo={name:"OpenwbNavBar",components:{FontAwesomeIcon:T},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/security/access/+",writeable:!1}]}},computed:{nodeEnv(){return"development"},accessAllowed(){return e=>this.$store.state.mqtt[`openWB/system/security/access/${e}`]===!0}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},Fo={class:"navbar navbar-expand-xl bg-dark navbar-dark fixed-top"},Ho={ref:"navbarButton",class:"navbar-toggler mr-auto",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},Ko={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},Go={class:"navbar-nav mr-auto"},Jo={key:0,class:"nav-item"},Zo={class:"nav-item dropdown nav-separator-before"},Qo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},Yo={class:"nav-item dropdown nav-separator-before"},Xo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ei={class:"nav-item dropdown"},ti={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},si={class:"nav-item dropdown"},ni={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},oi={key:5,class:"dropdown-divider"},ii={key:6,href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"},ai={class:"nav-item dropdown"},li={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ri={class:"nav-item nav-separator-before"},di={class:"nav-link",href:"https://wiki.openwb.de/",target:"_blank"};function ui(e,t,s,u,o,n){const a=g("router-link"),p=g("font-awesome-icon");return i(),c("nav",Fo,[t[30]||(t[30]=l("a",{class:"navbar-brand",href:"/openWB/web/"},[l("span",null,"openWB")],-1)),l("button",Ho,[...t[0]||(t[0]=[l("span",{class:"navbar-toggler-icon"},null,-1)])],512),l("div",Ko,[l("ul",Go,[n.accessAllowed("Status")?(i(),c("li",Jo,[b(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:m(()=>[...t[1]||(t[1]=[h(" Status ",-1)])]),_:1})])):d("",!0),l("li",Zo,[t[4]||(t[4]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),l("div",Qo,[n.accessAllowed("ChargeLog")?(i(),f(a,{key:0,to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[2]||(t[2]=[h(" Ladeprotokoll ",-1)])]),_:1})):d("",!0),n.accessAllowed("Chart")?(i(),f(a,{key:1,to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[3]||(t[3]=[h(" Diagramme ",-1)])]),_:1})):d("",!0)])]),l("li",Yo,[t[8]||(t[8]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),l("div",Xo,[n.accessAllowed("GeneralConfiguration")?(i(),f(a,{key:0,to:"/GeneralConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[5]||(t[5]=[h(" Allgemein ",-1)])]),_:1})):d("",!0),n.accessAllowed("DisplayConfiguration")?(i(),f(a,{key:1,to:"/DisplayConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[6]||(t[6]=[h(" Display ",-1)])]),_:1})):d("",!0),n.accessAllowed("IdentificationConfiguration")?(i(),f(a,{key:2,to:"/IdentificationConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[7]||(t[7]=[h(" Identifikation ",-1)])]),_:1})):d("",!0)])]),l("li",ei,[t[12]||(t[12]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),l("div",ti,[n.accessAllowed("GeneralChargeConfiguration")?(i(),f(a,{key:0,to:"/GeneralChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[9]||(t[9]=[h(" Übergreifendes ",-1)])]),_:1})):d("",!0),n.accessAllowed("SurplusChargeConfiguration")?(i(),f(a,{key:1,to:"/SurplusChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[10]||(t[10]=[h(" Überschuss-Laden ",-1)])]),_:1})):d("",!0),n.accessAllowed("ActiveBatControlConfiguration")?(i(),f(a,{key:2,to:"/ActiveBatControlConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[11]||(t[11]=[h(" Speichersteuerung ",-1)])]),_:1})):d("",!0)])]),l("li",si,[t[18]||(t[18]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),l("div",ni,[n.accessAllowed("HardwareInstallation")?(i(),f(a,{key:0,to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[13]||(t[13]=[h(" Geräte und Komponenten ",-1)])]),_:1})):d("",!0),n.accessAllowed("LoadManagementConfiguration")?(i(),f(a,{key:1,to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[14]||(t[14]=[h(" Lastmanagement ",-1)])]),_:1})):d("",!0),n.accessAllowed("ChargePointInstallation")?(i(),f(a,{key:2,to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[15]||(t[15]=[h(" Ladepunkte ",-1)])]),_:1})):d("",!0),n.accessAllowed("VehicleConfiguration")?(i(),f(a,{key:3,to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[16]||(t[16]=[h(" Fahrzeuge ",-1)])]),_:1})):d("",!0),n.accessAllowed("IoConfiguration")?(i(),f(a,{key:4,to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[17]||(t[17]=[h(" Ein-/Ausgänge ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("div",oi)):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("a",ii," SmartHome ")):d("",!0)])]),l("li",ai,[t[28]||(t[28]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),l("div",li,[n.accessAllowed("InstallAssistant")?(i(),f(a,{key:0,to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[19]||(t[19]=[h(" Einrichtungsassistent ",-1)])]),_:1})):d("",!0),n.accessAllowed("CloudConfiguration")?(i(),f(a,{key:1,to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[20]||(t[20]=[h(" openWB Cloud ",-1)])]),_:1})):d("",!0),n.accessAllowed("MqttBridgeConfiguration")?(i(),f(a,{key:2,to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[21]||(t[21]=[h(" MQTT-Brücken ",-1)])]),_:1})):d("",!0),n.accessAllowed("DebugConfiguration")?(i(),f(a,{key:3,to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[22]||(t[22]=[h(" Fehlersuche ",-1)])]),_:1})):d("",!0),n.accessAllowed("Support")?(i(),f(a,{key:4,to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[23]||(t[23]=[h(" Support ",-1)])]),_:1})):d("",!0),n.accessAllowed("DataManagement")?(i(),f(a,{key:5,to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[24]||(t[24]=[h(" Datenverwaltung ",-1)])]),_:1})):d("",!0),n.accessAllowed("SecurityConfiguration")?(i(),f(a,{key:6,to:"/System/SecurityConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[25]||(t[25]=[h(" Sicherheit ",-1)])]),_:1})):d("",!0),n.accessAllowed("SystemConfiguration")?(i(),f(a,{key:7,to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[26]||(t[26]=[h(" System ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegalSettings")?(i(),f(a,{key:8,to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[27]||(t[27]=[h(" Rechtliches ",-1)])]),_:1})):d("",!0)])]),l("li",ri,[l("a",di,[t[29]||(t[29]=h(" Wiki ",-1)),b(p,{icon:["fas","external-link-alt"]})])])])],512),t[31]||(t[31]=l("div",{class:"ml-auto d-flex flex-row align-items-center"},[l("div",{id:"info-target"}),l("div",{id:"user-target"}),l("div",{id:"message-target"})],-1))])}const ci=S(Uo,[["render",ui],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]),pi={name:"OpenwbPageFooter"},mi={id:"footer",class:"footer bg-dark text-light font-small"},fi={class:"container text-center"};function gi(e,t,s,u,o,n){return i(),c("footer",mi,[l("div",fi,[l("small",null," Du befindest dich hier: Einstellungen / "+w(e.$route.meta.heading),1)])])}const hi=S(pi,[["render",gi],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);A.add(Qe,Ye,Xe,et);const bi={name:"OpenwbPageUser",components:{FontAwesomeIcon:T,FontAwesomeLayers:se},mixins:[z],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/security/access_allowed",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],showLoginModal:!1,showPasswordResetModal:!1,showLogoutModal:!1,username:"",password:"",token:"",passwordConfirm:"",tokenRequested:!1,passwordResetRequested:!1,smallScreen:!1}},computed:{loggedInUser(){return this.$store.state.local.username||null},userManagementActive(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},accessAllowed(){return this.$store.state.mqtt["openWB/system/security/access_allowed"]===void 0?!1:this.$store.state.mqtt["openWB/system/security/access_allowed"]===!0},anonymousAccessAllowed(){return this.accessAllowed&&this.loggedInUser===null},dataProtectionAcknowledged(){return this.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0},loginButtons(){let e=[{text:"Anmelden",event:"login",subtype:"success",disabled:this.stringIsEmpty(this.username)||this.stringIsEmpty(this.password)}];return this.dataProtectionAcknowledged&&e.push({text:"Kennwort vergessen",event:"forgot_password",subtype:"warning"}),e},requestTokenDisabled(){return this.stringIsEmpty(this.username)||this.tokenRequested},resetPasswordDisabled(){return this.stringIsEmpty(this.username)||this.stringIsEmpty(this.token)||this.stringIsEmpty(this.password)||this.stringIsEmpty(this.passwordConfirm)||this.password!==this.passwordConfirm||this.passwordResetRequested},modalBlockerVisible(){return this.$store.state.local.modalBlockerVisible===!0}},watch:{userManagementActive(){this.checkAutoLogin()},loggedInUser(e){e&&this.checkAutoLogin()},accessAllowed(){this.checkAutoLogin()},modalBlockerVisible(){this.checkAutoLogin()}},mounted(){me(()=>{this.checkAutoLogin()})},beforeMount(){window.addEventListener("resize",this.updateScreenSize),this.updateScreenSize()},beforeUnmount(){window.removeEventListener("resize",this.updateScreenSize)},methods:{updateScreenSize(){this.smallScreen=window.innerWidth<576},stringIsEmpty(e){return!e||e.length===0},checkAutoLogin(){console.debug("Checking auto login: ",this.userManagementActive,this.accessAllowed,this.loggedInUser),this.userManagementActive&&!this.accessAllowed&&!this.modalBlockerVisible?this.showLoginModal=!0:this.showLoginModal=!1},doLogin(e){switch(e){case"login":if(!this.username||!this.password){this.$root.postClientMessage("Benutzername und Passwort erforderlich.","danger");return}this.$cookies.set("mqtt",`${this.username}:${this.password}`),this.$root.reconnectMqttClient(),location.reload();break;case"forgot_password":console.warn("Password reset requested for user:",this.username),this.showLoginModal=!1,this.username="",this.password="",this.showPasswordResetModal=!0;break;default:this.showLoginModal=!1,this.username="",this.password=""}},processResetResult(e){switch(console.log("Password reset modal result:",e),e){case"request_token":if(!this.username){this.$root.postClientMessage("Benutzername erforderlich.","danger");return}console.warn("Requesting password reset token for:",this.username),this.tokenRequested=!0,this.$emit("sendCommand",{command:"createPasswordResetToken",data:{username:this.username}});break;case"reset_password":if(!this.username||!this.token||!this.password||!this.passwordConfirm||this.password!==this.passwordConfirm){this.$root.postClientMessage("Benutzername, Token und neues Kennwort erforderlich.","danger");return}console.warn("Resetting password for:",this.username,"with token:",this.token,"and new password:",this.password),this.passwordResetRequested=!0,this.$root.postClientMessage("Das Token wird geprüft und bei Erfolg das Passwort zurückgesetzt. Dieser Vorgang dauert ein paar Sekunden.","info"),this.$emit("sendCommand",{command:"resetUserPassword",data:{username:this.username,token:this.token,newPassword:this.password}});break;case"close":this.showPasswordResetModal=!1,this.username="",this.password="",this.token="",this.passwordConfirm="",this.tokenRequested=!1,this.passwordResetRequested=!1,this.showLoginModal=!0;return}},doLogout(e){this.showLogoutModal=!1,e==="confirm"&&(console.warn("Logging out user"),this.$cookies.remove("mqtt"),this.$root.reconnectMqttClient(),location.reload())}}},_i={id:"user-indicator",class:"ml-2"},vi={key:0,class:"pill bg-primary"},yi={key:0,class:"non-selectable"},wi={key:1,class:"pill bg-secondary"},ki={name:"loginForm"},Si={name:"requestTokenForm"};function Ci(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-tooltip"),r=g("FontAwesomeLayers"),v=g("openwb-base-modal-dialog"),k=g("openwb-base-text-input");return i(),c(M,null,[n.userManagementActive===!0?(i(),f(j,{key:0,defer:"",to:"#user-target"},[l("div",_i,[n.loggedInUser?(i(),c("span",vi,[b(p,{description:`Angemeldet als ${n.loggedInUser}`},{default:m(()=>[b(a,{icon:["fas","circle-user"],size:"lg"}),o.smallScreen?d("",!0):(i(),c("span",yi,w(n.loggedInUser),1))]),_:1},8,["description"]),b(p,{description:"Abmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-from-bracket"],size:"lg",onClick:t[0]||(t[0]=y=>o.showLogoutModal=!0)})]),_:1})])):(i(),c("span",wi,[b(p,{description:"Nicht angemeldet"},{default:m(()=>[b(r,null,{default:m(()=>[b(a,{icon:["fas","circle-user"]}),b(a,{icon:["fas","ban"],color:"red"})]),_:1})]),_:1}),b(p,{description:"Anmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-to-bracket"],size:"lg",onClick:t[1]||(t[1]=y=>o.showLoginModal=!0)})]),_:1})]))])])):d("",!0),n.userManagementActive?(i(),f(v,{key:1,show:o.showLogoutModal,title:"Abmelden",subtype:"warning",buttons:[{text:"Abmelden",event:"confirm",subtype:"danger"}],onModalResult:t[2]||(t[2]=y=>n.doLogout(y))},{default:m(()=>[...t[11]||(t[11]=[l("p",null,"Willst Du Dich wirklich abmelden?",-1)])]),_:1},8,["show"])):d("",!0),n.userManagementActive?(i(),f(v,{key:2,show:o.showLoginModal,"prevent-close":!n.anonymousAccessAllowed,title:"Anmelden",subtype:"success",buttons:n.loginButtons,onModalResult:t[5]||(t[5]=y=>n.doLogin(y))},{default:m(()=>[l("form",ki,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[3]||(t[3]=y=>o.username=y),title:"Benutzername",subtype:"user",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[4]||(t[4]=y=>o.password=y),title:"Passwort",subtype:"password",required:"",autocomplete:"current-password"},null,8,["modelValue"])])]),_:1},8,["show","prevent-close","buttons"])):d("",!0),n.userManagementActive&&n.dataProtectionAcknowledged?(i(),f(v,{key:3,show:o.showPasswordResetModal,title:"Kennwort zurücksetzen",subtype:"warning",buttons:[{text:"Token anfordern",event:"request_token",subtype:"success",disabled:n.requestTokenDisabled},{text:"Kennwort zurücksetzen",event:"reset_password",subtype:"primary",disabled:n.resetPasswordDisabled},{text:"Zurück",event:"close",subtype:"secondary"}],onModalResult:t[10]||(t[10]=y=>n.processResetResult(y))},{default:m(()=>[l("form",Si,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[6]||(t[6]=y=>o.username=y),title:"Benutzername",subtype:"user","empty-value":"",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.token,"onUpdate:modelValue":t[7]||(t[7]=y=>o.token=y),title:"Token",subtype:"password","empty-value":"",readonly:o.username.length<=0,disabled:o.username.length<=0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[8]||(t[8]=y=>o.password=y),title:"Neues Kennwort",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.passwordConfirm,"onUpdate:modelValue":t[9]||(t[9]=y=>o.passwordConfirm=y),title:"Neues Kennwort bestätigen",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0,validator:y=>y===o.password||"Kennwörter stimmen nicht überein"},null,8,["modelValue","readonly","disabled","validator"])])]),_:1},8,["show","buttons"])):d("",!0)],64)}const Bi=S(bi,[["render",Ci],["__scopeId","data-v-adc196c2"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageUser.vue"]]);A.add(tt,st);const $i={name:"OpenwbPageMqttConnectionState",components:{FontAwesomeIcon:T},props:{connected:{type:Boolean,required:!0}},data(){return{showIcon:!this.connected,visibilityTimeout:null}},watch:{connected(e){e?(clearTimeout(this.visibilityTimeout),this.visibilityTimeout=setTimeout(()=>{this.showIcon=!1},5e3)):(this.showIcon=!0,clearTimeout(this.visibilityTimeout))}}},Ii={id:"connection-state-indicator",class:"ml-2"};function Oi(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-avatar"),r=g("openwb-base-tooltip");return o.showIcon?(i(),f(j,{key:0,defer:"",to:"#info-target"},[l("div",Ii,[b(r,{description:`Verbindung ${s.connected?"hergestellt":"getrennt"}`},{default:m(()=>[b(p,{class:C(s.connected?"text-success":"bg-danger")},{default:m(()=>[b(a,{icon:s.connected?["fas","link"]:["fas","link-slash"]},null,8,["icon"])]),_:1},8,["class"])]),_:1},8,["description"])])])):d("",!0)}const Ai=S($i,[["render",Oi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMqttConnectionState.vue"]]);A.add(nt,ot);const Ti={name:"OpenwbPageMessages",components:{FontAwesomeIcon:T,FontAwesomeLayers:se,FontAwesomeLayersText:it},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/command/"+this.$root.mqttClientId+"/messages/+",writeable:!1},{topic:"openWB/system/messages/+",writeable:!1}],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,s)=>((t=="light"&&["info","success","warning","danger"].includes(s.type)||t=="info"&&["success","warning","danger"].includes(s.type)||t=="success"&&["warning","danger"].includes(s.type)||t=="warning"&&s.type=="danger")&&(t=s.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.localMessages.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[s,u]of Object.entries(e))t.push({topic:s,...u});return t},localMessages(){const e=this.$store.state.local.messages||{};var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});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.localMessages.find(s=>s.topic===e.topic)?this.$store.commit("removeClientMessage",e.topic):this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.dismissMessage({topic:e.topic})}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Mi=["title"],Vi=["innerHTML"];function qi(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("font-awesome-layers-text"),r=g("font-awesome-layers"),v=g("openwb-base-alert"),k=g("openwb-base-click-button"),y=g("openwb-base-toast");return i(),c(M,null,[(i(),f(j,{defer:"",to:"#message-target"},[l("div",{id:"message-indicator",class:C(["text-light clickable",o.showAllMessages?"active":""]),title:o.showAllMessages?"nur neue Nachrichten anzeigen":"Alle Nachrichten anzeigen",onClick:t[0]||(t[0]=(...I)=>n.toggleAllMessages&&n.toggleAllMessages(...I))},[b(r,{"full-width":""},{default:m(()=>[b(a,{icon:o.showAllMessages?["fas","bell"]:["far","bell"],class:C(n.messageIndicatorClass)},null,8,["icon","class"]),n.messages.length>0?(i(),f(p,{key:0,counter:"",value:n.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):d("",!0)]),_:1})],10,Mi)])),n.recentMessages.length>0||o.showAllMessages?(i(),c("div",{key:0,class:C(["openwb-toast-container",o.showAllMessages?"full-height":""])},[n.recentMessages.length==0?(i(),f(v,{key:0,subtype:"info"},{default:m(()=>[...t[1]||(t[1]=[h(" Keine Nachrichten vorhanden. ",-1)])]),_:1})):o.showAllMessages?(i(),f(k,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:n.dismissAllMessages},{default:m(()=>[...t[2]||(t[2]=[h(" Alle Nachrichten löschen ",-1)])]),_:1},8,["onButtonClicked"])):d("",!0),(i(!0),c(M,null,q(n.recentMessages,I=>(i(),f(y,{key:I.topic,topic:I.topic,source:I.source,subtype:I.type,timestamp:I.timestamp,onDismiss:n.dismissMessage,onHide:n.hideMessage},{default:m(()=>[l("span",{innerHTML:I.message},null,8,Vi)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):d("",!0)],64)}const Pi=S(Ti,[["render",qi],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Di={name:"OpenwbPageBlocker",mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],disconnectedTimeout:null}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.mqttClientDisconnected?"Verbindung zur openWB verloren":this.reloadRequired?"Die Seite muss neu geladen werden":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress||this.mqttClientDisconnected)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},mqttClientDisconnected(){return!this.$root.$data.connected},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.$store.state.local.modalBlockerVisible},modalType(){return this.mqttClientDisconnected&&!(this.bootInProgress||this.updateInProgress)?"danger":"dark"}},watch:{mqttClientDisconnected(e){e===!0?this.disconnectedTimeout=window.setTimeout(()=>{this.mqttClientDisconnected&&this.updateLocalStore()},2e3):(this.disconnectedTimeout&&(clearTimeout(this.disconnectedTimeout),this.disconnectedTimeout=null),this.updateLocalStore())},bootInProgress(e){e===!0&&this.updateInProgress===!0&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!0}),this.updateLocalStore()},updateInProgress(e){e===!1&&this.bootInProgress===!1&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!1}),this.updateLocalStore()},reloadRequired(){this.updateLocalStore()}},methods:{updateLocalStore(){this.$store.commit("storeLocal",{name:"modalBlockerVisible",value:this.bootInProgress||this.updateInProgress||this.reloadRequired||this.mqttClientDisconnected})},handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Li={class:"openwb-blocker"},Ei={key:0},xi={key:1},Ri={key:2},Wi={key:3},ji={key:4};function zi(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog");return i(),c("div",Li,[b(a,{show:n.showModalBlocker,title:n.title,subtype:n.modalType,"prevent-close":!0,buttons:n.myButtons,onModalResult:t[0]||(t[0]=p=>n.handleModalResult(p))},{default:m(()=>[n.bootInProgress?(i(),c("p",Ei,"Der Systemstart ist noch nicht abgeschlossen.")):n.updateInProgress?(i(),c("p",xi,"Es wird eine Systemaktualisierung ausgeführt.")):n.mqttClientDisconnected?(i(),c("p",Ri,[...t[1]||(t[1]=[h(" Die Verbindung zur openWB wurde unterbrochen.",-1),l("br",null,null,-1),h(" Es wird versucht, die Verbindung wieder herzustellen... ",-1)])])):n.reloadRequired?(i(),c("p",Wi,"Bitte die Seite neu laden.")):(i(),c("p",ji,"Bitte warten..."))]),_:1},8,["show","title","subtype","buttons"])])}const Ni=S(Di,[["render",zi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]),Ui={name:"OpenwbSettingsApp",components:{NavBar:ci,PageFooter:hi,UserInfo:Bi,MqttConnectionState:Ai,Messages:Pi,Blocker:Ni},data(){return{client:null,connected:!1,connection:{protocol:location.protocol=="https:"?"wss":"ws",protocolVersion:5,host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),path:"/ws",connectTimeout:4e3,reconnectPeriod:4e3,resubscribe:!0,properties:{requestResponseInformation:!0,requestProblemInformation:!0}},dataTimeout:null}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)},nodeEnv(){return"development"}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(u){return new Promise(o=>setTimeout(o,u))}function s(u){return u.includes("#")||u.includes("+")}this.$store.commit("storeLocal",{name:"savingData",value:!0});try{let u={};if(e===void 0){console.error("no topics to save defined!");return}if(Array.isArray(e))e.forEach(o=>{if(s(o)){console.debug("expanding wildcard topic:",o);const n=this.getWildcardTopics(o);Object.entries(n).forEach(([a,p])=>{console.debug("adding topic to save:",a),u[a]=p})}else console.debug("adding topic to save:",o),u[o]=this.$store.state.mqtt[o]});else{console.error("expected array, got ",typeof e);return}for(const[o,n]of Object.entries(u)){if(o.startsWith("$CONTROL")){console.debug("skipping control topic:",o);continue}let a=o.replace("openWB/","openWB/set/");console.debug("saving data:",a,n),this.doPublish(a,n),await t(50)}}finally{this.$store.commit("storeLocal",{name:"savingData",value:!1})}},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish(`openWB/set/command/${this.client.options.clientId}/todo/${e.command}`,e,!1)},createConnection(){const{protocol:e,host:t,port:s,path:u,...o}=this.connection,n=`${e}://${t}:${s}${u}`,[a,p]=this.$cookies.get("mqtt")?.match(/^([^:]+):(.+)$/)?.slice(1)||[null,null];a&&p||console.debug("Anonymous mqtt connection (no cookie set)"),(this.nodeEnv!=="production"||e=="wss")&&a&&p&&(console.debug(`Using mqtt credentials from cookie: "${a}" / "${p.charAt(0)}..."`),o.username=a,o.password=p,a==="admin"&&p==="openwb"&&(console.warn("Using default mqtt credentials! This is insecure and not recommended for production systems."),this.postClientMessage("Warnung: Es werden die Standard-Zugangsdaten für MQTT verwendet! Dies ist unsicher und wird für Produktivsysteme nicht empfohlen.","warning"))),console.debug("connecting to broker:",n),this.client=fe.connect(n,o),this.client.on("connect",()=>{this.connected=!0,console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),a&&(this.postClientMessage(`Angemeldet als "${a}".`,"success"),this.$store.commit("storeLocal",{name:"username",value:a})),this.doSubscribe(["openWB/system/boot_done","openWB/system/dataprotection_acknowledged","openWB/system/usage_terms_acknowledged","openWB/system/installAssistantDone","openWB/system/security/access/+"]),this.dataTimeout=setTimeout(()=>{console.warn("No data received after 1 second, connection might not be working. Removing mqtt cookie and trying again with anonymous connection."),a&&(this.$cookies.remove("mqtt"),this.reconnectMqttClient())},1e3)}),this.client.on("error",r=>{this.connected=!1,console.error("Connection failed",r),this.$cookies.remove("mqtt"),this.$store.commit("storeLocal",{name:"username",value:null}),this.reconnectMqttClient()}),this.client.on("message",(r,v)=>{if(this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null),v.toString().length>0){let k;try{k=JSON.parse(v.toString())}catch(y){console.debug("Json parsing failed, fallback to string: ",r,y),k=v.toString()}this.$store.commit("updateTopic",{topic:r,payload:k})}else this.$store.commit("removeTopic",r)}),this.client.on("end",()=>{this.connected=!1,console.error("mqtt connection ended")}),this.client.on("close",()=>{this.connected=!1,console.error("mqtt connection closed")}),this.client.on("offline",()=>{this.connected=!1,console.error("mqtt connection offline")}),this.client.on("disconnect",()=>{this.connected=!1,console.error("mqtt connection disconnected")}),this.client.on("reconnect",()=>{console.error("mqtt connection reconnecting...")})},endConnection(){this.connected?(console.warn("Ending mqtt connection..."),this.client.end(),this.connected=!1,this.$store.commit("storeLocal",{name:"username",value:null}),this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null)):console.error("No mqtt connection to end.")},reconnectMqttClient(){this.client?.connected&&this.endConnection(),this.createConnection()},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,{},s=>{if(s){this.postClientMessage(`Daten konnten nicht abonniert werden.
Topic: ${t}
${s}`,"danger"),this.$store.commit("removeSubscription",t);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,s=>{s&&(console.error("Unsubscribe error",s),this.postClientMessage(`Daten konnten nicht abbestellt werden.
Topic: ${t}
${s}`,"danger"))}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(s=>{console.debug("removing wildcardTopic:",s),this.$store.commit("removeTopic",s)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,s=!0,u=2){let o={qos:u,retain:s};this.client.publish(e,JSON.stringify(t),o,n=>{n&&(console.error("Publish error",n),this.postClientMessage(`Daten konnten nicht geschrieben werden.
Topic: ${e}
${n}`,"danger"))})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const s=Date.now();this.$store.commit({type:"addClientMessage",timestamp:s,payload:{message:e,type:t,source:"client",timestamp:Math.floor(s/1e3)}})},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})}}},Fi={role:"main",class:"container"},Hi={id:"content"};function Ki(e,t,s,u,o,n){const a=g("nav-bar"),p=g("router-view"),r=g("page-footer"),v=g("mqtt-connection-state"),k=g("user-info"),y=g("messages"),I=g("blocker");return i(),c(M,null,[l("header",null,[b(a)]),l("div",Fi,[l("div",Hi,[l("h1",null,w(e.$route.meta.heading),1),b(p,{onSave:n.saveValues,onReset:n.resetValues,onDefaults:n.setDefaultValues,onSendCommand:n.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),b(r),b(v,{connected:o.connected},null,8,["connected"]),b(k,{onSendCommand:n.sendCommand},null,8,["onSendCommand"]),b(y),b(I)],64)}const Gi=S(Ui,[["render",Ki],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Ji="modulepreload",Zi=function(e){return"/openWB/web/settings/"+e},Z={},B=function(t,s,u){let o=Promise.resolve();if(s&&s.length>0){let r=function(v){return Promise.all(v.map(k=>Promise.resolve(k).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),p=a?.nonce||a?.getAttribute("nonce");o=r(s.map(v=>{if(v=Zi(v),v in Z)return;Z[v]=!0;const k=v.endsWith(".css"),y=k?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${v}"]${y}`))return;const I=document.createElement("link");if(I.rel=k?"stylesheet":Ji,k||(I.as="script"),I.crossOrigin="",I.href=v,p&&I.setAttribute("nonce",p),document.head.appendChild(I),k)return new Promise((le,re)=>{I.addEventListener("load",le),I.addEventListener("error",()=>re(new Error(`Unable to preload CSS for ${v}`)))})}))}function n(a){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=a,window.dispatchEvent(p),!p.defaultPrevented)throw a}return o.then(a=>{for(const p of a||[])p.status==="rejected"&&n(p.reason);return t().catch(n)})},Qi={namespaced:!0,state:()=>({hiddenDatasets:[]}),mutations:{toggleDataset(e,t){e.hiddenDatasets.includes(t)?e.hiddenDatasets=e.hiddenDatasets.filter(s=>s!==t):e.hiddenDatasets.push(t)},setHiddenDatasets(e,t){e.hiddenDatasets=t}}};let ie={mqtt:{},mqttSubscriptions:{},local:{modalBlockerVisible:!1,reloadRequired:!1,savingData:!1,username:null}};ie.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",text8:"Text mit Add-Button",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const x=ge({state:ie,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 s=(u,o,n)=>o.split(".").reduce((a,p,r)=>a[p]=o.split(".").length===r+1?n:a[p]||{},u);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?s(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?s(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"))},addClientMessage(e,t){e.local.messages||(e.local.messages={}),e.local.messages[t.timestamp]=t.payload},removeClientMessage(e,t){e.local.messages&&t in e.local.messages&&delete e.local.messages[t]},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:{chartLegend:Qi},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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(s),clearInterval(u),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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(s),clearInterval(u),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},accessAllowed(e){return t=>new Promise(s=>{const u=`openWB/system/security/access/${t}`;if(e.mqtt[u]!==void 0)s(e.mqtt[u]);else{var o,n;o=setTimeout(()=>{clearInterval(n),s(!1)},5e3),n=setInterval(()=>{e.mqtt[u]!==void 0&&(clearTimeout(o),clearInterval(n),s(e.mqtt[u]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),ae=[{path:"/",redirect:"/GeneralConfiguration"},{path:"/Status",name:"Status",meta:{heading:"Status",checkPermissions:!0},component:()=>B(()=>import("./Status-DYns2lPM.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll",checkPermissions:!0},component:()=>B(()=>import("./ChargeLog-Bgx1bSon.js"),__vite__mapDeps([11,1,2,3,6,7,8,9,12]))},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"Chart",meta:{heading:"Auswertungen - Diagramme",checkPermissions:!0},component:()=>B(()=>import("./Chart-q4SmWErO.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,14]))},{path:"/GeneralConfiguration",name:"GeneralConfiguration",meta:{heading:"Einstellungen - Allgemein",checkPermissions:!0},component:()=>B(()=>import("./GeneralConfiguration-CMMYSFfh.js").then(e=>e.a),__vite__mapDeps([15,1,2,3,16,17]))},{path:"/IdentificationConfiguration",name:"IdentificationConfiguration",meta:{heading:"Einstellungen - Identifikation",checkPermissions:!0},component:()=>B(()=>import("./IdentificationConfiguration-NvHT7cba.js"),__vite__mapDeps([18,16,2,3,1,6,7,8,9]))},{path:"/DisplayConfiguration",name:"DisplayConfiguration",meta:{heading:"Einstellungen - Display",checkPermissions:!0},component:()=>B(()=>import("./DisplayConfiguration-BEaqDSWf.js").then(e=>e.a),__vite__mapDeps([19,17,1,2,3]))},{path:"/GeneralChargeConfiguration",name:"GeneralChargeConfiguration",meta:{heading:"Ladeeinstellungen - Übergreifendes",checkPermissions:!0},component:()=>B(()=>import("./GeneralChargeConfiguration-tvikf7OT.js").then(e=>e.a),__vite__mapDeps([20,17,1,2,3]))},{path:"/SurplusChargeConfiguration",name:"SurplusChargeConfiguration",meta:{heading:"Ladeeinstellungen - Überschuss-Laden",checkPermissions:!0},component:()=>B(()=>import("./SurplusChargeConfiguration-Mmn_2MTQ.js"),__vite__mapDeps([21,16,2,3,1,6,7,8,9]))},{path:"/ActiveBatControlConfiguration",name:"ActiveBatControlConfiguration",meta:{heading:"Ladeeinstellungen - Speichersteuerung",checkPermissions:!0},component:()=>B(()=>import("./ActiveBatControlConfiguration-DEBiR6H9.js"),__vite__mapDeps([22,1,2,3,6,7,8,9]))},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten",checkPermissions:!0},component:()=>B(()=>import("./HardwareInstallation-caZ0sA9z.js").then(e=>e.a),__vite__mapDeps([23,1,2,3,17]))},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement",checkPermissions:!0},component:()=>B(()=>import("./LoadManagementConfiguration-DVcGfr2E.js"),__vite__mapDeps([24,1,2,3,25,26,6,7,8,9]))},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte",checkPermissions:!0},component:()=>B(()=>import("./ChargePointInstallation-C3IshOKk.js").then(e=>e.c),__vite__mapDeps([27,1,2,3,16,17,28]))},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge",checkPermissions:!0},component:()=>B(()=>import("./VehicleConfiguration-TZSwJptx.js").then(e=>e.b),__vite__mapDeps([29,1,2,3,17]))},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge",checkPermissions:!0},component:()=>B(()=>import("./IoConfiguration-vfX10CsO.js").then(e=>e.b),__vite__mapDeps([30,1,2,3,17]))},{path:"/System/CloudConfiguration",name:"CloudConfiguration",meta:{heading:"System - openWB Cloud",checkPermissions:!0},component:()=>B(()=>import("./CloudConfiguration-Cu4M2u7m.js"),__vite__mapDeps([31,1,2,3,6,7,8,9]))},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfiguration",meta:{heading:"System - MQTT-Brücken",checkPermissions:!0},component:()=>B(()=>import("./MqttBridgeConfiguration-hMk_UUpV.js"),__vite__mapDeps([32,1,2,3,6,7,8,9]))},{path:"/System/DebugConfiguration",name:"DebugConfiguration",meta:{heading:"System - Fehlersuche",checkPermissions:!0},component:()=>B(()=>import("./DebugConfiguration-D4jVRy6l.js"),__vite__mapDeps([33,1,2,3,9,6,7,8,34]))},{path:"/System/Support",name:"Support",meta:{heading:"System - Support",checkPermissions:!0},component:()=>B(()=>import("./Support-LbG1Bt3q.js"),__vite__mapDeps([35,1,2,3,6,7,8,9]))},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches",checkPermissions:!0},component:()=>B(()=>import("./LegalSettings-DO80lenG.js"),__vite__mapDeps([36,1,2,3,6,7,8,9]))},{path:"/System/SystemConfiguration",name:"SystemConfiguration",meta:{heading:"System - System",checkPermissions:!0},component:()=>B(()=>import("./SystemConfiguration-BYwqt7v1.js"),__vite__mapDeps([37,1,2,3,6,7,8,9,38]))},{path:"/System/SecurityConfiguration",name:"SecurityConfiguration",meta:{heading:"System - Sicherheit",checkPermissions:!0},component:()=>B(()=>import("./SecurityConfiguration-BMtEoSIk.js"),__vite__mapDeps([39,1,2,3,6,7,8,9]))},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung",checkPermissions:!0},component:()=>B(()=>import("./DataManagement-FAi2cjUn.js").then(e=>e.a),__vite__mapDeps([40,1,2,3,17]))},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent",checkPermissions:!0},component:()=>B(()=>import("./InstallAssistant-D7lW6Pyr.js"),__vite__mapDeps([41,17,2,3,1,6,7,8,9]))},{path:"/Error",name:"Error",meta:{heading:"Fehler",checkPermissions:!1},component:()=>B(()=>import("./Error-BZ1TitTh.js"),__vite__mapDeps([42,2,3]))}];ae.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store",checkPermissions:!1},component:()=>B(()=>import("./TestingStore-D88H008a.js"),__vite__mapDeps([43,25,2,3,1,26,6,7,8,9]))});const F=he({history:be(),routes:ae});let W=!1;F.beforeEach(async e=>{const t=async n=>{if(n.meta.checkPermissions===!0){const a=await x.getters.accessAllowed(n.name);if(console.debug("access check for",n.name,"->",a),W)return console.debug("route already handled, cancel further processing"),!1;if(!a)return console.warn("no permission to access",n.name),x.state.local.username?{name:"Error"}:(console.debug("not logged in, cancel navigation to",n.name),W=!0,!1)}return!0};if(W=!1,!await x.getters.usageTermsAcknowledged)return e.name!=="LegalSettings"?(console.log("usage terms not acknowledged, redirect to legal settings"),{name:"LegalSettings"}):(console.log("usage terms not acknowledged, but already on legal settings, continue"),await t(e));if(!await x.getters.installAssistantDone)return e.name!=="InstallAssistant"?(console.log("install assistant not done, redirect to install assistant"),{name:"InstallAssistant"}):(console.log("install assistant not done, but already on install assistant, continue"),await t(e));const o=await t(e);return W=!0,o});F.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const H=_e(Gi);H.use(x).use(F).use(at,lt).use(ve,{expire:"30d",path:"/",domain:"",secure:!0,sameSite:"Lax"});const Yi=Object.assign({"./components/OpenwbBaseAlert.vue":ct,"./components/OpenwbBaseArrayInput.vue":qt,"./components/OpenwbBaseAvatar.vue":xt,"./components/OpenwbBaseButtonGroupInput.vue":Jt,"./components/OpenwbBaseButtonInput.vue":ns,"./components/OpenwbBaseButtonRow.vue":Ut,"./components/OpenwbBaseCard.vue":ms,"./components/OpenwbBaseCheckboxInput.vue":vs,"./components/OpenwbBaseClickButton.vue":Xt,"./components/OpenwbBaseColorPicker.vue":Bs,"./components/OpenwbBaseCopyToClipboard.vue":Ps,"./components/OpenwbBaseHeading.vue":zs,"./components/OpenwbBaseIoPattern.vue":Hs,"./components/OpenwbBaseModalDialog.vue":en,"./components/OpenwbBaseNumberInput.vue":mn,"./components/OpenwbBaseRangeInput.vue":Sn,"./components/OpenwbBaseSelectInput.vue":En,"./components/OpenwbBaseSettingElement.vue":bt,"./components/OpenwbBaseSubmitButtons.vue":Gn,"./components/OpenwbBaseTextInput.vue":_o,"./components/OpenwbBaseTextarea.vue":Mo,"./components/OpenwbBaseToast.vue":Eo,"./components/OpenwbBaseTooltip.vue":zo});Object.entries(Yi).forEach(([e,t])=>{const s=ye(we(e.split("/").pop().replace(/\.\w+$/,"")));H.component(s,t.default)});H.mount("#app");export{z as C,D as O,B as _}; diff --git a/web/settings/assets/inverter-Bkl9DTPR.js b/web/settings/assets/inverter-5EBX0iZo.js similarity index 70% rename from web/settings/assets/inverter-Bkl9DTPR.js rename to web/settings/assets/inverter-5EBX0iZo.js index 1a89087574..ba143d5017 100644 --- a/web/settings/assets/inverter-Bkl9DTPR.js +++ b/web/settings/assets/inverter-5EBX0iZo.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as n,k as u,e as c,m as t,q as i,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{I as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as u,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-C4YILAPZ.js b/web/settings/assets/inverter-7soLwDob.js similarity index 68% rename from web/settings/assets/inverter-C4YILAPZ.js rename to web/settings/assets/inverter-7soLwDob.js index 45dad8bb0d..95965541b0 100644 --- a/web/settings/assets/inverter-C4YILAPZ.js +++ b/web/settings/assets/inverter-7soLwDob.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as c,m as t,q as l,A as d}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHInverter",mixins:[s]},_={class:"device-kaco-nh-inverter"};function f(o,e,v,b,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Kaco NH Wechselrichter ",-1)])]),_:1}),t(r,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/inverter.vue"]]);export{q as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as c,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHInverter",mixins:[s]},_={class:"device-kaco-nh-inverter"};function f(o,e,v,b,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Kaco NH Wechselrichter ",-1)])]),_:1}),t(r,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-DbMRw6Cx.js b/web/settings/assets/inverter-9sFbkMow.js similarity index 72% rename from web/settings/assets/inverter-DbMRw6Cx.js rename to web/settings/assets/inverter-9sFbkMow.js index 85f8feb315..1ec34ec016 100644 --- a/web/settings/assets/inverter-DbMRw6Cx.js +++ b/web/settings/assets/inverter-9sFbkMow.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-B88OrxMD.js b/web/settings/assets/inverter-B88OrxMD.js new file mode 100644 index 0000000000..2baf86ac30 --- /dev/null +++ b/web/settings/assets/inverter-B88OrxMD.js @@ -0,0 +1 @@ +import{C as e}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,k as t,e as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const $=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-BB887ZYt.js b/web/settings/assets/inverter-BB887ZYt.js new file mode 100644 index 0000000000..3fcf3ad907 --- /dev/null +++ b/web/settings/assets/inverter-BB887ZYt.js @@ -0,0 +1 @@ +import{C as e}from"./HardwareInstallation-caZ0sA9z.js";import{_ as t,k as o,e as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const C=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-Ct8TMqML.js b/web/settings/assets/inverter-BI2ZqzaW.js similarity index 69% rename from web/settings/assets/inverter-Ct8TMqML.js rename to web/settings/assets/inverter-BI2ZqzaW.js index 1a3e045452..5a4406178f 100644 --- a/web/settings/assets/inverter-Ct8TMqML.js +++ b/web/settings/assets/inverter-BI2ZqzaW.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as d,e as m,m as t,q as l,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolaredgeInverter",mixins:[a]},_={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return d(),m("div",_,[t(r,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as d,e as m,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolaredgeInverter",mixins:[a]},_={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return d(),m("div",_,[t(r,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-COE-nKvP.js b/web/settings/assets/inverter-BLcG2ney.js similarity index 79% rename from web/settings/assets/inverter-COE-nKvP.js rename to web/settings/assets/inverter-BLcG2ney.js index d5bdb09c2a..dc3c9df19d 100644 --- a/web/settings/assets/inverter-COE-nKvP.js +++ b/web/settings/assets/inverter-BLcG2ney.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerInverter",mixins:[u]},_={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[o(a,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])]),_:1}),o(p,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const $=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{$ as default}; +import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerInverter",mixins:[u]},_={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[o(a,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])]),_:1}),o(p,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const $=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-n4m3hQuV.js b/web/settings/assets/inverter-BaOo9WeK.js similarity index 69% rename from web/settings/assets/inverter-n4m3hQuV.js rename to web/settings/assets/inverter-BaOo9WeK.js index 6974611ed1..88680f5acb 100644 --- a/web/settings/assets/inverter-n4m3hQuV.js +++ b/web/settings/assets/inverter-BaOo9WeK.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOneInverter",mixins:[a]},_={class:"device-solakon-one-inverter"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOneInverter",mixins:[a]},_={class:"device-solakon-one-inverter"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-CLRVWTl7.js b/web/settings/assets/inverter-Bk86qHNm.js similarity index 69% rename from web/settings/assets/inverter-CLRVWTl7.js rename to web/settings/assets/inverter-Bk86qHNm.js index bbe179ff46..bc7e7490e6 100644 --- a/web/settings/assets/inverter-CLRVWTl7.js +++ b/web/settings/assets/inverter-Bk86qHNm.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxInverter",mixins:[a]},_={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxInverter",mixins:[a]},_={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-B_FABlgc.js b/web/settings/assets/inverter-BpKMExBm.js similarity index 70% rename from web/settings/assets/inverter-B_FABlgc.js rename to web/settings/assets/inverter-BpKMExBm.js index 49128b9b87..030e7e5f4e 100644 --- a/web/settings/assets/inverter-B_FABlgc.js +++ b/web/settings/assets/inverter-BpKMExBm.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as p,e as u,m as t,q as d,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},_={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as p,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},_={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-DWNFmb91.js b/web/settings/assets/inverter-BvYIme5g.js similarity index 68% rename from web/settings/assets/inverter-DWNFmb91.js rename to web/settings/assets/inverter-BvYIme5g.js index 67fa4e56ca..2d3b8ad421 100644 --- a/web/settings/assets/inverter-DWNFmb91.js +++ b/web/settings/assets/inverter-BvYIme5g.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisInverter",mixins:[p]},_={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Wechselrichter ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisInverter",mixins:[p]},_={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Wechselrichter ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-ByRR74u7.js b/web/settings/assets/inverter-Bwj64g5e.js similarity index 68% rename from web/settings/assets/inverter-ByRR74u7.js rename to web/settings/assets/inverter-Bwj64g5e.js index 2276902412..2432e62aaa 100644 --- a/web/settings/assets/inverter-ByRR74u7.js +++ b/web/settings/assets/inverter-Bwj64g5e.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeInverter",mixins:[p]},_={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeInverter",mixins:[p]},_={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-Crbr6-4Z.js b/web/settings/assets/inverter-CB0x6P9A.js similarity index 72% rename from web/settings/assets/inverter-Crbr6-4Z.js rename to web/settings/assets/inverter-CB0x6P9A.js index 6ba598832d..20e5a70bf9 100644 --- a/web/settings/assets/inverter-Crbr6-4Z.js +++ b/web/settings/assets/inverter-CB0x6P9A.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiInverter",mixins:[m]},c={class:"device-kostal-piko-ci-inverter"};function b(o,e,f,v,k,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kostal Piko CI Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/inverter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiInverter",mixins:[m]},c={class:"device-kostal-piko-ci-inverter"};function b(o,e,f,v,k,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kostal Piko CI Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/inverter.vue"]]);export{M as default}; diff --git a/web/settings/assets/inverter-GRT_uJiI.js b/web/settings/assets/inverter-CMmTSLWH.js similarity index 81% rename from web/settings/assets/inverter-GRT_uJiI.js rename to web/settings/assets/inverter-CMmTSLWH.js index 5a8d7fca9f..cb6ba09ae6 100644 --- a/web/settings/assets/inverter-GRT_uJiI.js +++ b/web/settings/assets/inverter-CMmTSLWH.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},f={class:"device-discovergy-inverter"};function g(t,e,_,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const $=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},f={class:"device-discovergy-inverter"};function g(t,e,_,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const $=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-DApWASl8.js b/web/settings/assets/inverter-CN_ruNlm.js similarity index 72% rename from web/settings/assets/inverter-DApWASl8.js rename to web/settings/assets/inverter-CN_ruNlm.js index d224b4990b..874d29321f 100644 --- a/web/settings/assets/inverter-DApWASl8.js +++ b/web/settings/assets/inverter-CN_ruNlm.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as o,k as l,e as u,m as n,q as c,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),s=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])]),_:1}),n(s,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),s=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])]),_:1}),n(s,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-NWk4UIGH.js b/web/settings/assets/inverter-CZxBgkMq.js similarity index 73% rename from web/settings/assets/inverter-NWk4UIGH.js rename to web/settings/assets/inverter-CZxBgkMq.js index f3b6f6507d..b4b73cb354 100644 --- a/web/settings/assets/inverter-NWk4UIGH.js +++ b/web/settings/assets/inverter-CZxBgkMq.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as l,l as n,k as d,e as c,m as t,q as i,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])]),_:1}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>[...e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])]),_:1},8,["model-value"])])}const A=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{A as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as n,k as d,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])]),_:1}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>[...e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])]),_:1},8,["model-value"])])}const A=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{A as default}; diff --git a/web/settings/assets/inverter-DIp3-cnM.js b/web/settings/assets/inverter-CgUUQeXE.js similarity index 84% rename from web/settings/assets/inverter-DIp3-cnM.js rename to web/settings/assets/inverter-CgUUQeXE.js index 14bf52b654..a423a6d2c9 100644 --- a/web/settings/assets/inverter-DIp3-cnM.js +++ b/web/settings/assets/inverter-CgUUQeXE.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as t,k as m,e as c,m as r,q as i,A as n,x as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxInverter",mixins:[l]},b={class:"device-powerfox-inverter"};function g(o,e,v,w,x,_){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{A as default}; +import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as m,e as c,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxInverter",mixins:[l]},b={class:"device-powerfox-inverter"};function g(o,e,v,w,x,_){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{A as default}; diff --git a/web/settings/assets/inverter-CnZlUSck.js b/web/settings/assets/inverter-CkuUw0Yu.js similarity index 71% rename from web/settings/assets/inverter-CnZlUSck.js rename to web/settings/assets/inverter-CkuUw0Yu.js index 75e59689a0..4137e47181 100644 --- a/web/settings/assets/inverter-CnZlUSck.js +++ b/web/settings/assets/inverter-CkuUw0Yu.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as t,k as l,e as u,m as n,q as c,A as m}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return l(),u("div",_,[n(i,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko Wechselrichter ",-1)])]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const K=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{K as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return l(),u("div",_,[n(i,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko Wechselrichter ",-1)])]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const K=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{K as default}; diff --git a/web/settings/assets/inverter-DVr22Egy.js b/web/settings/assets/inverter-CopsarJJ.js similarity index 72% rename from web/settings/assets/inverter-DVr22Egy.js rename to web/settings/assets/inverter-CopsarJJ.js index 55cba18abf..f039ef4e15 100644 --- a/web/settings/assets/inverter-DVr22Egy.js +++ b/web/settings/assets/inverter-CopsarJJ.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-0iQRw2xt.js b/web/settings/assets/inverter-D7eVv_21.js similarity index 68% rename from web/settings/assets/inverter-0iQRw2xt.js rename to web/settings/assets/inverter-D7eVv_21.js index 364d48a526..cec8d136c0 100644 --- a/web/settings/assets/inverter-0iQRw2xt.js +++ b/web/settings/assets/inverter-D7eVv_21.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as o,k as p,e as l,m as n,q as d,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartMeInverter",mixins:[a]},_={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",_,[n(r,null,{default:d(()=>[...e[1]||(e[1]=[c(" Einstellungen für smart-me Wechselrichter ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as p,e as l,m as n,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartMeInverter",mixins:[a]},_={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",_,[n(r,null,{default:d(()=>[...e[1]||(e[1]=[c(" Einstellungen für smart-me Wechselrichter ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-CxoMP6Jb.js b/web/settings/assets/inverter-DL8Ty732.js similarity index 77% rename from web/settings/assets/inverter-CxoMP6Jb.js rename to web/settings/assets/inverter-DL8Ty732.js index 0271238a3d..708489aa0e 100644 --- a/web/settings/assets/inverter-CxoMP6Jb.js +++ b/web/settings/assets/inverter-DL8Ty732.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as t,k as u,e as m,m as i,q as d,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[p]},b={class:"device-openwb-flex-inverter"};function f(o,e,_,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",b,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])]),_:1}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const q=a(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as u,e as m,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[p]},b={class:"device-openwb-flex-inverter"};function f(o,e,_,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",b,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])]),_:1}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const q=a(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-CUJI2Fyz.js b/web/settings/assets/inverter-DLWFTpaZ.js similarity index 70% rename from web/settings/assets/inverter-CUJI2Fyz.js rename to web/settings/assets/inverter-DLWFTpaZ.js index aebacb3ad5..a14be2ac7a 100644 --- a/web/settings/assets/inverter-CUJI2Fyz.js +++ b/web/settings/assets/inverter-DLWFTpaZ.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as t,k as p,e as l,m as n,q as m,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])]),_:1}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const E=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{E as default}; +import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as p,e as l,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])]),_:1}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const E=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{E as default}; diff --git a/web/settings/assets/inverter-BBWU2rw5.js b/web/settings/assets/inverter-Da945LLX.js similarity index 86% rename from web/settings/assets/inverter-BBWU2rw5.js rename to web/settings/assets/inverter-Da945LLX.js index 3fe21486e5..8d9b50cbaa 100644 --- a/web/settings/assets/inverter-BBWU2rw5.js +++ b/web/settings/assets/inverter-Da945LLX.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l,k as m,e as g,m as r,q as o,A as n,x as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>[...e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])]),_:1}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>[...e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>[...e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const W=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{W as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l,k as m,e as g,m as r,q as o,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>[...e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])]),_:1}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>[...e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>[...e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const W=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-CzXwYkHv.js b/web/settings/assets/inverter-Dd8Zt71F.js similarity index 68% rename from web/settings/assets/inverter-CzXwYkHv.js rename to web/settings/assets/inverter-Dd8Zt71F.js index f3146011ef..4f3d9af016 100644 --- a/web/settings/assets/inverter-CzXwYkHv.js +++ b/web/settings/assets/inverter-Dd8Zt71F.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-DehorSAv.js b/web/settings/assets/inverter-DehorSAv.js deleted file mode 100644 index 2e098f3b1d..0000000000 --- a/web/settings/assets/inverter-DehorSAv.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as t,k as o,e as n}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const C=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-Da-G6Y0c.js b/web/settings/assets/inverter-DhjTWscc.js similarity index 75% rename from web/settings/assets/inverter-Da-G6Y0c.js rename to web/settings/assets/inverter-DhjTWscc.js index a9168b92ca..d3faf1a340 100644 --- a/web/settings/assets/inverter-Da-G6Y0c.js +++ b/web/settings/assets/inverter-DhjTWscc.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])]),_:1}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const D=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{D as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])]),_:1}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const D=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-DV4a4maw.js b/web/settings/assets/inverter-Dl-vr0bC.js similarity index 71% rename from web/settings/assets/inverter-DV4a4maw.js rename to web/settings/assets/inverter-Dl-vr0bC.js index f73c6736f2..e633584068 100644 --- a/web/settings/assets/inverter-DV4a4maw.js +++ b/web/settings/assets/inverter-Dl-vr0bC.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as o,k as u,e as l,m as t,q as i,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as o,k as u,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-BFDThOJR.js b/web/settings/assets/inverter-DrtnNh9-.js similarity index 76% rename from web/settings/assets/inverter-BFDThOJR.js rename to web/settings/assets/inverter-DrtnNh9-.js index 01c5d3ff5e..c1d108f24f 100644 --- a/web/settings/assets/inverter-BFDThOJR.js +++ b/web/settings/assets/inverter-DrtnNh9-.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as u,l as n,k as d,e as c,m as o,q as r,A as i}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),c("div",f,[o(s,null,{default:r(()=>[...e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])]),_:1}),o(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])]),_:1}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const W=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{W as default}; +import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as d,e as c,m as o,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),c("div",f,[o(s,null,{default:r(()=>[...e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])]),_:1}),o(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])]),_:1}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const W=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-Hxi7PnqE.js b/web/settings/assets/inverter-Hxi7PnqE.js deleted file mode 100644 index f4153d87ef..0000000000 --- a/web/settings/assets/inverter-Hxi7PnqE.js +++ /dev/null @@ -1 +0,0 @@ -import{C as e}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as n,k as t,e as i}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const $=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-B-0L9XYq.js b/web/settings/assets/inverter-YdmHIKyl.js similarity index 66% rename from web/settings/assets/inverter-B-0L9XYq.js rename to web/settings/assets/inverter-YdmHIKyl.js index 3317ec6c56..eb71dc6418 100644 --- a/web/settings/assets/inverter-B-0L9XYq.js +++ b/web/settings/assets/inverter-YdmHIKyl.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as n,l as s,k as o,e as i,m as a,q as p,A as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])]),_:1})])}const B=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{B as default}; +import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as o,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])]),_:1})])}const B=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{B as default}; diff --git a/web/settings/assets/inverter-DsD3wquS.js b/web/settings/assets/inverter-YmiFDBbL.js similarity index 90% rename from web/settings/assets/inverter-DsD3wquS.js rename to web/settings/assets/inverter-YmiFDBbL.js index 6da6b3bb71..fec48f85a5 100644 --- a/web/settings/assets/inverter-DsD3wquS.js +++ b/web/settings/assets/inverter-YmiFDBbL.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,c,j,_){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const A=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{A as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,c,j,_){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const A=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{A as default}; diff --git a/web/settings/assets/inverter-CC2Mvp5q.js b/web/settings/assets/inverter-f4xqdlX6.js similarity index 92% rename from web/settings/assets/inverter-CC2Mvp5q.js rename to web/settings/assets/inverter-f4xqdlX6.js index 1071740fa3..4255bb8fd1 100644 --- a/web/settings/assets/inverter-CC2Mvp5q.js +++ b/web/settings/assets/inverter-f4xqdlX6.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as a,l as p,k as g,e as b,m as i,q as l,A as t,x as n,J as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceMqttInverter",mixins:[m]},v={class:"device-mqtt-inverter"};function B(o,e,z,w,k,W){const d=p("openwb-base-heading"),u=p("openwb-base-alert"),r=p("openwb-base-copy-to-clipboard");return g(),b("div",v,[i(d,null,{default:l(()=>[...e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])]),_:1}),i(u,{subtype:"warning"},{default:l(()=>[e[1]||(e[1]=t(" Ist die ",-1)),e[2]||(e[2]=n("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Wechselrichter '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[4]||(e[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(u,{subtype:"info"},{default:l(()=>[e[23]||(e[23]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[5]||(e[5]=n("br",null,null,-1)),e[6]||(e[6]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[7]||(e[7]=n("span",{class:"text-info"},"-123",-1))])]),e[24]||(e[24]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" Beispiel: ",-1)),e[12]||(e[12]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Bezogene Energie in Wh (optional, zB für Hybridsysteme, die den Speicher aus dem Netz laden), Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[15]||(e[15]=n("br",null,null,-1)),e[16]||(e[16]=t(" Beispiel: ",-1)),e[17]||(e[17]=n("span",{class:"text-info"},"123.45",-1))])]),e[25]||(e[25]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[20]||(e[20]=n("br",null,null,-1)),e[21]||(e[21]=t(" Beispiel: ",-1)),e[22]||(e[22]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1})])}const V=a(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{V as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as p,k as g,e as b,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceMqttInverter",mixins:[m]},v={class:"device-mqtt-inverter"};function B(o,e,z,w,k,W){const d=p("openwb-base-heading"),u=p("openwb-base-alert"),r=p("openwb-base-copy-to-clipboard");return g(),b("div",v,[i(d,null,{default:l(()=>[...e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])]),_:1}),i(u,{subtype:"warning"},{default:l(()=>[e[1]||(e[1]=t(" Ist die ",-1)),e[2]||(e[2]=n("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Wechselrichter '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[4]||(e[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(u,{subtype:"info"},{default:l(()=>[e[23]||(e[23]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[5]||(e[5]=n("br",null,null,-1)),e[6]||(e[6]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[7]||(e[7]=n("span",{class:"text-info"},"-123",-1))])]),e[24]||(e[24]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" Beispiel: ",-1)),e[12]||(e[12]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Bezogene Energie in Wh (optional, zB für Hybridsysteme, die den Speicher aus dem Netz laden), Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[15]||(e[15]=n("br",null,null,-1)),e[16]||(e[16]=t(" Beispiel: ",-1)),e[17]||(e[17]=n("span",{class:"text-info"},"123.45",-1))])]),e[25]||(e[25]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[20]||(e[20]=n("br",null,null,-1)),e[21]||(e[21]=t(" Beispiel: ",-1)),e[22]||(e[22]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1})])}const V=a(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-BTshuvks.js b/web/settings/assets/inverter-lozsDiob.js similarity index 70% rename from web/settings/assets/inverter-BTshuvks.js rename to web/settings/assets/inverter-lozsDiob.js index 4b9ba557d0..e94fd198ea 100644 --- a/web/settings/assets/inverter-BTshuvks.js +++ b/web/settings/assets/inverter-lozsDiob.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as o,k as l,e as u,m as t,q as i,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseInverter",mixins:[m]},_={class:"device-enphase-inverter"};function f(n,e,v,b,g,h){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return l(),u("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])]),_:1}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[r(' EID für "production" ',-1)])]),_:1},8,["model-value"])])}const D=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{D as default}; +import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as o,k as l,e as u,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseInverter",mixins:[m]},_={class:"device-enphase-inverter"};function f(n,e,v,b,g,h){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return l(),u("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])]),_:1}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[r(' EID für "production" ',-1)])]),_:1},8,["model-value"])])}const D=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-DiRXgTFp.js b/web/settings/assets/inverter-m3LVq5tF.js similarity index 78% rename from web/settings/assets/inverter-DiRXgTFp.js rename to web/settings/assets/inverter-m3LVq5tF.js index 728dc1b192..ddb6b1a7c0 100644 --- a/web/settings/assets/inverter-DiRXgTFp.js +++ b/web/settings/assets/inverter-m3LVq5tF.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as d,l as n,k as m,e as c,m as r,q as i,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),c("div",b,[r(u,null,{default:i(()=>[...e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])]),_:1}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>[...e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{$ as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as m,e as c,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),c("div",b,[r(u,null,{default:i(()=>[...e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])]),_:1}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>[...e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-Dsj7QrSL.js b/web/settings/assets/inverter-yrrMEiBw.js similarity index 68% rename from web/settings/assets/inverter-Dsj7QrSL.js rename to web/settings/assets/inverter-yrrMEiBw.js index 4154e2646a..e5d8ac0eb2 100644 --- a/web/settings/assets/inverter-Dsj7QrSL.js +++ b/web/settings/assets/inverter-yrrMEiBw.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Kaco Wechselrichter ",-1)])]),_:1}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{q as default}; +import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Kaco Wechselrichter ",-1)])]),_:1}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-O85bqWQC.js b/web/settings/assets/inverter-zzkwTxc_.js similarity index 84% rename from web/settings/assets/inverter-O85bqWQC.js rename to web/settings/assets/inverter-zzkwTxc_.js index 50d7a650c8..adffb7bbd2 100644 --- a/web/settings/assets/inverter-O85bqWQC.js +++ b/web/settings/assets/inverter-zzkwTxc_.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as t,k as b,e as v,m as r,q as i,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>[...e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])]),_:1}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>[...e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>[...e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])]),_:1},8,["model-value"])])}const E=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{E as default}; +import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as b,e as v,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>[...e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])]),_:1}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>[...e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>[...e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])]),_:1},8,["model-value"])])}const E=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{E as default}; diff --git a/web/settings/assets/inverter_maxstorage-CEwj2eYk.js b/web/settings/assets/inverter_maxstorage-Da9O-iNa.js similarity index 70% rename from web/settings/assets/inverter_maxstorage-CEwj2eYk.js rename to web/settings/assets/inverter_maxstorage-Da9O-iNa.js index 05cbbb976e..77bd6721a9 100644 --- a/web/settings/assets/inverter_maxstorage-CEwj2eYk.js +++ b/web/settings/assets/inverter_maxstorage-Da9O-iNa.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxMsInverter",mixins:[s]},c={class:"device-solarmax-inverter-maxstorage"};function b(o,e,f,x,v,g){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const k=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter_maxstorage.vue"]]);export{k as default}; +import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxMsInverter",mixins:[s]},c={class:"device-solarmax-inverter-maxstorage"};function b(o,e,f,x,v,g){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const k=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter_maxstorage.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter_production_meter-DfIqPquE.js b/web/settings/assets/inverter_production_meter-BhLy0jS8.js similarity index 88% rename from web/settings/assets/inverter_production_meter-DfIqPquE.js rename to web/settings/assets/inverter_production_meter-BhLy0jS8.js index 7884b45319..aefd18c4d9 100644 --- a/web/settings/assets/inverter_production_meter-DfIqPquE.js +++ b/web/settings/assets/inverter_production_meter-BhLy0jS8.js @@ -1 +1 @@ -import{C as f}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as g,l as r,k as b,e as c,m as i,q as o,A as t,x as l,J as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceFroniusInverterProductionMeter",mixins:[f],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},w={class:"device-fronius-inverter-production-meter"},D=["href"];function h(n,e,k,M,S,s){const d=r("openwb-base-heading"),u=r("openwb-base-alert"),m=r("openwb-base-select-input"),p=r("openwb-base-number-input");return b(),c("div",w,[i(d,null,{default:o(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius Erzeugerzähler ",-1)])]),_:1}),i(u,{subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[t(" Zusätzlicher, externer Erzeuger, welcher über einen Smartmeter erfasst wird. ",-1)])]),_:1}),i(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.variant"))},{help:o(()=>[...e[4]||(e[4]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),i(p,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateConfiguration(a,"configuration.meter_id"))},{help:o(()=>[e[5]||(e[5]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},_(s.meterRealtimeUrl),9,D),e[6]||(e[6]=l("br",null,null,-1)),e[7]||(e[7]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const N=g(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_production_meter.vue"]]);export{N as default}; +import{C as f}from"./HardwareInstallation-caZ0sA9z.js";import{_ as g,l as r,k as b,e as c,m as i,q as o,A as t,x as l,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceFroniusInverterProductionMeter",mixins:[f],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},w={class:"device-fronius-inverter-production-meter"},D=["href"];function h(n,e,k,M,S,s){const d=r("openwb-base-heading"),u=r("openwb-base-alert"),m=r("openwb-base-select-input"),p=r("openwb-base-number-input");return b(),c("div",w,[i(d,null,{default:o(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius Erzeugerzähler ",-1)])]),_:1}),i(u,{subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[t(" Zusätzlicher, externer Erzeuger, welcher über einen Smartmeter erfasst wird. ",-1)])]),_:1}),i(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.variant"))},{help:o(()=>[...e[4]||(e[4]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),i(p,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateConfiguration(a,"configuration.meter_id"))},{help:o(()=>[e[5]||(e[5]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},_(s.meterRealtimeUrl),9,D),e[6]||(e[6]=l("br",null,null,-1)),e[7]||(e[7]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const N=g(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_production_meter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter_secondary-CGqHCim3.js b/web/settings/assets/inverter_secondary-Cke98mZd.js similarity index 81% rename from web/settings/assets/inverter_secondary-CGqHCim3.js rename to web/settings/assets/inverter_secondary-Cke98mZd.js index cc733b279e..bdd2c9849f 100644 --- a/web/settings/assets/inverter_secondary-CGqHCim3.js +++ b/web/settings/assets/inverter_secondary-Cke98mZd.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-BsQdwN_Y.js";import{_ as m,l as t,k as f,e as c,m as i,q as s,A as n,x as a,J as g}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},_={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",_,[i(d,null,{default:s(()=>[...e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])]),_:1}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},g(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const U=m(w,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{U as default}; +import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as f,e as c,m as i,q as s,A as n,x as a,J as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},_={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",_,[i(d,null,{default:s(()=>[...e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])]),_:1}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},g(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const U=m(w,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{U as default}; diff --git a/web/settings/assets/io_action-CP47oj7W.js b/web/settings/assets/io_action-BlGNVQOy.js similarity index 89% rename from web/settings/assets/io_action-CP47oj7W.js rename to web/settings/assets/io_action-BlGNVQOy.js index e8b4ac0521..c18d7306c0 100644 --- a/web/settings/assets/io_action-CP47oj7W.js +++ b/web/settings/assets/io_action-BlGNVQOy.js @@ -1 +1 @@ -import{a as b}from"./IoConfiguration-cTbf922R.js";import{O as v}from"./OpenwbIoSinglePattern-B9zMWKVu.js";import{_ as h,l as u,k as a,e as l,y as d,u as s,m as f,q as w,A as p,x as k,K as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const V={name:"IoActionDimming",components:{OpenwbIoSinglePattern:v},mixins:[b],computed:{value:{get(){return this.ioAction?.configuration?.input_pattern||[]},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},isPatternConfigured(){return this.value?.length>0&&this.value[0].matrix&&Object.keys(this.value[0].matrix).length>0},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices?.forEach(t=>{let o=[];Object.keys(t?.output?.digital||{}).forEach(r=>{o.push({text:`${r}`,value:{type:"io",id:t.id,digital_output:r}})}),o.length>0&&e.push({label:t.name,options:o})}),e},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints?.map(t=>({value:{type:"cp",id:t.value},text:t.text}))||[]}].concat(this.ioDevicesOutputOptions)}}},A={key:2};function D(e,t,o,r,y,n){const g=u("openwb-io-single-pattern"),m=u("openwb-base-number-input"),c=u("openwb-base-select-input");return a(),l(_,null,[e.ioDevice?.type!=="eebus"&&n.value&&n.value.length>0?(a(),d(g,{key:0,modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=i=>n.value=i),contacts:e.ioDevice?.input?.digital||{}},null,8,["modelValue","contacts"])):s("",!0),e.ioAction?.configuration&&e.ioDevice?.type!=="eebus"?(a(),d(m,{key:1,title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!n.isPatternConfigured,"model-value":(e.ioAction.configuration.max_import_power||0)/1e3,"onUpdate:modelValue":t[1]||(t[1]=i=>e.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"])):s("",!0),e.ioDevice?.type!=="eebus"?(a(),l("hr",A)):s("",!0),f(c,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:e.ioDevice?.type!=="eebus"&&!n.isPatternConfigured,"model-value":e.ioAction?.configuration?.devices||[],"onUpdate:modelValue":t[2]||(t[2]=i=>e.updateConfiguration(i,"configuration.devices"))},{help:w(()=>[...t[3]||(t[3]=[p(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),k("br",null,null,-1),p(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const I=h(V,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{I as default}; +import{a as b}from"./IoConfiguration-vfX10CsO.js";import{O as v}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as u,k as a,e as l,y as d,u as s,m as f,q as w,A as p,x as k,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const V={name:"IoActionDimming",components:{OpenwbIoSinglePattern:v},mixins:[b],computed:{value:{get(){return this.ioAction?.configuration?.input_pattern||[]},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},isPatternConfigured(){return this.value?.length>0&&this.value[0].matrix&&Object.keys(this.value[0].matrix).length>0},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices?.forEach(t=>{let o=[];Object.keys(t?.output?.digital||{}).forEach(r=>{o.push({text:`${r}`,value:{type:"io",id:t.id,digital_output:r}})}),o.length>0&&e.push({label:t.name,options:o})}),e},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints?.map(t=>({value:{type:"cp",id:t.value},text:t.text}))||[]}].concat(this.ioDevicesOutputOptions)}}},A={key:2};function D(e,t,o,r,y,n){const g=u("openwb-io-single-pattern"),m=u("openwb-base-number-input"),c=u("openwb-base-select-input");return a(),l(_,null,[e.ioDevice?.type!=="eebus"&&n.value&&n.value.length>0?(a(),d(g,{key:0,modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=i=>n.value=i),contacts:e.ioDevice?.input?.digital||{}},null,8,["modelValue","contacts"])):s("",!0),e.ioAction?.configuration&&e.ioDevice?.type!=="eebus"?(a(),d(m,{key:1,title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!n.isPatternConfigured,"model-value":(e.ioAction.configuration.max_import_power||0)/1e3,"onUpdate:modelValue":t[1]||(t[1]=i=>e.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"])):s("",!0),e.ioDevice?.type!=="eebus"?(a(),l("hr",A)):s("",!0),f(c,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:e.ioDevice?.type!=="eebus"&&!n.isPatternConfigured,"model-value":e.ioAction?.configuration?.devices||[],"onUpdate:modelValue":t[2]||(t[2]=i=>e.updateConfiguration(i,"configuration.devices"))},{help:w(()=>[...t[3]||(t[3]=[p(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),k("br",null,null,-1),p(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const I=h(V,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{I as default}; diff --git a/web/settings/assets/io_action-BcRa5w4h.js b/web/settings/assets/io_action-CNib3IIZ.js similarity index 88% rename from web/settings/assets/io_action-BcRa5w4h.js rename to web/settings/assets/io_action-CNib3IIZ.js index e4193948cf..9d7901b6a4 100644 --- a/web/settings/assets/io_action-BcRa5w4h.js +++ b/web/settings/assets/io_action-CNib3IIZ.js @@ -1 +1 @@ -import{a as f}from"./IoConfiguration-cTbf922R.js";import{O as v}from"./OpenwbIoPattern-DH-SthiO.js";import{_ as h,l as u,k as i,e as l,y as p,q as s,A as a,J as g,u as r,m as k,x as w,K as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:v},mixins:[f],computed:{availableDevices(){let e=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:e.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:e}]}}},V={key:1},y={key:2};function B(e,t,o,D,z,c){const d=u("openwb-io-pattern"),m=u("openwb-base-select-input"),b=u("openwb-base-button-group-input");return i(),l(_,null,[e.ioDevice?.type!=="eebus"?(i(),p(d,{key:0,modelValue:e.ioAction.configuration.input_pattern,"onUpdate:modelValue":t[0]||(t[0]=n=>e.ioAction.configuration.input_pattern=n),contacts:e.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0),e.ioDevice?.type!=="eebus"?(i(),l("hr",V)):r("",!0),k(m,{modelValue:e.ioAction.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=n=>e.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:c.availableDevices,required:"",multiple:""},{help:s(()=>[...t[4]||(t[4]=[a(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),w("br",null,null,-1),a(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])]),_:1},8,["modelValue","groups"]),e.ioDevice?.type!=="eebus"?(i(),l("hr",y)):r("",!0),e.ioDevice?.type!=="eebus"?(i(),p(b,{key:3,modelValue:e.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":t[2]||(t[2]=n=>e.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:s(()=>[...t[5]||(t[5]=[a(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])]),_:1},8,["modelValue"])):r("",!0),e.ioAction.configuration.passthrough_enabled?(i(),p(d,{key:4,modelValue:e.ioAction.configuration.output_pattern,"onUpdate:modelValue":t[3]||(t[3]=n=>e.ioAction.configuration.output_pattern=n),contacts:e.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0)],64)}const $=h(A,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{$ as default}; +import{a as f}from"./IoConfiguration-vfX10CsO.js";import{O as v}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as h,l as u,k as i,e as l,y as p,q as s,A as a,J as g,u as r,m as k,x as w,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:v},mixins:[f],computed:{availableDevices(){let e=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:e.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:e}]}}},V={key:1},y={key:2};function B(e,t,o,D,z,c){const d=u("openwb-io-pattern"),m=u("openwb-base-select-input"),b=u("openwb-base-button-group-input");return i(),l(_,null,[e.ioDevice?.type!=="eebus"?(i(),p(d,{key:0,modelValue:e.ioAction.configuration.input_pattern,"onUpdate:modelValue":t[0]||(t[0]=n=>e.ioAction.configuration.input_pattern=n),contacts:e.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0),e.ioDevice?.type!=="eebus"?(i(),l("hr",V)):r("",!0),k(m,{modelValue:e.ioAction.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=n=>e.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:c.availableDevices,required:"",multiple:""},{help:s(()=>[...t[4]||(t[4]=[a(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),w("br",null,null,-1),a(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])]),_:1},8,["modelValue","groups"]),e.ioDevice?.type!=="eebus"?(i(),l("hr",y)):r("",!0),e.ioDevice?.type!=="eebus"?(i(),p(b,{key:3,modelValue:e.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":t[2]||(t[2]=n=>e.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:s(()=>[...t[5]||(t[5]=[a(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])]),_:1},8,["modelValue"])):r("",!0),e.ioAction.configuration.passthrough_enabled?(i(),p(d,{key:4,modelValue:e.ioAction.configuration.output_pattern,"onUpdate:modelValue":t[3]||(t[3]=n=>e.ioAction.configuration.output_pattern=n),contacts:e.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0)],64)}const $=h(A,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{$ as default}; diff --git a/web/settings/assets/io_action-CCDa41WP.js b/web/settings/assets/io_action-CcAuqDqD.js similarity index 84% rename from web/settings/assets/io_action-CCDa41WP.js rename to web/settings/assets/io_action-CcAuqDqD.js index cef8929309..5210abdcc5 100644 --- a/web/settings/assets/io_action-CCDa41WP.js +++ b/web/settings/assets/io_action-CcAuqDqD.js @@ -1 +1 @@ -import{a as b}from"./IoConfiguration-cTbf922R.js";import{O as g}from"./OpenwbIoPattern-DH-SthiO.js";import{_ as f,l as i,k as o,e as p,y as l,q as r,A as d,m as _,u,K as w}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:g},mixins:[b],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}},h={key:2};function y(t,e,V,C,B,a){const m=i("openwb-base-alert"),s=i("openwb-base-select-input"),c=i("openwb-io-pattern");return o(),p(w,null,[t.ioDevice?.type==="eebus"?(o(),l(m,{key:0,subtype:"warning"},{default:r(()=>[...e[2]||(e[2]=[d(" Steuerboxen mit EEBus-Schnistelle sind für Rundsteuerempfänger-Aktionen nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):t.ioDevice?(o(),l(c,{key:1,modelValue:a.value,"onUpdate:modelValue":e[0]||(e[0]=n=>a.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:r(n=>[_(s,{modelValue:n.pattern.value,"onUpdate:modelValue":v=>n.pattern.value=v,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"])):u("",!0),t.ioDevice?.type!=="eebus"?(o(),p("hr",h)):u("",!0),t.ioDevice?.type!=="eebus"?(o(),l(s,{key:3,title:"Anwenden auf...","empty-value":[],groups:a.availableDevices,required:"",multiple:"","model-value":t.ioAction?.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:r(()=>[...e[3]||(e[3]=[d(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])]),_:1},8,["groups","model-value"])):u("",!0)],64)}const N=f(k,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{N as default}; +import{a as b}from"./IoConfiguration-vfX10CsO.js";import{O as g}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as f,l as i,k as o,e as p,y as l,q as r,A as d,m as _,u,K as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:g},mixins:[b],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}},h={key:2};function y(t,e,V,C,B,a){const m=i("openwb-base-alert"),s=i("openwb-base-select-input"),c=i("openwb-io-pattern");return o(),p(w,null,[t.ioDevice?.type==="eebus"?(o(),l(m,{key:0,subtype:"warning"},{default:r(()=>[...e[2]||(e[2]=[d(" Steuerboxen mit EEBus-Schnistelle sind für Rundsteuerempfänger-Aktionen nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):t.ioDevice?(o(),l(c,{key:1,modelValue:a.value,"onUpdate:modelValue":e[0]||(e[0]=n=>a.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:r(n=>[_(s,{modelValue:n.pattern.value,"onUpdate:modelValue":v=>n.pattern.value=v,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"])):u("",!0),t.ioDevice?.type!=="eebus"?(o(),p("hr",h)):u("",!0),t.ioDevice?.type!=="eebus"?(o(),l(s,{key:3,title:"Anwenden auf...","empty-value":[],groups:a.availableDevices,required:"",multiple:"","model-value":t.ioAction?.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:r(()=>[...e[3]||(e[3]=[d(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])]),_:1},8,["groups","model-value"])):u("",!0)],64)}const N=f(k,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{N as default}; diff --git a/web/settings/assets/io_action-BIaRo3Nw.js b/web/settings/assets/io_action-XIjORj2n.js similarity index 86% rename from web/settings/assets/io_action-BIaRo3Nw.js rename to web/settings/assets/io_action-XIjORj2n.js index bb7c9e6005..0fe070e8cb 100644 --- a/web/settings/assets/io_action-BIaRo3Nw.js +++ b/web/settings/assets/io_action-XIjORj2n.js @@ -1 +1 @@ -import{a as v}from"./IoConfiguration-cTbf922R.js";import{O as f}from"./OpenwbIoSinglePattern-B9zMWKVu.js";import{_ as h,l as s,k as n,e as p,y as r,q as d,A as c,u,K as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:f},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices.forEach(t=>{let i=[];Object.keys(t?.output?.digital||{}).forEach(a=>{i.push({text:`${a}`,value:{type:"io",id:t.id,digital_output:a}})}),i.length>0&&e.push({label:t.name,options:i})}),e.length===0&&e.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),e},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}},k={key:2};function y(e,t,i,a,D,o){const m=s("openwb-base-alert"),g=s("openwb-io-single-pattern"),b=s("openwb-base-select-input");return n(),p(_,null,[e.ioDevice?.type==="eebus"?(n(),r(m,{key:0,subtype:"warning"},{default:d(()=>[...t[2]||(t[2]=[c(" Steuerboxen mit EEBus-Schnistelle sind für Dimmen per Direktsteuerung nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):e.ioDevice?(n(),r(g,{key:1,modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=l=>o.value=l),contacts:e.ioDevice?.input?.digital},null,8,["modelValue","contacts"])):u("",!0),e.ioDevice?.type!=="eebus"?(n(),p("hr",k)):u("",!0),e.ioDevice?.type!=="eebus"?(n(),r(b,{key:3,title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":e.ioAction?.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateConfiguration(l,"configuration.devices"))},{help:d(()=>[...t[3]||(t[3]=[c(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])]),_:1},8,["groups","disabled","model-value"])):u("",!0)],64)}const P=h(w,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{P as default}; +import{a as v}from"./IoConfiguration-vfX10CsO.js";import{O as f}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as s,k as n,e as p,y as r,q as d,A as c,u,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:f},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices.forEach(t=>{let i=[];Object.keys(t?.output?.digital||{}).forEach(a=>{i.push({text:`${a}`,value:{type:"io",id:t.id,digital_output:a}})}),i.length>0&&e.push({label:t.name,options:i})}),e.length===0&&e.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),e},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}},k={key:2};function y(e,t,i,a,D,o){const m=s("openwb-base-alert"),g=s("openwb-io-single-pattern"),b=s("openwb-base-select-input");return n(),p(_,null,[e.ioDevice?.type==="eebus"?(n(),r(m,{key:0,subtype:"warning"},{default:d(()=>[...t[2]||(t[2]=[c(" Steuerboxen mit EEBus-Schnistelle sind für Dimmen per Direktsteuerung nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):e.ioDevice?(n(),r(g,{key:1,modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=l=>o.value=l),contacts:e.ioDevice?.input?.digital},null,8,["modelValue","contacts"])):u("",!0),e.ioDevice?.type!=="eebus"?(n(),p("hr",k)):u("",!0),e.ioDevice?.type!=="eebus"?(n(),r(b,{key:3,title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":e.ioAction?.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateConfiguration(l,"configuration.devices"))},{help:d(()=>[...t[3]||(t[3]=[c(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])]),_:1},8,["groups","disabled","model-value"])):u("",!0)],64)}const P=h(w,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{P as default}; diff --git a/web/settings/assets/io_device-Bu2TTklo.js b/web/settings/assets/io_device-1ouhD8vS.js similarity index 86% rename from web/settings/assets/io_device-Bu2TTklo.js rename to web/settings/assets/io_device-1ouhD8vS.js index 043f930d6d..685966445b 100644 --- a/web/settings/assets/io_device-Bu2TTklo.js +++ b/web/settings/assets/io_device-1ouhD8vS.js @@ -1 +1 @@ -import{O as m}from"./IoConfiguration-cTbf922R.js";import{C as f}from"./index-BBXHIMfY.js";import{_ as g,l as s,k as h,e as b,m as a,q as l,A as i,x as n}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./dynamic-import-helper-BheWnx7M.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1}]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const o of Object.values(t))if(["external_openwb"].includes(o.type)){if(e.find(r=>r.value===o.configuration.ip_address))continue;e.push({value:o.configuration.ip_address,text:o.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?[]:[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,o,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>[...e[1]||(e[1]=[i(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),i(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),i(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),i(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])]),_:1}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>[...e[2]||(e[2]=[i(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),i(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])]),_:1},8,["groups","model-value"])])}const P=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{P as default}; +import{O as m}from"./IoConfiguration-vfX10CsO.js";import{C as f}from"./index-CyH1Au4V.js";import{_ as g,l as s,k as h,e as b,m as a,q as l,A as i,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./dynamic-import-helper-BheWnx7M.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1}]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const o of Object.values(t))if(["external_openwb"].includes(o.type)){if(e.find(r=>r.value===o.configuration.ip_address))continue;e.push({value:o.configuration.ip_address,text:o.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?[]:[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,o,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>[...e[1]||(e[1]=[i(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),i(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),i(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),i(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])]),_:1}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>[...e[2]||(e[2]=[i(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),i(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])]),_:1},8,["groups","model-value"])])}const P=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{P as default}; diff --git a/web/settings/assets/io_device-CMcMfpQL.js b/web/settings/assets/io_device-B-Ykhm08.js similarity index 86% rename from web/settings/assets/io_device-CMcMfpQL.js rename to web/settings/assets/io_device-B-Ykhm08.js index 6a27421d3c..c72cd434a1 100644 --- a/web/settings/assets/io_device-CMcMfpQL.js +++ b/web/settings/assets/io_device-B-Ykhm08.js @@ -1 +1 @@ -import{O as m}from"./IoConfiguration-cTbf922R.js";import{_ as p,l as r,k as c,e as b,m as n,q as l,A as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"IoDeviceEebus",mixins:[m]},v={class:"io-device-eebus"};function g(e,o,_,w,k,D){const u=r("openwb-base-number-input"),t=r("openwb-base-text-input"),s=r("openwb-base-button-input"),d=r("openwb-base-alert");return c(),b("div",v,[n(u,{title:"Port",required:"",min:1,max:65535,"model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),n(t,{title:"SKI-Schlüssel des VNB","model-value":e.ioDevice.configuration.remote_ski,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.remote_ski"))},null,8,["model-value"]),n(s,{title:"Zertifikat und SKI-Schlüssel","button-text":"Zertifikat und SKI-Schlüssel generieren",subtype:"warning",onButtonClicked:o[2]||(o[2]=i=>e.sendSystemCommand("createEebusCert",{io_device:e.ioDevice.id}))},{help:l(()=>[...o[3]||(o[3]=[a(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1}),n(d,{subtype:"danger"},{default:l(()=>[...o[4]||(o[4]=[a(" Vorhandene Zertifikate werden gelöscht. Der SKI-Schlüssel muss danach beim Netzbetreiber (VNB) neu eingetragen werden. ",-1)])]),_:1}),n(t,{title:"SKI-Schlüssel (zum Eintragen beim VNB)","model-value":e.ioDevice.configuration.cert_info.client_ski,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig ab","model-value":e.ioDevice.configuration.cert_info.not_before,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig bis","model-value":e.ioDevice.configuration.cert_info.not_after,readonly:!0},null,8,["model-value"]),n(t,{title:"Aussteller","model-value":e.ioDevice.configuration.cert_info.issuer,readonly:!0},null,8,["model-value"]),n(t,{title:"weitere Informationen","model-value":e.ioDevice.configuration.cert_info.subject,readonly:!0},null,8,["model-value"])])}const N=p(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/eebus/io_device.vue"]]);export{N as default}; +import{O as m}from"./IoConfiguration-vfX10CsO.js";import{_ as p,l as r,k as c,e as b,m as n,q as l,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"IoDeviceEebus",mixins:[m]},v={class:"io-device-eebus"};function g(e,o,_,w,k,D){const u=r("openwb-base-number-input"),t=r("openwb-base-text-input"),s=r("openwb-base-button-input"),d=r("openwb-base-alert");return c(),b("div",v,[n(u,{title:"Port",required:"",min:1,max:65535,"model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),n(t,{title:"SKI-Schlüssel des VNB","model-value":e.ioDevice.configuration.remote_ski,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.remote_ski"))},null,8,["model-value"]),n(s,{title:"Zertifikat und SKI-Schlüssel","button-text":"Zertifikat und SKI-Schlüssel generieren",subtype:"warning",onButtonClicked:o[2]||(o[2]=i=>e.sendSystemCommand("createEebusCert",{io_device:e.ioDevice.id}))},{help:l(()=>[...o[3]||(o[3]=[a(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1}),n(d,{subtype:"danger"},{default:l(()=>[...o[4]||(o[4]=[a(" Vorhandene Zertifikate werden gelöscht. Der SKI-Schlüssel muss danach beim Netzbetreiber (VNB) neu eingetragen werden. ",-1)])]),_:1}),n(t,{title:"SKI-Schlüssel (zum Eintragen beim VNB)","model-value":e.ioDevice.configuration.cert_info.client_ski,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig ab","model-value":e.ioDevice.configuration.cert_info.not_before,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig bis","model-value":e.ioDevice.configuration.cert_info.not_after,readonly:!0},null,8,["model-value"]),n(t,{title:"Aussteller","model-value":e.ioDevice.configuration.cert_info.issuer,readonly:!0},null,8,["model-value"]),n(t,{title:"weitere Informationen","model-value":e.ioDevice.configuration.cert_info.subject,readonly:!0},null,8,["model-value"])])}const N=p(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/eebus/io_device.vue"]]);export{N as default}; diff --git a/web/settings/assets/io_device-CSfBx0gv.js b/web/settings/assets/io_device-BFTcDSy5.js similarity index 75% rename from web/settings/assets/io_device-CSfBx0gv.js rename to web/settings/assets/io_device-BFTcDSy5.js index a6140f8030..9d29661234 100644 --- a/web/settings/assets/io_device-CSfBx0gv.js +++ b/web/settings/assets/io_device-BFTcDSy5.js @@ -1 +1 @@ -import{O as m}from"./IoConfiguration-cTbf922R.js";import{_ as a,l as r,k as p,e as s,m as t}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(e,o,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return p(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.ioDevice.configuration.host,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":e.ioDevice.configuration.modbus_id,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{q as default}; +import{O as m}from"./IoConfiguration-vfX10CsO.js";import{_ as a,l as r,k as p,e as s,m as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(e,o,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return p(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.ioDevice.configuration.host,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":e.ioDevice.configuration.modbus_id,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{q as default}; diff --git a/web/settings/assets/monitoring-DmGi8iaj.js b/web/settings/assets/monitoring-BMLL0nfh.js similarity index 84% rename from web/settings/assets/monitoring-DmGi8iaj.js rename to web/settings/assets/monitoring-BMLL0nfh.js index 55e23e4c27..36a4acbeee 100644 --- a/web/settings/assets/monitoring-DmGi8iaj.js +++ b/web/settings/assets/monitoring-BMLL0nfh.js @@ -1 +1 @@ -import{M as l}from"./DataManagement-BquAussF.js";import{_ as d,l as a,k as p,e as m,m as t,q as g,A as r,x as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,k,_,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return p(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>[...e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])]),_:1}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const S=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{S as default}; +import{M as l}from"./DataManagement-FAi2cjUn.js";import{_ as d,l as a,k as p,e as m,m as t,q as g,A as r,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,k,_,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return p(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>[...e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])]),_:1}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const S=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{S as default}; diff --git a/web/settings/assets/vehicle-u7nEjbHE.js b/web/settings/assets/vehicle-7u_dqMEp.js similarity index 73% rename from web/settings/assets/vehicle-u7nEjbHE.js rename to web/settings/assets/vehicle-7u_dqMEp.js index cda9f78552..48114482e0 100644 --- a/web/settings/assets/vehicle-u7nEjbHE.js +++ b/web/settings/assets/vehicle-7u_dqMEp.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfiguration--T3YyIjm.js";import{_ as u,l,k as p,e as s,m as i}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEvnotify",mixins:[r]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const a=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(a,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const q=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{q as default}; +import{V as r}from"./VehicleConfiguration-TZSwJptx.js";import{_ as u,l,k as p,e as s,m as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEvnotify",mixins:[r]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const a=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(a,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const q=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-CQZ24B5Z.js b/web/settings/assets/vehicle-9Vh-TxGa.js similarity index 75% rename from web/settings/assets/vehicle-CQZ24B5Z.js rename to web/settings/assets/vehicle-9Vh-TxGa.js index def03fe202..8f4d032aa0 100644 --- a/web/settings/assets/vehicle-CQZ24B5Z.js +++ b/web/settings/assets/vehicle-9Vh-TxGa.js @@ -1 +1 @@ -import{V as o}from"./VehicleConfiguration--T3YyIjm.js";import{_ as i,l as r,k as s,e as a,m as c,q as p,A as n,x as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(f,e,_,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>[...e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])]),_:1})])}const C=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{C as default}; +import{V as o}from"./VehicleConfiguration-TZSwJptx.js";import{_ as i,l as r,k as s,e as a,m as c,q as p,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(f,e,_,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>[...e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])]),_:1})])}const C=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{C as default}; diff --git a/web/settings/assets/vehicle-BIXm9LJK.js b/web/settings/assets/vehicle-B0tJYS46.js similarity index 86% rename from web/settings/assets/vehicle-BIXm9LJK.js rename to web/settings/assets/vehicle-B0tJYS46.js index ccd778e9d4..92eb985de1 100644 --- a/web/settings/assets/vehicle-BIXm9LJK.js +++ b/web/settings/assets/vehicle-B0tJYS46.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfiguration--T3YyIjm.js";import{_ as m,l,k as f,e as b,m as i,q as r,A as t,x as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,C){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])]),_:1}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>[...e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])]),_:1},8,["model-value"])])}const x=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{x as default}; +import{V as p}from"./VehicleConfiguration-TZSwJptx.js";import{_ as m,l,k as f,e as b,m as i,q as r,A as t,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,C){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])]),_:1}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>[...e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])]),_:1},8,["model-value"])])}const x=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{x as default}; diff --git a/web/settings/assets/vehicle-fQvTZi_E.js b/web/settings/assets/vehicle-BJ8Vq-80.js similarity index 94% rename from web/settings/assets/vehicle-fQvTZi_E.js rename to web/settings/assets/vehicle-BJ8Vq-80.js index a9f072d5ae..b7fc484850 100644 --- a/web/settings/assets/vehicle-fQvTZi_E.js +++ b/web/settings/assets/vehicle-BJ8Vq-80.js @@ -1 +1 @@ -import{_ as h,l as r,k as f,e as b,m as i,q as a,A as s,x as k,a5 as v,a6 as c,a7 as _}from"./vendor-JxinjXxC.js";import{a as w}from"./vendor-axios-CL9DOa3h.js";import{C}from"./index-BBXHIMfY.js";import{V as y}from"./VehicleConfiguration--T3YyIjm.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=v.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},U={class:"vehicle-soc-tesla"};function B(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return f(),b("div",U,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>[...n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])]),_:1},8,["model-value"]),i(m,null,{default:a(()=>[...n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])]),_:1}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>[...n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Tesla mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>[...n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])]),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>[...n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=k("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>[...n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>[...n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])]),_:1},8,["model-value"])])}const x=h(T,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{x as default}; +import{_ as h,l as r,k as f,e as b,m as i,q as a,A as s,x as k,a5 as v,a6 as c,a7 as _}from"./vendor-Bo8v-nQD.js";import{a as w}from"./vendor-axios-DdFvNBv9.js";import{C}from"./index-CyH1Au4V.js";import{V as y}from"./VehicleConfiguration-TZSwJptx.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=v.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},U={class:"vehicle-soc-tesla"};function B(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return f(),b("div",U,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>[...n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])]),_:1},8,["model-value"]),i(m,null,{default:a(()=>[...n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])]),_:1}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>[...n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Tesla mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>[...n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])]),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>[...n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=k("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>[...n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>[...n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])]),_:1},8,["model-value"])])}const x=h(T,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{x as default}; diff --git a/web/settings/assets/vehicle-mVzWIbRB.js b/web/settings/assets/vehicle-BgWejNBx.js similarity index 89% rename from web/settings/assets/vehicle-mVzWIbRB.js rename to web/settings/assets/vehicle-BgWejNBx.js index 3249a13956..5d2ce5bde7 100644 --- a/web/settings/assets/vehicle-mVzWIbRB.js +++ b/web/settings/assets/vehicle-BgWejNBx.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfiguration--T3YyIjm.js";import{_ as d,l as u,k as p,e as g,m as o,q as l,A as i,x as c}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>[...e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>[...e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>[...e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])]),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>[...e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const k=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{k as default}; +import{V as a}from"./VehicleConfiguration-TZSwJptx.js";import{_ as d,l as u,k as p,e as g,m as o,q as l,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>[...e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>[...e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>[...e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])]),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>[...e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const k=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{k as default}; diff --git a/web/settings/assets/vehicle-BfwB5CmK.js b/web/settings/assets/vehicle-BjW8elSd.js similarity index 91% rename from web/settings/assets/vehicle-BfwB5CmK.js rename to web/settings/assets/vehicle-BjW8elSd.js index 1e50fc8f75..76a5bd1a7c 100644 --- a/web/settings/assets/vehicle-BfwB5CmK.js +++ b/web/settings/assets/vehicle-BjW8elSd.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfiguration--T3YyIjm.js";import{_ as b,l as u,k as g,e as f,m as i,q as o,A as n,x as t,J as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocMqtt",mixins:[m]},w={class:"vehicle-soc-mqtt"};function k(l,e,B,z,x,I){const p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-button-group-input");return g(),f("div",w,[i(p,{subtype:"warning"},{default:o(()=>[e[1]||(e[1]=n(" Ist die ",-1)),e[2]||(e[2]=t("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=n(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),t("strong",null,`"Daten: Fahrzeug '`+s(l.vehicle.name)+"' ("+s(l.vehicleId)+') MQTT-Input"',1),e[4]||(e[4]=n(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:o(()=>[t("ul",null,[t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc ",1)]),_:1}),e[5]||(e[5]=t("br",null,null,-1)),e[6]||(e[6]=n(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[7]||(e[7]=t("br",null,null,-1)),e[8]||(e[8]=n(" Beispiel: ",-1)),e[9]||(e[9]=t("span",{class:"text-info"},"89.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),e[10]||(e[10]=t("br",null,null,-1)),e[11]||(e[11]=n(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),e[12]||(e[12]=t("br",null,null,-1)),e[13]||(e[13]=n(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),e[14]||(e[14]=t("br",null,null,-1)),e[15]||(e[15]=n(" Beispiel: ",-1)),e[16]||(e[16]=t("span",{class:"text-info"},"1748339524",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/range ",1)]),_:1}),e[17]||(e[17]=t("br",null,null,-1)),e[18]||(e[18]=n(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[19]||(e[19]=t("br",null,null,-1)),e[20]||(e[20]=n(" Diese Info ist optional.",-1)),e[21]||(e[21]=t("br",null,null,-1)),e[22]||(e[22]=n(" Beispiel: ",-1)),e[23]||(e[23]=t("span",{class:"text-info"},"356.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/odometer ",1)]),_:1}),e[24]||(e[24]=t("br",null,null,-1)),e[25]||(e[25]=n(" Aktueller Km-Stand des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[26]||(e[26]=t("br",null,null,-1)),e[27]||(e[27]=n(" Diese Info ist optional.",-1)),e[28]||(e[28]=t("br",null,null,-1)),e[29]||(e[29]=n(" Beispiel: ",-1)),e[30]||(e[30]=t("span",{class:"text-info"},"20356.5",-1))])])]),_:1}),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[0]||(e[0]=a=>l.updateConfiguration(a,"configuration.calculate_soc"))},{help:o(()=>[...e[31]||(e[31]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const N=b(v,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default}; +import{V as m}from"./VehicleConfiguration-TZSwJptx.js";import{_ as b,l as u,k as g,e as f,m as i,q as o,A as n,x as t,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocMqtt",mixins:[m]},w={class:"vehicle-soc-mqtt"};function k(l,e,B,z,x,I){const p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-button-group-input");return g(),f("div",w,[i(p,{subtype:"warning"},{default:o(()=>[e[1]||(e[1]=n(" Ist die ",-1)),e[2]||(e[2]=t("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=n(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),t("strong",null,`"Daten: Fahrzeug '`+s(l.vehicle.name)+"' ("+s(l.vehicleId)+') MQTT-Input"',1),e[4]||(e[4]=n(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:o(()=>[t("ul",null,[t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc ",1)]),_:1}),e[5]||(e[5]=t("br",null,null,-1)),e[6]||(e[6]=n(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[7]||(e[7]=t("br",null,null,-1)),e[8]||(e[8]=n(" Beispiel: ",-1)),e[9]||(e[9]=t("span",{class:"text-info"},"89.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),e[10]||(e[10]=t("br",null,null,-1)),e[11]||(e[11]=n(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),e[12]||(e[12]=t("br",null,null,-1)),e[13]||(e[13]=n(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),e[14]||(e[14]=t("br",null,null,-1)),e[15]||(e[15]=n(" Beispiel: ",-1)),e[16]||(e[16]=t("span",{class:"text-info"},"1748339524",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/range ",1)]),_:1}),e[17]||(e[17]=t("br",null,null,-1)),e[18]||(e[18]=n(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[19]||(e[19]=t("br",null,null,-1)),e[20]||(e[20]=n(" Diese Info ist optional.",-1)),e[21]||(e[21]=t("br",null,null,-1)),e[22]||(e[22]=n(" Beispiel: ",-1)),e[23]||(e[23]=t("span",{class:"text-info"},"356.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/odometer ",1)]),_:1}),e[24]||(e[24]=t("br",null,null,-1)),e[25]||(e[25]=n(" Aktueller Km-Stand des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[26]||(e[26]=t("br",null,null,-1)),e[27]||(e[27]=n(" Diese Info ist optional.",-1)),e[28]||(e[28]=t("br",null,null,-1)),e[29]||(e[29]=n(" Beispiel: ",-1)),e[30]||(e[30]=t("span",{class:"text-info"},"20356.5",-1))])])]),_:1}),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[0]||(e[0]=a=>l.updateConfiguration(a,"configuration.calculate_soc"))},{help:o(()=>[...e[31]||(e[31]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const N=b(v,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-DNvSQzxJ.js b/web/settings/assets/vehicle-Bo3E1wuI.js similarity index 90% rename from web/settings/assets/vehicle-DNvSQzxJ.js rename to web/settings/assets/vehicle-Bo3E1wuI.js index 272cae3b35..33a9f3ffbe 100644 --- a/web/settings/assets/vehicle-DNvSQzxJ.js +++ b/web/settings/assets/vehicle-Bo3E1wuI.js @@ -1 +1 @@ -import{V as s}from"./VehicleConfiguration--T3YyIjm.js";import{_ as d,l as u,k as p,e as v,m as a,q as n,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return p(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>[...e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>[...e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>[...e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>[...e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>[...e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const F=d(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; +import{V as s}from"./VehicleConfiguration-TZSwJptx.js";import{_ as d,l as u,k as p,e as v,m as a,q as n,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return p(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>[...e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>[...e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>[...e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>[...e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>[...e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const F=d(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-Cac3-Kjm.js b/web/settings/assets/vehicle-Bwnke49F.js similarity index 79% rename from web/settings/assets/vehicle-Cac3-Kjm.js rename to web/settings/assets/vehicle-Bwnke49F.js index 4fbbe030a7..2f1f500e2e 100644 --- a/web/settings/assets/vehicle-Cac3-Kjm.js +++ b/web/settings/assets/vehicle-Bwnke49F.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfiguration--T3YyIjm.js";import{S as d}from"./SystemVersion-ClVKOJRu.js";import{_ as p,l as t,k as m,e as b,m as o,q as f,A as r,x as a}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocManual",mixins:[l,d]},c={class:"vehicle-soc-manual"},h=["href"];function _(n,e,k,w,v,z){const s=t("openwb-base-alert"),i=t("openwb-base-button-group-input");return m(),b("div",c,[o(s,{subtype:"info"},{default:f(()=>[e[1]||(e[1]=r(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC-Wert des Fahrzeugs über die Hauptseite oder (wenn verbaut) am Display der openWB angegeben werden. Anhand des geladenen Stroms wird der aktuelle SoC-Wert des Fahrzeugs während der Ladung berechnet. Ausschlaggebend für die Genauigkeit der Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. Weitere Infos dazu im ',-1)),a("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:fahrzeug-infos:manueller-soc`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zum manuellen SoC ",8,h),e[2]||(e[2]=r(".",-1)),e[3]||(e[3]=a("br",null,null,-1))]),_:1}),o(i,{title:"SoC ohne manuelle Eingabe",buttons:[{buttonValue:!1,text:"letzten SoC beibehalten"},{buttonValue:!0,text:"nach dem Abstecken auf 0% zurücksetzen"}],"model-value":n.vehicle.configuration.reset_after_unplug,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u,"configuration.reset_after_unplug"))},null,8,["model-value"])])}const F=p(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{F as default}; +import{V as l}from"./VehicleConfiguration-TZSwJptx.js";import{S as d}from"./SystemVersion-DQAfG1DR.js";import{_ as p,l as t,k as m,e as b,m as o,q as f,A as r,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocManual",mixins:[l,d]},c={class:"vehicle-soc-manual"},h=["href"];function _(n,e,k,w,v,z){const s=t("openwb-base-alert"),i=t("openwb-base-button-group-input");return m(),b("div",c,[o(s,{subtype:"info"},{default:f(()=>[e[1]||(e[1]=r(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC-Wert des Fahrzeugs über die Hauptseite oder (wenn verbaut) am Display der openWB angegeben werden. Anhand des geladenen Stroms wird der aktuelle SoC-Wert des Fahrzeugs während der Ladung berechnet. Ausschlaggebend für die Genauigkeit der Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. Weitere Infos dazu im ',-1)),a("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:fahrzeug-infos:manueller-soc`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zum manuellen SoC ",8,h),e[2]||(e[2]=r(".",-1)),e[3]||(e[3]=a("br",null,null,-1))]),_:1}),o(i,{title:"SoC ohne manuelle Eingabe",buttons:[{buttonValue:!1,text:"letzten SoC beibehalten"},{buttonValue:!0,text:"nach dem Abstecken auf 0% zurücksetzen"}],"model-value":n.vehicle.configuration.reset_after_unplug,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u,"configuration.reset_after_unplug"))},null,8,["model-value"])])}const F=p(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-DOhfCjDp.js b/web/settings/assets/vehicle-BxcO7fDO.js similarity index 82% rename from web/settings/assets/vehicle-DOhfCjDp.js rename to web/settings/assets/vehicle-BxcO7fDO.js index ae5be181d7..3a3fed523d 100644 --- a/web/settings/assets/vehicle-DOhfCjDp.js +++ b/web/settings/assets/vehicle-BxcO7fDO.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfiguration--T3YyIjm.js";import{_ as p,l as r,k as d,e as m,m as o,q as i,A as s}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const a=r("openwb-base-text-input"),l=r("openwb-base-select-input");return d(),m("div",f,[o(a,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[3]||(e[3]=[s(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[4]||(e[4]=[s(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>[...e[5]||(e[5]=[s(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])]),_:1},8,["model-value"])])}const S=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{S as default}; +import{V as u}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as r,k as d,e as m,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const a=r("openwb-base-text-input"),l=r("openwb-base-select-input");return d(),m("div",f,[o(a,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[3]||(e[3]=[s(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[4]||(e[4]=[s(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>[...e[5]||(e[5]=[s(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])]),_:1},8,["model-value"])])}const S=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{S as default}; diff --git a/web/settings/assets/vehicle-CPj_pr_x.js b/web/settings/assets/vehicle-C4xon1Al.js similarity index 86% rename from web/settings/assets/vehicle-CPj_pr_x.js rename to web/settings/assets/vehicle-C4xon1Al.js index 6a3da65df0..91781d2c42 100644 --- a/web/settings/assets/vehicle-CPj_pr_x.js +++ b/web/settings/assets/vehicle-C4xon1Al.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfiguration--T3YyIjm.js";import{_ as l,l as s,k as d,e as m,m as r,q as i,A as t,x as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,V){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])]),_:1}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{N as default}; +import{V as p}from"./VehicleConfiguration-TZSwJptx.js";import{_ as l,l as s,k as d,e as m,m as r,q as i,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,V){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])]),_:1}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-C8HZVIPP.js b/web/settings/assets/vehicle-CPjkbES5.js similarity index 86% rename from web/settings/assets/vehicle-C8HZVIPP.js rename to web/settings/assets/vehicle-CPjkbES5.js index dbfe9567a8..c902a857f3 100644 --- a/web/settings/assets/vehicle-C8HZVIPP.js +++ b/web/settings/assets/vehicle-CPjkbES5.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfiguration--T3YyIjm.js";import{_ as u,l as a,k as p,e as m,m as i,q as r,A as t,x as f}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,c){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])]),_:1}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{N as default}; +import{V as l}from"./VehicleConfiguration-TZSwJptx.js";import{_ as u,l as a,k as p,e as m,m as i,q as r,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,c){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])]),_:1}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-BPW3tNQi.js b/web/settings/assets/vehicle-CYTzHFS6.js similarity index 85% rename from web/settings/assets/vehicle-BPW3tNQi.js rename to web/settings/assets/vehicle-CYTzHFS6.js index 2758e1ae08..0fa08fcc3a 100644 --- a/web/settings/assets/vehicle-BPW3tNQi.js +++ b/web/settings/assets/vehicle-CYTzHFS6.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfiguration--T3YyIjm.js";import{_ as d,l,k as s,e as p,m as n,q as m,A as a,x as v}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>[...e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])]),_:1}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const B=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{B as default}; +import{V as u}from"./VehicleConfiguration-TZSwJptx.js";import{_ as d,l,k as s,e as p,m as n,q as m,A as a,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>[...e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])]),_:1}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const B=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-B75xZfr2.js b/web/settings/assets/vehicle-CeWm61bY.js similarity index 89% rename from web/settings/assets/vehicle-B75xZfr2.js rename to web/settings/assets/vehicle-CeWm61bY.js index 5e7a747b3d..b6d0f4b37c 100644 --- a/web/settings/assets/vehicle-B75xZfr2.js +++ b/web/settings/assets/vehicle-CeWm61bY.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfiguration--T3YyIjm.js";import{_ as b,l as s,k as g,e as v,m as i,q as o,A as n,x as u,J as _}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),v("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>[...e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>[...e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>[...e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(_(r.callback_url),1)]),_:1})]),_:1}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>[...e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Mercedes mit Deinen Zugangsdaten anmelden kannst.",-1),u("br",null,null,-1)])]),_:1},8,["disabled","onButtonClicked"])])}const $=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{$ as default}; +import{V as m}from"./VehicleConfiguration-TZSwJptx.js";import{_ as b,l as s,k as g,e as v,m as i,q as o,A as n,x as u,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),v("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>[...e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>[...e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>[...e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(_(r.callback_url),1)]),_:1})]),_:1}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>[...e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Mercedes mit Deinen Zugangsdaten anmelden kannst.",-1),u("br",null,null,-1)])]),_:1},8,["disabled","onButtonClicked"])])}const $=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-C8g_PIkP.js b/web/settings/assets/vehicle-CiPbB9w2.js similarity index 89% rename from web/settings/assets/vehicle-C8g_PIkP.js rename to web/settings/assets/vehicle-CiPbB9w2.js index d4785b9a2c..7453198072 100644 --- a/web/settings/assets/vehicle-C8g_PIkP.js +++ b/web/settings/assets/vehicle-CiPbB9w2.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfiguration--T3YyIjm.js";import{_ as p,l as u,k as m,e as v,m as t,q as l,A as o,x as i}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=u("openwb-base-alert"),s=u("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])]),_:1}),t(s,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>[...e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])]),_:1},8,["model-value"]),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>[...e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>[...e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>[...e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])]),_:1},8,["model-value"])])}const _=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{_ as default}; +import{V as a}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as u,k as m,e as v,m as t,q as l,A as o,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=u("openwb-base-alert"),s=u("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])]),_:1}),t(s,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>[...e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])]),_:1},8,["model-value"]),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>[...e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>[...e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>[...e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])]),_:1},8,["model-value"])])}const _=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{_ as default}; diff --git a/web/settings/assets/vehicle-CzbURT4N.js b/web/settings/assets/vehicle-CoVie7os.js similarity index 94% rename from web/settings/assets/vehicle-CzbURT4N.js rename to web/settings/assets/vehicle-CoVie7os.js index 298b71efbe..4631485b5f 100644 --- a/web/settings/assets/vehicle-CzbURT4N.js +++ b/web/settings/assets/vehicle-CoVie7os.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfiguration--T3YyIjm.js";import{_ as p,l as s,k as g,e as b,m as r,q as i,A as n,x as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>[...e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>[...e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>[...e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>[...e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])]),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>[...e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>[...e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])]),_:1},8,["model-value"])])}const y=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{y as default}; +import{V as m}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as s,k as g,e as b,m as r,q as i,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>[...e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>[...e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>[...e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>[...e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])]),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>[...e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>[...e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])]),_:1},8,["model-value"])])}const y=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vehicle-4ooF7u3O.js b/web/settings/assets/vehicle-Qsp1JuH6.js similarity index 82% rename from web/settings/assets/vehicle-4ooF7u3O.js rename to web/settings/assets/vehicle-Qsp1JuH6.js index 311e1eaf9b..21fa39ce6a 100644 --- a/web/settings/assets/vehicle-4ooF7u3O.js +++ b/web/settings/assets/vehicle-Qsp1JuH6.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfiguration--T3YyIjm.js";import{_ as u,l as s,k as d,e as p,m as t,q as r,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocKia",mixins:[a]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>[...e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const U=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{U as default}; +import{V as a}from"./VehicleConfiguration-TZSwJptx.js";import{_ as u,l as s,k as d,e as p,m as t,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocKia",mixins:[a]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>[...e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const U=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-Byenkt0o.js b/web/settings/assets/vehicle-TwRWpbVJ.js similarity index 85% rename from web/settings/assets/vehicle-Byenkt0o.js rename to web/settings/assets/vehicle-TwRWpbVJ.js index 65baf908be..df770388f1 100644 --- a/web/settings/assets/vehicle-Byenkt0o.js +++ b/web/settings/assets/vehicle-TwRWpbVJ.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfiguration--T3YyIjm.js";import{_ as p,l as a,k as m,e as f,m as r,q as t,A as i}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>[...e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])]),_:1}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>[...e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])]),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>[...e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])]),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>[...e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])]),_:1},8,["model-value"])])}const x=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{x as default}; +import{V as l}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as a,k as m,e as f,m as r,q as t,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>[...e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])]),_:1}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>[...e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])]),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>[...e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])]),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>[...e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])]),_:1},8,["model-value"])])}const x=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{x as default}; diff --git a/web/settings/assets/vehicle-DqI_P0GO.js b/web/settings/assets/vehicle-bxge8VZs.js similarity index 84% rename from web/settings/assets/vehicle-DqI_P0GO.js rename to web/settings/assets/vehicle-bxge8VZs.js index c4be4e28d4..065326b878 100644 --- a/web/settings/assets/vehicle-DqI_P0GO.js +++ b/web/settings/assets/vehicle-bxge8VZs.js @@ -1 +1 @@ -import{V as s}from"./VehicleConfiguration--T3YyIjm.js";import{_ as d,l as a,k as p,e as m,m as o,q as i,A as r}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"VehicleSocHttp",mixins:[s]},g={class:"vehicle-soc-http"};function b(t,e,v,f,h,w){const l=a("openwb-base-text-input"),u=a("openwb-base-button-group-input");return p(),m("div",g,[o(l,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.soc_url"))},{help:i(()=>[...e[3]||(e[3]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.range_url"))},{help:i(()=>[...e[4]||(e[4]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:i(()=>[...e[5]||(e[5]=[r(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const B=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{B as default}; +import{V as s}from"./VehicleConfiguration-TZSwJptx.js";import{_ as d,l as a,k as p,e as m,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"VehicleSocHttp",mixins:[s]},g={class:"vehicle-soc-http"};function b(t,e,v,f,h,w){const l=a("openwb-base-text-input"),u=a("openwb-base-button-group-input");return p(),m("div",g,[o(l,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.soc_url"))},{help:i(()=>[...e[3]||(e[3]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.range_url"))},{help:i(()=>[...e[4]||(e[4]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:i(()=>[...e[5]||(e[5]=[r(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const B=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-C4ht6hjr.js b/web/settings/assets/vehicle-mz1O0JRs.js similarity index 77% rename from web/settings/assets/vehicle-C4ht6hjr.js rename to web/settings/assets/vehicle-mz1O0JRs.js index 5177dcd153..0a91b167b7 100644 --- a/web/settings/assets/vehicle-C4ht6hjr.js +++ b/web/settings/assets/vehicle-mz1O0JRs.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfiguration--T3YyIjm.js";import{_ as l,l as s,k as a,e as u,m as i,q as p,A as d}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>[...e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const $=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{$ as default}; +import{V as r}from"./VehicleConfiguration-TZSwJptx.js";import{_ as l,l as s,k as a,e as u,m as i,q as p,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>[...e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const $=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-SqSIcJkM.js b/web/settings/assets/vehicle-uzGGKIpS.js similarity index 92% rename from web/settings/assets/vehicle-SqSIcJkM.js rename to web/settings/assets/vehicle-uzGGKIpS.js index f03df96b77..c04b7fb0cd 100644 --- a/web/settings/assets/vehicle-SqSIcJkM.js +++ b/web/settings/assets/vehicle-uzGGKIpS.js @@ -1 +1 @@ -import{V as d}from"./VehicleConfiguration--T3YyIjm.js";import{_ as p,l as r,k as m,e as g,m as o,q as l,A as i,x as u}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocHomeAssistant",mixins:[d]},b={class:"vehicle-soc-homeassistant"};function v(t,e,w,h,D,C){const s=r("openwb-base-text-input"),a=r("openwb-base-button-group-input");return m(),g("div",b,[o(s,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.url"))},{help:l(()=>[...e[6]||(e[6]=[i(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen und idealerweise Port. Beispiel: http://192.168.1.1:8123 ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Token",subtype:"text",required:"","model-value":t.vehicle.configuration.token,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.token"))},{help:l(()=>[...e[7]||(e[7]=[i(" Das Token kann in HomeAssistant hier erstellt werden:",-1),u("br",null,null,-1),i(" „Dein Profil“ → oberer Reiter „Sicherheit“ → ganz unten „Langlebiges Zugriffstoken erstellen“ ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.entity_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.entity_soc"))},{help:l(()=>[...e[8]||(e[8]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Reichweite",subtype:"text","model-value":t.vehicle.configuration.entity_range,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.entity_range"))},{help:l(()=>[...e[9]||(e[9]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Kilometerstand",subtype:"text","model-value":t.vehicle.configuration.entity_odometer,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.entity_odometer"))},{help:l(()=>[...e[10]||(e[10]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(a,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:l(()=>[...e[11]||(e[11]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),u("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const A=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/homeassistant/vehicle.vue"]]);export{A as default}; +import{V as d}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as r,k as m,e as g,m as o,q as l,A as i,x as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocHomeAssistant",mixins:[d]},b={class:"vehicle-soc-homeassistant"};function v(t,e,w,h,D,C){const s=r("openwb-base-text-input"),a=r("openwb-base-button-group-input");return m(),g("div",b,[o(s,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.url"))},{help:l(()=>[...e[6]||(e[6]=[i(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen und idealerweise Port. Beispiel: http://192.168.1.1:8123 ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Token",subtype:"text",required:"","model-value":t.vehicle.configuration.token,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.token"))},{help:l(()=>[...e[7]||(e[7]=[i(" Das Token kann in HomeAssistant hier erstellt werden:",-1),u("br",null,null,-1),i(" „Dein Profil“ → oberer Reiter „Sicherheit“ → ganz unten „Langlebiges Zugriffstoken erstellen“ ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.entity_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.entity_soc"))},{help:l(()=>[...e[8]||(e[8]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Reichweite",subtype:"text","model-value":t.vehicle.configuration.entity_range,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.entity_range"))},{help:l(()=>[...e[9]||(e[9]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Kilometerstand",subtype:"text","model-value":t.vehicle.configuration.entity_odometer,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.entity_odometer"))},{help:l(()=>[...e[10]||(e[10]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(a,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:l(()=>[...e[11]||(e[11]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),u("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const A=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/homeassistant/vehicle.vue"]]);export{A as default}; diff --git a/web/settings/assets/vehicle-CIkD544B.js b/web/settings/assets/vehicle-wE-5x93X.js similarity index 82% rename from web/settings/assets/vehicle-CIkD544B.js rename to web/settings/assets/vehicle-wE-5x93X.js index 59322a5067..aa16739759 100644 --- a/web/settings/assets/vehicle-CIkD544B.js +++ b/web/settings/assets/vehicle-wE-5x93X.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfiguration--T3YyIjm.js";import{_ as a,l as s,k as d,e as p,m as i,q as r,A as l}from"./vendor-JxinjXxC.js";import"./vendor-fortawesome-DD1DIYBi.js";import"./index-BBXHIMfY.js";import"./vendor-bootstrap-BTTEOGLM.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-CL9DOa3h.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>[...e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const A=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{A as default}; +import{V as u}from"./VehicleConfiguration-TZSwJptx.js";import{_ as a,l as s,k as d,e as p,m as i,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>[...e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const A=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{A as default}; diff --git a/web/settings/assets/vendor-JxinjXxC.js b/web/settings/assets/vendor-Bo8v-nQD.js similarity index 61% rename from web/settings/assets/vendor-JxinjXxC.js rename to web/settings/assets/vendor-Bo8v-nQD.js index 294f077f68..8e6d2c5947 100644 --- a/web/settings/assets/vendor-JxinjXxC.js +++ b/web/settings/assets/vendor-Bo8v-nQD.js @@ -1,94 +1,94 @@ const global$2=globalThis||void 0||self,global$1=typeof global$2<"u"?global$2:typeof self<"u"?self:typeof window<"u"?window:{};function makeMap(e){const t=Object.create(null);for(const r of e.split(","))t[r]=1;return r=>r in t}const EMPTY_OBJ=Object.freeze({}),EMPTY_ARR=Object.freeze([]),NOOP=()=>{},NO=()=>!1,isOn=e=>e.charCodeAt(0)===111&&e.charCodeAt(1)===110&&(e.charCodeAt(2)>122||e.charCodeAt(2)<97),isModelListener=e=>e.startsWith("onUpdate:"),extend$1=Object.assign,remove=(e,t)=>{const r=e.indexOf(t);r>-1&&e.splice(r,1)},hasOwnProperty$1=Object.prototype.hasOwnProperty,hasOwn=(e,t)=>hasOwnProperty$1.call(e,t),isArray$3=Array.isArray,isMap$1=e=>toTypeString(e)==="[object Map]",isSet$1=e=>toTypeString(e)==="[object Set]",isDate$1=e=>toTypeString(e)==="[object Date]",isRegExp$1=e=>toTypeString(e)==="[object RegExp]",isFunction$1=e=>typeof e=="function",isString$1=e=>typeof e=="string",isSymbol$1=e=>typeof e=="symbol",isObject$2=e=>e!==null&&typeof e=="object",isPromise$1=e=>(isObject$2(e)||isFunction$1(e))&&isFunction$1(e.then)&&isFunction$1(e.catch),objectToString=Object.prototype.toString,toTypeString=e=>objectToString.call(e),toRawType=e=>toTypeString(e).slice(8,-1),isPlainObject=e=>toTypeString(e)==="[object Object]",isIntegerKey=e=>isString$1(e)&&e!=="NaN"&&e[0]!=="-"&&""+parseInt(e,10)===e,isReservedProp=makeMap(",key,ref,ref_for,ref_key,onVnodeBeforeMount,onVnodeMounted,onVnodeBeforeUpdate,onVnodeUpdated,onVnodeBeforeUnmount,onVnodeUnmounted"),isBuiltInDirective=makeMap("bind,cloak,else-if,else,for,html,if,model,on,once,pre,show,slot,text,memo"),cacheStringFunction=e=>{const t=Object.create(null);return(r=>t[r]||(t[r]=e(r)))},camelizeRE=/-\w/g,camelize=cacheStringFunction(e=>e.replace(camelizeRE,t=>t.slice(1).toUpperCase())),hyphenateRE=/\B([A-Z])/g,hyphenate=cacheStringFunction(e=>e.replace(hyphenateRE,"-$1").toLowerCase()),capitalize=cacheStringFunction(e=>e.charAt(0).toUpperCase()+e.slice(1)),toHandlerKey=cacheStringFunction(e=>e?`on${capitalize(e)}`:""),hasChanged=(e,t)=>!Object.is(e,t),invokeArrayFns=(e,...t)=>{for(let r=0;r{Object.defineProperty(e,t,{configurable:!0,enumerable:!1,writable:o,value:r})},looseToNumber=e=>{const t=parseFloat(e);return isNaN(t)?e:t},toNumber=e=>{const t=isString$1(e)?Number(e):NaN;return isNaN(t)?e:t};let _globalThis$1;const getGlobalThis=()=>_globalThis$1||(_globalThis$1=typeof globalThis<"u"?globalThis:typeof self<"u"?self:typeof window<"u"?window:typeof global$1<"u"?global$1:{}),identRE=/^[_$a-zA-Z\xA0-\uFFFF][_$a-zA-Z0-9\xA0-\uFFFF]*$/;function genPropsAccessExp(e){return identRE.test(e)?`__props.${e}`:`__props[${JSON.stringify(e)}]`}function genCacheKey(e,t){return e+JSON.stringify(t,(r,o)=>typeof o=="function"?o.toString():o)}const PatchFlags={TEXT:1,1:"TEXT",CLASS:2,2:"CLASS",STYLE:4,4:"STYLE",PROPS:8,8:"PROPS",FULL_PROPS:16,16:"FULL_PROPS",NEED_HYDRATION:32,32:"NEED_HYDRATION",STABLE_FRAGMENT:64,64:"STABLE_FRAGMENT",KEYED_FRAGMENT:128,128:"KEYED_FRAGMENT",UNKEYED_FRAGMENT:256,256:"UNKEYED_FRAGMENT",NEED_PATCH:512,512:"NEED_PATCH",DYNAMIC_SLOTS:1024,1024:"DYNAMIC_SLOTS",DEV_ROOT_FRAGMENT:2048,2048:"DEV_ROOT_FRAGMENT",CACHED:-1,"-1":"CACHED",BAIL:-2,"-2":"BAIL"},PatchFlagNames={1:"TEXT",2:"CLASS",4:"STYLE",8:"PROPS",16:"FULL_PROPS",32:"NEED_HYDRATION",64:"STABLE_FRAGMENT",128:"KEYED_FRAGMENT",256:"UNKEYED_FRAGMENT",512:"NEED_PATCH",1024:"DYNAMIC_SLOTS",2048:"DEV_ROOT_FRAGMENT",[-1]:"CACHED",[-2]:"BAIL"},ShapeFlags={ELEMENT:1,1:"ELEMENT",FUNCTIONAL_COMPONENT:2,2:"FUNCTIONAL_COMPONENT",STATEFUL_COMPONENT:4,4:"STATEFUL_COMPONENT",TEXT_CHILDREN:8,8:"TEXT_CHILDREN",ARRAY_CHILDREN:16,16:"ARRAY_CHILDREN",SLOTS_CHILDREN:32,32:"SLOTS_CHILDREN",TELEPORT:64,64:"TELEPORT",SUSPENSE:128,128:"SUSPENSE",COMPONENT_SHOULD_KEEP_ALIVE:256,256:"COMPONENT_SHOULD_KEEP_ALIVE",COMPONENT_KEPT_ALIVE:512,512:"COMPONENT_KEPT_ALIVE",COMPONENT:6,6:"COMPONENT"},SlotFlags={STABLE:1,1:"STABLE",DYNAMIC:2,2:"DYNAMIC",FORWARDED:3,3:"FORWARDED"},slotFlagsText={1:"STABLE",2:"DYNAMIC",3:"FORWARDED"},GLOBALS_ALLOWED="Infinity,undefined,NaN,isFinite,isNaN,parseFloat,parseInt,decodeURI,decodeURIComponent,encodeURI,encodeURIComponent,Math,Number,Date,Array,Object,Boolean,String,RegExp,Map,Set,JSON,Intl,BigInt,console,Error,Symbol",isGloballyAllowed=makeMap(GLOBALS_ALLOWED),isGloballyWhitelisted=isGloballyAllowed,range$2=2;function generateCodeFrame(e,t=0,r=e.length){if(t=Math.max(0,Math.min(t,e.length)),r=Math.max(0,Math.min(r,e.length)),t>r)return"";let o=e.split(/(\r?\n)/);const l=o.filter((f,d)=>d%2===1);o=o.filter((f,d)=>d%2===0);let n=0;const s=[];for(let f=0;f=t){for(let d=f-range$2;d<=f+range$2||r>n;d++){if(d<0||d>=o.length)continue;const m=d+1;s.push(`${m}${" ".repeat(Math.max(3-String(m).length,0))}| ${o[d]}`);const g=o[d].length,y=l[d]&&l[d].length||0;if(d===f){const _=t-(n-(g+y)),w=Math.max(1,r>n?g-_:r-t);s.push(" | "+" ".repeat(_)+"^".repeat(w))}else if(d>f){if(r>n){const _=Math.max(Math.min(r-n,g),1);s.push(" | "+"^".repeat(_))}n+=g+y}}break}return s.join(` -`)}function normalizeStyle(e){if(isArray$3(e)){const t={};for(let r=0;r{if(r){const o=r.split(propertyDelimiterRE);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function stringifyStyle(e){if(!e)return"";if(isString$1(e))return e;let t="";for(const r in e){const o=e[r];if(isString$1(o)||typeof o=="number"){const l=r.startsWith("--")?r:hyphenate(r);t+=`${l}:${o};`}}return t}function normalizeClass(e){let t="";if(isString$1(e))t=e;else if(isArray$3(e))for(let r=0;r/="'\u0009\u000a\u000c\u0020]/,attrValidationCache={};function isSSRSafeAttrName(e){if(attrValidationCache.hasOwnProperty(e))return attrValidationCache[e];const t=unsafeAttrCharRE.test(e);return t&&console.error(`unsafe attribute name: ${e}`),attrValidationCache[e]=!t}const propsToAttrMap={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},isKnownHtmlAttr=makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),isKnownSvgAttr=makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan"),isKnownMathMLAttr=makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");function isRenderableAttrValue(e){if(e==null)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"}const escapeRE=/["'&<>]/;function escapeHtml(e){const t=""+e,r=escapeRE.exec(t);if(!r)return t;let o="",l,n,s=0;for(n=r.index;n||--!>|?@[\\\]^`{|}~]/g;function getEscapedCssVarName(e,t){return e.replace(cssVarNameEscapeSymbolsRE,r=>t?r==='"'?'\\\\\\"':`\\\\${r}`:`\\${r}`)}function looseCompareArrays(e,t){if(e.length!==t.length)return!1;let r=!0;for(let o=0;r&&olooseEqual(r,t))}const isRef$2=e=>!!(e&&e.__v_isRef===!0),toDisplayString=e=>isString$1(e)?e:e==null?"":isArray$3(e)||isObject$2(e)&&(e.toString===objectToString||!isFunction$1(e.toString))?isRef$2(e)?toDisplayString(e.value):JSON.stringify(e,replacer,2):String(e),replacer=(e,t)=>isRef$2(t)?replacer(e,t.value):isMap$1(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[o,l],n)=>(r[stringifySymbol(o,n)+" =>"]=l,r),{})}:isSet$1(t)?{[`Set(${t.size})`]:[...t.values()].map(r=>stringifySymbol(r))}:isSymbol$1(t)?stringifySymbol(t):isObject$2(t)&&!isArray$3(t)&&!isPlainObject(t)?String(t):t,stringifySymbol=(e,t="")=>{var r;return isSymbol$1(e)?`Symbol(${(r=e.description)!=null?r:t})`:e};function normalizeCssVarValue(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:((typeof e!="number"||!Number.isFinite(e))&&console.warn("[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:",e),String(e))}const shared_esmBundler=Object.freeze(Object.defineProperty({__proto__:null,EMPTY_ARR,EMPTY_OBJ,NO,NOOP,PatchFlagNames,PatchFlags,ShapeFlags,SlotFlags,camelize,capitalize,cssVarNameEscapeSymbolsRE,def,escapeHtml,escapeHtmlComment,extend:extend$1,genCacheKey,genPropsAccessExp,generateCodeFrame,getEscapedCssVarName,getGlobalThis,hasChanged,hasOwn,hyphenate,includeBooleanAttr,invokeArrayFns,isArray:isArray$3,isBooleanAttr,isBuiltInDirective,isDate:isDate$1,isFunction:isFunction$1,isGloballyAllowed,isGloballyWhitelisted,isHTMLTag,isIntegerKey,isKnownHtmlAttr,isKnownMathMLAttr,isKnownSvgAttr,isMap:isMap$1,isMathMLTag,isModelListener,isObject:isObject$2,isOn,isPlainObject,isPromise:isPromise$1,isRegExp:isRegExp$1,isRenderableAttrValue,isReservedProp,isSSRSafeAttrName,isSVGTag,isSet:isSet$1,isSpecialBooleanAttr,isString:isString$1,isSymbol:isSymbol$1,isVoidTag,looseEqual,looseIndexOf,looseToNumber,makeMap,normalizeClass,normalizeCssVarValue,normalizeProps,normalizeStyle,objectToString,parseStringStyle,propsToAttrMap,remove,slotFlagsText,stringifyStyle,toDisplayString,toHandlerKey,toNumber,toRawType,toTypeString},Symbol.toStringTag,{value:"Module"}));function warn$2(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let activeEffectScope;class EffectScope{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=activeEffectScope,!t&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,r;if(this.scopes)for(t=0,r=this.scopes.length;t0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let r,o;for(r=0,o=this.effects.length;r0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const r=t.next;t.next=void 0,t.flags&=-9,t=r}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const r=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=r}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,r=e.depsTail,o=r;for(;o;){const l=o.prevDep;o.version===-1?(o===r&&(r=l),removeSub(o),removeDep(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=l}e.deps=t,e.depsTail=r}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion)||(e.globalVersion=globalVersion,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!isDirty(e))))return;e.flags|=2;const t=e.dep,r=activeSub,o=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const l=e.fn(e._value);(t.version===0||hasChanged(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{activeSub=r,shouldTrack=o,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:r,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),r.subsHead===e&&(r.subsHead=l),r.subs===e&&(r.subs=o,!o&&r.computed)){r.computed.flags&=-5;for(let n=r.computed.deps;n;n=n.nextDep)removeSub(n,!0)}!t&&!--r.sc&&r.map&&r.map.delete(r.key)}function removeDep(e){const{prevDep:t,nextDep:r}=e;t&&(t.nextDep=r,e.prevDep=void 0),r&&(r.prevDep=t,e.nextDep=void 0)}function effect(e,t){e.effect instanceof ReactiveEffect&&(e=e.effect.fn);const r=new ReactiveEffect(e);t&&extend$1(r,t);try{r.run()}catch(l){throw r.stop(),l}const o=r.run.bind(r);return o.effect=r,o}function stop(e){e.effect.stop()}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const r=activeSub;activeSub=void 0;try{t()}finally{activeSub=r}}}let globalVersion=0;class Link{constructor(t,r){this.sub=t,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==activeSub)r=this.activeLink=new Link(activeSub,this),activeSub.deps?(r.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=r,activeSub.depsTail=r):activeSub.deps=activeSub.depsTail=r,addSub(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const o=r.nextDep;o.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=o),r.prevDep=activeSub.depsTail,r.nextDep=void 0,activeSub.depsTail.nextDep=r,activeSub.depsTail=r,activeSub.deps===r&&(activeSub.deps=o)}return activeSub.onTrack&&activeSub.onTrack(extend$1({effect:activeSub},t)),r}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let r=this.subsHead;r;r=r.nextSub)r.sub.onTrigger&&!(r.sub.flags&8)&&r.sub.onTrigger(extend$1({effect:r.sub},t));for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)addSub(o)}const r=e.dep.subs;r!==e&&(e.prevSub=r,r&&(r.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol("Object iterate"),MAP_KEY_ITERATE_KEY=Symbol("Map keys iterate"),ARRAY_ITERATE_KEY=Symbol("Array iterate");function track(e,t,r){if(shouldTrack&&activeSub){let o=targetMap.get(e);o||targetMap.set(e,o=new Map);let l=o.get(r);l||(o.set(r,l=new Dep),l.map=o,l.key=r),l.track({target:e,type:t,key:r})}}function trigger(e,t,r,o,l,n){const s=targetMap.get(e);if(!s){globalVersion++;return}const f=d=>{d&&d.trigger({target:e,type:t,key:r,newValue:o,oldValue:l,oldTarget:n})};if(startBatch(),t==="clear")s.forEach(f);else{const d=isArray$3(e),m=d&&isIntegerKey(r);if(d&&r==="length"){const g=Number(o);s.forEach((y,_)=>{(_==="length"||_===ARRAY_ITERATE_KEY||!isSymbol$1(_)&&_>=g)&&f(y)})}else switch((r!==void 0||s.has(void 0))&&f(s.get(r)),m&&f(s.get(ARRAY_ITERATE_KEY)),t){case"add":d?m&&f(s.get("length")):(f(s.get(ITERATE_KEY)),isMap$1(e)&&f(s.get(MAP_KEY_ITERATE_KEY)));break;case"delete":d||(f(s.get(ITERATE_KEY)),isMap$1(e)&&f(s.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$1(e)&&f(s.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const r=targetMap.get(e);return r&&r.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}function toWrapped(e,t){return isReadonly$1(e)?toReadonly(isReactive(e)?toReactive(t):t):toReactive(t)}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator(this,Symbol.iterator,e=>toWrapped(this,e))},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$3(t)?reactiveReadArray(t):t))},entries(){return iterator(this,"entries",e=>(e[1]=toWrapped(this,e[1]),e))},every(e,t){return apply(this,"every",e,t,void 0,arguments)},filter(e,t){return apply(this,"filter",e,t,r=>r.map(o=>toWrapped(this,o)),arguments)},find(e,t){return apply(this,"find",e,t,r=>toWrapped(this,r),arguments)},findIndex(e,t){return apply(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply(this,"findLast",e,t,r=>toWrapped(this,r),arguments)},findLastIndex(e,t){return apply(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator(this,"values",e=>toWrapped(this,e))}};function iterator(e,t,r){const o=shallowReadArray(e),l=o[t]();return o!==e&&!isShallow(e)&&(l._next=l.next,l.next=()=>{const n=l._next();return n.done||(n.value=r(n.value)),n}),l}const arrayProto=Array.prototype;function apply(e,t,r,o,l,n){const s=shallowReadArray(e),f=s!==e&&!isShallow(e),d=s[t];if(d!==arrayProto[t]){const y=d.apply(e,n);return f?toReactive(y):y}let m=r;s!==e&&(f?m=function(y,_){return r.call(this,toWrapped(e,y),_,e)}:r.length>2&&(m=function(y,_){return r.call(this,y,_,e)}));const g=d.call(s,m,o);return f&&l?l(g):g}function reduce(e,t,r,o){const l=shallowReadArray(e),n=l!==e&&!isShallow(e);let s=r,f=!1;l!==e&&(n?(f=o.length===0,s=function(m,g,y){return f&&(f=!1,m=toWrapped(e,m)),r.call(this,m,toWrapped(e,g),y,e)}):r.length>3&&(s=function(m,g,y){return r.call(this,m,g,y,e)}));const d=l[t](s,...o);return f?toWrapped(e,d):d}function searchProxy(e,t,r){const o=toRaw(e);track(o,"iterate",ARRAY_ITERATE_KEY);const l=o[t](...r);return(l===-1||l===!1)&&isProxy(r[0])?(r[0]=toRaw(r[0]),o[t](...r)):l}function noTracking(e,t,r=[]){pauseTracking(),startBatch();const o=toRaw(e)[t].apply(e,r);return endBatch(),resetTracking(),o}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol$1));function hasOwnProperty(e){isSymbol$1(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,r=!1){this._isReadonly=t,this._isShallow=r}get(t,r,o){if(r==="__v_skip")return t.__v_skip;const l=this._isReadonly,n=this._isShallow;if(r==="__v_isReactive")return!l;if(r==="__v_isReadonly")return l;if(r==="__v_isShallow")return n;if(r==="__v_raw")return o===(l?n?shallowReadonlyMap:readonlyMap:n?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const s=isArray$3(t);if(!l){let d;if(s&&(d=arrayInstrumentations[r]))return d;if(r==="hasOwnProperty")return hasOwnProperty}const f=Reflect.get(t,r,isRef(t)?t:o);if((isSymbol$1(r)?builtInSymbols.has(r):isNonTrackableKeys(r))||(l||track(t,"get",r),n))return f;if(isRef(f)){const d=s&&isIntegerKey(r)?f:f.value;return l&&isObject$2(d)?readonly(d):d}return isObject$2(f)?l?readonly(f):reactive(f):f}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,r,o,l){let n=t[r];const s=isArray$3(t)&&isIntegerKey(r);if(!this._isShallow){const m=isReadonly$1(n);if(!isShallow(o)&&!isReadonly$1(o)&&(n=toRaw(n),o=toRaw(o)),!s&&isRef(n)&&!isRef(o))return m?(warn$2(`Set operation on key "${String(r)}" failed: target is readonly.`,t[r]),!0):(n.value=o,!0)}const f=s?Number(r)e,getProto$1=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,r){return function(...o){const l=this.__v_raw,n=toRaw(l),s=isMap$1(n),f=e==="entries"||e===Symbol.iterator&&s,d=e==="keys"&&s,m=l[e](...o),g=r?toShallow:t?toReadonly:toReactive;return!t&&track(n,"iterate",d?MAP_KEY_ITERATE_KEY:ITERATE_KEY),extend$1(Object.create(m),{next(){const{value:y,done:_}=m.next();return _?{value:y,done:_}:{value:f?[g(y[0]),g(y[1])]:g(y),done:_}}})}}function createReadonlyMethod(e){return function(...t){{const r=t[0]?`on key "${t[0]}" `:"";warn$2(`${capitalize(e)} operation ${r}failed: target is readonly.`,toRaw(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const r={get(l){const n=this.__v_raw,s=toRaw(n),f=toRaw(l);e||(hasChanged(l,f)&&track(s,"get",l),track(s,"get",f));const{has:d}=getProto$1(s),m=t?toShallow:e?toReadonly:toReactive;if(d.call(s,l))return m(n.get(l));if(d.call(s,f))return m(n.get(f));n!==s&&n.get(l)},get size(){const l=this.__v_raw;return!e&&track(toRaw(l),"iterate",ITERATE_KEY),l.size},has(l){const n=this.__v_raw,s=toRaw(n),f=toRaw(l);return e||(hasChanged(l,f)&&track(s,"has",l),track(s,"has",f)),l===f?n.has(l):n.has(l)||n.has(f)},forEach(l,n){const s=this,f=s.__v_raw,d=toRaw(f),m=t?toShallow:e?toReadonly:toReactive;return!e&&track(d,"iterate",ITERATE_KEY),f.forEach((g,y)=>l.call(n,m(g),m(y),s))}};return extend$1(r,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(l){const n=toRaw(this),s=getProto$1(n),f=toRaw(l),d=!t&&!isShallow(l)&&!isReadonly$1(l)?f:l;return s.has.call(n,d)||hasChanged(l,d)&&s.has.call(n,l)||hasChanged(f,d)&&s.has.call(n,f)||(n.add(d),trigger(n,"add",d,d)),this},set(l,n){!t&&!isShallow(n)&&!isReadonly$1(n)&&(n=toRaw(n));const s=toRaw(this),{has:f,get:d}=getProto$1(s);let m=f.call(s,l);m?checkIdentityKeys(s,f,l):(l=toRaw(l),m=f.call(s,l));const g=d.call(s,l);return s.set(l,n),m?hasChanged(n,g)&&trigger(s,"set",l,n,g):trigger(s,"add",l,n),this},delete(l){const n=toRaw(this),{has:s,get:f}=getProto$1(n);let d=s.call(n,l);d?checkIdentityKeys(n,s,l):(l=toRaw(l),d=s.call(n,l));const m=f?f.call(n,l):void 0,g=n.delete(l);return d&&trigger(n,"delete",l,void 0,m),g},clear(){const l=toRaw(this),n=l.size!==0,s=isMap$1(l)?new Map(l):new Set(l),f=l.clear();return n&&trigger(l,"clear",void 0,void 0,s),f}}),["keys","values","entries",Symbol.iterator].forEach(l=>{r[l]=createIterableMethod(l,e,t)}),r}function createInstrumentationGetter(e,t){const r=createInstrumentations(e,t);return(o,l,n)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(hasOwn(r,l)&&l in o?r:o,l,n)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)};function checkIdentityKeys(e,t,r){const o=toRaw(r);if(o!==r&&t.call(e,o)){const l=toRawType(e);warn$2(`Reactive ${l} contains both the raw and reactive versions of the same object${l==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly$1(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,r,o,l){if(!isObject$2(e))return warn$2(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const n=getTargetType(e);if(n===0)return e;const s=l.get(e);if(s)return s;const f=new Proxy(e,n===2?o:r);return l.set(e,f),f}function isReactive(e){return isReadonly$1(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly$1(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$2(e)?reactive(e):e,toReadonly=e=>isObject$2(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref$1(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,r){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?t:toRaw(t),this._value=r?t:toReactive(t),this.__v_isShallow=r}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(t){const r=this._rawValue,o=this.__v_isShallow||isShallow(t)||isReadonly$1(t);t=o?t:toRaw(t),hasChanged(t,r)&&(this._rawValue=t,this._value=o?t:toReactive(t),this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:r}))}}function triggerRef(e){e.dep&&e.dep.trigger({target:e,type:"set",key:"value",newValue:e._value})}function unref(e){return isRef(e)?e.value:e}function toValue$1(e){return isFunction$1(e)?e():unref(e)}const shallowUnwrapHandlers={get:(e,t,r)=>t==="__v_raw"?e:unref(Reflect.get(e,t,r)),set:(e,t,r,o)=>{const l=e[t];return isRef(l)&&!isRef(r)?(l.value=r,!0):Reflect.set(e,t,r,o)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(t){this.__v_isRef=!0,this._value=void 0;const r=this.dep=new Dep,{get:o,set:l}=t(r.track.bind(r),r.trigger.bind(r));this._get=o,this._set=l}get value(){return this._value=this._get()}set value(t){this._set(t)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){isProxy(e)||warn$2("toRefs() expects a reactive object but received a plain one.");const t=isArray$3(e)?new Array(e.length):{};for(const r in e)t[r]=propertyToRef(e,r);return t}class ObjectRefImpl{constructor(t,r,o){this._object=t,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._key=isSymbol$1(r)?r:String(r),this._raw=toRaw(t);let l=!0,n=t;if(!isArray$3(t)||isSymbol$1(this._key)||!isIntegerKey(this._key))do l=!isProxy(n)||isShallow(n);while(l&&(n=n.__v_raw));this._shallow=l}get value(){let t=this._object[this._key];return this._shallow&&(t=unref(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&isRef(this._raw[this._key])){const r=this._object[this._key];if(isRef(r)){r.value=t;return}}this._object[this._key]=t}get dep(){return getDepFromReactive(this._raw,this._key)}}class GetterRefImpl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef(e,t,r){return isRef(e)?e:isFunction$1(e)?new GetterRefImpl(e):isObject$2(e)&&arguments.length>1?propertyToRef(e,t,r):ref$1(e)}function propertyToRef(e,t,r){return new ObjectRefImpl(e,t,r)}class ComputedRefImpl{constructor(t,r,o){this.fn=t,this.setter=r,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track({target:this,type:"get",key:"value"});return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):warn$2("Write operation failed: computed value is readonly")}}function computed$1(e,t,r=!1){let o,l;isFunction$1(e)?o=e:(o=e.get,l=e.set);const n=new ComputedRefImpl(o,l,r);return t&&!r&&(n.onTrack=t.onTrack,n.onTrigger=t.onTrigger),n}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(e,t=!1,r=activeWatcher){if(r){let o=cleanupMap.get(r);o||cleanupMap.set(r,o=[]),o.push(e)}else t||warn$2("onWatcherCleanup() was called when there was no active watcher to associate with.")}function watch$1(e,t,r=EMPTY_OBJ){const{immediate:o,deep:l,once:n,scheduler:s,augmentJob:f,call:d}=r,m=q=>{(r.onWarn||warn$2)("Invalid watch source: ",q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},g=q=>l?q:isShallow(q)||l===!1||l===0?traverse$1(q,1):traverse$1(q);let y,_,w,S,O=!1,B=!1;if(isRef(e)?(_=()=>e.value,O=isShallow(e)):isReactive(e)?(_=()=>g(e),O=!0):isArray$3(e)?(B=!0,O=e.some(q=>isReactive(q)||isShallow(q)),_=()=>e.map(q=>{if(isRef(q))return q.value;if(isReactive(q))return g(q);if(isFunction$1(q))return d?d(q,2):q();m(q)})):isFunction$1(e)?t?_=d?()=>d(e,2):e:_=()=>{if(w){pauseTracking();try{w()}finally{resetTracking()}}const q=activeWatcher;activeWatcher=y;try{return d?d(e,3,[S]):e(S)}finally{activeWatcher=q}}:(_=NOOP,m(e)),t&&l){const q=_,H=l===!0?1/0:l;_=()=>traverse$1(q(),H)}const $=getCurrentScope(),k=()=>{y.stop(),$&&$.active&&remove($.effects,y)};if(n&&t){const q=t;t=(...H)=>{q(...H),k()}}let L=B?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const F=q=>{if(!(!(y.flags&1)||!y.dirty&&!q))if(t){const H=y.run();if(l||O||(B?H.some((V,Y)=>hasChanged(V,L[Y])):hasChanged(H,L))){w&&w();const V=activeWatcher;activeWatcher=y;try{const Y=[H,L===INITIAL_WATCHER_VALUE?void 0:B&&L[0]===INITIAL_WATCHER_VALUE?[]:L,S];L=H,d?d(t,3,Y):t(...Y)}finally{activeWatcher=V}}}else y.run()};return f&&f(F),y=new ReactiveEffect(_),y.scheduler=s?()=>s(F,!1):F,S=q=>onWatcherCleanup(q,!1,y),w=y.onStop=()=>{const q=cleanupMap.get(y);if(q){if(d)d(q,4);else for(const H of q)H();cleanupMap.delete(y)}},y.onTrack=r.onTrack,y.onTrigger=r.onTrigger,t?o?F(!0):L=y.run():s?s(F.bind(null,!0),!0):y.run(),k.pause=y.pause.bind(y),k.resume=y.resume.bind(y),k.stop=k,k}function traverse$1(e,t=1/0,r){if(t<=0||!isObject$2(e)||e.__v_skip||(r=r||new Map,(r.get(e)||0)>=t))return e;if(r.set(e,t),t--,isRef(e))traverse$1(e.value,t,r);else if(isArray$3(e))for(let o=0;o{traverse$1(o,t,r)});else if(isPlainObject(e)){for(const o in e)traverse$1(e[o],t,r);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&traverse$1(e[o],t,r)}return e}const stack$1=[];function pushWarningContext(e){stack$1.push(e)}function popWarningContext(){stack$1.pop()}let isWarning=!1;function warn$1$1(e,...t){if(isWarning)return;isWarning=!0,pauseTracking();const r=stack$1.length?stack$1[stack$1.length-1].component:null,o=r&&r.appContext.config.warnHandler,l=getComponentTrace();if(o)callWithErrorHandling(o,r,11,[e+t.map(n=>{var s,f;return(f=(s=n.toString)==null?void 0:s.call(n))!=null?f:JSON.stringify(n)}).join(""),r&&r.proxy,l.map(({vnode:n})=>`at <${formatComponentName(r,n.type)}>`).join(` +`)}function normalizeStyle(e){if(isArray$3(e)){const t={};for(let r=0;r{if(r){const o=r.split(propertyDelimiterRE);o.length>1&&(t[o[0].trim()]=o[1].trim())}}),t}function stringifyStyle(e){if(!e)return"";if(isString$1(e))return e;let t="";for(const r in e){const o=e[r];if(isString$1(o)||typeof o=="number"){const l=r.startsWith("--")?r:hyphenate(r);t+=`${l}:${o};`}}return t}function normalizeClass(e){let t="";if(isString$1(e))t=e;else if(isArray$3(e))for(let r=0;r/="'\u0009\u000a\u000c\u0020]/,attrValidationCache={};function isSSRSafeAttrName(e){if(attrValidationCache.hasOwnProperty(e))return attrValidationCache[e];const t=unsafeAttrCharRE.test(e);return t&&console.error(`unsafe attribute name: ${e}`),attrValidationCache[e]=!t}const propsToAttrMap={acceptCharset:"accept-charset",className:"class",htmlFor:"for",httpEquiv:"http-equiv"},isKnownHtmlAttr=makeMap("accept,accept-charset,accesskey,action,align,allow,alt,async,autocapitalize,autocomplete,autofocus,autoplay,background,bgcolor,border,buffered,capture,challenge,charset,checked,cite,class,code,codebase,color,cols,colspan,content,contenteditable,contextmenu,controls,coords,crossorigin,csp,data,datetime,decoding,default,defer,dir,dirname,disabled,download,draggable,dropzone,enctype,enterkeyhint,for,form,formaction,formenctype,formmethod,formnovalidate,formtarget,headers,height,hidden,high,href,hreflang,http-equiv,icon,id,importance,inert,integrity,ismap,itemprop,keytype,kind,label,lang,language,loading,list,loop,low,manifest,max,maxlength,minlength,media,min,multiple,muted,name,novalidate,open,optimum,pattern,ping,placeholder,poster,preload,radiogroup,readonly,referrerpolicy,rel,required,reversed,rows,rowspan,sandbox,scope,scoped,selected,shape,size,sizes,slot,span,spellcheck,src,srcdoc,srclang,srcset,start,step,style,summary,tabindex,target,title,translate,type,usemap,value,width,wrap"),isKnownSvgAttr=makeMap("xmlns,accent-height,accumulate,additive,alignment-baseline,alphabetic,amplitude,arabic-form,ascent,attributeName,attributeType,azimuth,baseFrequency,baseline-shift,baseProfile,bbox,begin,bias,by,calcMode,cap-height,class,clip,clipPathUnits,clip-path,clip-rule,color,color-interpolation,color-interpolation-filters,color-profile,color-rendering,contentScriptType,contentStyleType,crossorigin,cursor,cx,cy,d,decelerate,descent,diffuseConstant,direction,display,divisor,dominant-baseline,dur,dx,dy,edgeMode,elevation,enable-background,end,exponent,fill,fill-opacity,fill-rule,filter,filterRes,filterUnits,flood-color,flood-opacity,font-family,font-size,font-size-adjust,font-stretch,font-style,font-variant,font-weight,format,from,fr,fx,fy,g1,g2,glyph-name,glyph-orientation-horizontal,glyph-orientation-vertical,glyphRef,gradientTransform,gradientUnits,hanging,height,href,hreflang,horiz-adv-x,horiz-origin-x,id,ideographic,image-rendering,in,in2,intercept,k,k1,k2,k3,k4,kernelMatrix,kernelUnitLength,kerning,keyPoints,keySplines,keyTimes,lang,lengthAdjust,letter-spacing,lighting-color,limitingConeAngle,local,marker-end,marker-mid,marker-start,markerHeight,markerUnits,markerWidth,mask,maskContentUnits,maskUnits,mathematical,max,media,method,min,mode,name,numOctaves,offset,opacity,operator,order,orient,orientation,origin,overflow,overline-position,overline-thickness,panose-1,paint-order,path,pathLength,patternContentUnits,patternTransform,patternUnits,ping,pointer-events,points,pointsAtX,pointsAtY,pointsAtZ,preserveAlpha,preserveAspectRatio,primitiveUnits,r,radius,referrerPolicy,refX,refY,rel,rendering-intent,repeatCount,repeatDur,requiredExtensions,requiredFeatures,restart,result,rotate,rx,ry,scale,seed,shape-rendering,slope,spacing,specularConstant,specularExponent,speed,spreadMethod,startOffset,stdDeviation,stemh,stemv,stitchTiles,stop-color,stop-opacity,strikethrough-position,strikethrough-thickness,string,stroke,stroke-dasharray,stroke-dashoffset,stroke-linecap,stroke-linejoin,stroke-miterlimit,stroke-opacity,stroke-width,style,surfaceScale,systemLanguage,tabindex,tableValues,target,targetX,targetY,text-anchor,text-decoration,text-rendering,textLength,to,transform,transform-origin,type,u1,u2,underline-position,underline-thickness,unicode,unicode-bidi,unicode-range,units-per-em,v-alphabetic,v-hanging,v-ideographic,v-mathematical,values,vector-effect,version,vert-adv-y,vert-origin-x,vert-origin-y,viewBox,viewTarget,visibility,width,widths,word-spacing,writing-mode,x,x-height,x1,x2,xChannelSelector,xlink:actuate,xlink:arcrole,xlink:href,xlink:role,xlink:show,xlink:title,xlink:type,xmlns:xlink,xml:base,xml:lang,xml:space,y,y1,y2,yChannelSelector,z,zoomAndPan"),isKnownMathMLAttr=makeMap("accent,accentunder,actiontype,align,alignmentscope,altimg,altimg-height,altimg-valign,altimg-width,alttext,bevelled,close,columnsalign,columnlines,columnspan,denomalign,depth,dir,display,displaystyle,encoding,equalcolumns,equalrows,fence,fontstyle,fontweight,form,frame,framespacing,groupalign,height,href,id,indentalign,indentalignfirst,indentalignlast,indentshift,indentshiftfirst,indentshiftlast,indextype,justify,largetop,largeop,lquote,lspace,mathbackground,mathcolor,mathsize,mathvariant,maxsize,minlabelspacing,mode,other,overflow,position,rowalign,rowlines,rowspan,rquote,rspace,scriptlevel,scriptminsize,scriptsizemultiplier,selection,separator,separators,shift,side,src,stackalign,stretchy,subscriptshift,superscriptshift,symmetric,voffset,width,widths,xlink:href,xlink:show,xlink:type,xmlns");function isRenderableAttrValue(e){if(e==null)return!1;const t=typeof e;return t==="string"||t==="number"||t==="boolean"}const escapeRE=/["'&<>]/;function escapeHtml(e){const t=""+e,r=escapeRE.exec(t);if(!r)return t;let o="",l,n,s=0;for(n=r.index;n||--!>|?@[\\\]^`{|}~]/g;function getEscapedCssVarName(e,t){return e.replace(cssVarNameEscapeSymbolsRE,r=>t?r==='"'?'\\\\\\"':`\\\\${r}`:`\\${r}`)}function looseCompareArrays(e,t){if(e.length!==t.length)return!1;let r=!0;for(let o=0;r&&olooseEqual(r,t))}const isRef$2=e=>!!(e&&e.__v_isRef===!0),toDisplayString=e=>isString$1(e)?e:e==null?"":isArray$3(e)||isObject$2(e)&&(e.toString===objectToString||!isFunction$1(e.toString))?isRef$2(e)?toDisplayString(e.value):JSON.stringify(e,replacer,2):String(e),replacer=(e,t)=>isRef$2(t)?replacer(e,t.value):isMap$1(t)?{[`Map(${t.size})`]:[...t.entries()].reduce((r,[o,l],n)=>(r[stringifySymbol(o,n)+" =>"]=l,r),{})}:isSet$1(t)?{[`Set(${t.size})`]:[...t.values()].map(r=>stringifySymbol(r))}:isSymbol$1(t)?stringifySymbol(t):isObject$2(t)&&!isArray$3(t)&&!isPlainObject(t)?String(t):t,stringifySymbol=(e,t="")=>{var r;return isSymbol$1(e)?`Symbol(${(r=e.description)!=null?r:t})`:e};function normalizeCssVarValue(e){return e==null?"initial":typeof e=="string"?e===""?" ":e:((typeof e!="number"||!Number.isFinite(e))&&console.warn("[Vue warn] Invalid value used for CSS binding. Expected a string or a finite number but received:",e),String(e))}const shared_esmBundler=Object.freeze(Object.defineProperty({__proto__:null,EMPTY_ARR,EMPTY_OBJ,NO,NOOP,PatchFlagNames,PatchFlags,ShapeFlags,SlotFlags,camelize,capitalize,cssVarNameEscapeSymbolsRE,def,escapeHtml,escapeHtmlComment,extend:extend$1,genCacheKey,genPropsAccessExp,generateCodeFrame,getEscapedCssVarName,getGlobalThis,hasChanged,hasOwn,hyphenate,includeBooleanAttr,invokeArrayFns,isArray:isArray$3,isBooleanAttr,isBuiltInDirective,isDate:isDate$1,isFunction:isFunction$1,isGloballyAllowed,isGloballyWhitelisted,isHTMLTag,isIntegerKey,isKnownHtmlAttr,isKnownMathMLAttr,isKnownSvgAttr,isMap:isMap$1,isMathMLTag,isModelListener,isObject:isObject$2,isOn,isPlainObject,isPromise:isPromise$1,isRegExp:isRegExp$1,isRenderableAttrValue,isReservedProp,isSSRSafeAttrName,isSVGTag,isSet:isSet$1,isSpecialBooleanAttr,isString:isString$1,isSymbol:isSymbol$1,isVoidTag,looseEqual,looseIndexOf,looseToNumber,makeMap,normalizeClass,normalizeCssVarValue,normalizeProps,normalizeStyle,objectToString,parseStringStyle,propsToAttrMap,remove,slotFlagsText,stringifyStyle,toDisplayString,toHandlerKey,toNumber,toRawType,toTypeString},Symbol.toStringTag,{value:"Module"}));function warn$2(e,...t){console.warn(`[Vue warn] ${e}`,...t)}let activeEffectScope;class EffectScope{constructor(t=!1){this.detached=t,this._active=!0,this._on=0,this.effects=[],this.cleanups=[],this._isPaused=!1,this.__v_skip=!0,this.parent=activeEffectScope,!t&&activeEffectScope&&(this.index=(activeEffectScope.scopes||(activeEffectScope.scopes=[])).push(this)-1)}get active(){return this._active}pause(){if(this._active){this._isPaused=!0;let t,r;if(this.scopes)for(t=0,r=this.scopes.length;t0&&--this._on===0&&(activeEffectScope=this.prevScope,this.prevScope=void 0)}stop(t){if(this._active){this._active=!1;let r,o;for(r=0,o=this.effects.length;r0)return;if(batchedComputed){let t=batchedComputed;for(batchedComputed=void 0;t;){const r=t.next;t.next=void 0,t.flags&=-9,t=r}}let e;for(;batchedSub;){let t=batchedSub;for(batchedSub=void 0;t;){const r=t.next;if(t.next=void 0,t.flags&=-9,t.flags&1)try{t.trigger()}catch(o){e||(e=o)}t=r}}if(e)throw e}function prepareDeps(e){for(let t=e.deps;t;t=t.nextDep)t.version=-1,t.prevActiveLink=t.dep.activeLink,t.dep.activeLink=t}function cleanupDeps(e){let t,r=e.depsTail,o=r;for(;o;){const l=o.prevDep;o.version===-1?(o===r&&(r=l),removeSub(o),removeDep(o)):t=o,o.dep.activeLink=o.prevActiveLink,o.prevActiveLink=void 0,o=l}e.deps=t,e.depsTail=r}function isDirty(e){for(let t=e.deps;t;t=t.nextDep)if(t.dep.version!==t.version||t.dep.computed&&(refreshComputed(t.dep.computed)||t.dep.version!==t.version))return!0;return!!e._dirty}function refreshComputed(e){if(e.flags&4&&!(e.flags&16)||(e.flags&=-17,e.globalVersion===globalVersion)||(e.globalVersion=globalVersion,!e.isSSR&&e.flags&128&&(!e.deps&&!e._dirty||!isDirty(e))))return;e.flags|=2;const t=e.dep,r=activeSub,o=shouldTrack;activeSub=e,shouldTrack=!0;try{prepareDeps(e);const l=e.fn(e._value);(t.version===0||hasChanged(l,e._value))&&(e.flags|=128,e._value=l,t.version++)}catch(l){throw t.version++,l}finally{activeSub=r,shouldTrack=o,cleanupDeps(e),e.flags&=-3}}function removeSub(e,t=!1){const{dep:r,prevSub:o,nextSub:l}=e;if(o&&(o.nextSub=l,e.prevSub=void 0),l&&(l.prevSub=o,e.nextSub=void 0),r.subsHead===e&&(r.subsHead=l),r.subs===e&&(r.subs=o,!o&&r.computed)){r.computed.flags&=-5;for(let n=r.computed.deps;n;n=n.nextDep)removeSub(n,!0)}!t&&!--r.sc&&r.map&&r.map.delete(r.key)}function removeDep(e){const{prevDep:t,nextDep:r}=e;t&&(t.nextDep=r,e.prevDep=void 0),r&&(r.prevDep=t,e.nextDep=void 0)}function effect(e,t){e.effect instanceof ReactiveEffect&&(e=e.effect.fn);const r=new ReactiveEffect(e);t&&extend$1(r,t);try{r.run()}catch(l){throw r.stop(),l}const o=r.run.bind(r);return o.effect=r,o}function stop(e){e.effect.stop()}let shouldTrack=!0;const trackStack=[];function pauseTracking(){trackStack.push(shouldTrack),shouldTrack=!1}function resetTracking(){const e=trackStack.pop();shouldTrack=e===void 0?!0:e}function cleanupEffect(e){const{cleanup:t}=e;if(e.cleanup=void 0,t){const r=activeSub;activeSub=void 0;try{t()}finally{activeSub=r}}}let globalVersion=0;class Link{constructor(t,r){this.sub=t,this.dep=r,this.version=r.version,this.nextDep=this.prevDep=this.nextSub=this.prevSub=this.prevActiveLink=void 0}}class Dep{constructor(t){this.computed=t,this.version=0,this.activeLink=void 0,this.subs=void 0,this.map=void 0,this.key=void 0,this.sc=0,this.__v_skip=!0,this.subsHead=void 0}track(t){if(!activeSub||!shouldTrack||activeSub===this.computed)return;let r=this.activeLink;if(r===void 0||r.sub!==activeSub)r=this.activeLink=new Link(activeSub,this),activeSub.deps?(r.prevDep=activeSub.depsTail,activeSub.depsTail.nextDep=r,activeSub.depsTail=r):activeSub.deps=activeSub.depsTail=r,addSub(r);else if(r.version===-1&&(r.version=this.version,r.nextDep)){const o=r.nextDep;o.prevDep=r.prevDep,r.prevDep&&(r.prevDep.nextDep=o),r.prevDep=activeSub.depsTail,r.nextDep=void 0,activeSub.depsTail.nextDep=r,activeSub.depsTail=r,activeSub.deps===r&&(activeSub.deps=o)}return activeSub.onTrack&&activeSub.onTrack(extend$1({effect:activeSub},t)),r}trigger(t){this.version++,globalVersion++,this.notify(t)}notify(t){startBatch();try{for(let r=this.subsHead;r;r=r.nextSub)r.sub.onTrigger&&!(r.sub.flags&8)&&r.sub.onTrigger(extend$1({effect:r.sub},t));for(let r=this.subs;r;r=r.prevSub)r.sub.notify()&&r.sub.dep.notify()}finally{endBatch()}}}function addSub(e){if(e.dep.sc++,e.sub.flags&4){const t=e.dep.computed;if(t&&!e.dep.subs){t.flags|=20;for(let o=t.deps;o;o=o.nextDep)addSub(o)}const r=e.dep.subs;r!==e&&(e.prevSub=r,r&&(r.nextSub=e)),e.dep.subsHead===void 0&&(e.dep.subsHead=e),e.dep.subs=e}}const targetMap=new WeakMap,ITERATE_KEY=Symbol("Object iterate"),MAP_KEY_ITERATE_KEY=Symbol("Map keys iterate"),ARRAY_ITERATE_KEY=Symbol("Array iterate");function track(e,t,r){if(shouldTrack&&activeSub){let o=targetMap.get(e);o||targetMap.set(e,o=new Map);let l=o.get(r);l||(o.set(r,l=new Dep),l.map=o,l.key=r),l.track({target:e,type:t,key:r})}}function trigger(e,t,r,o,l,n){const s=targetMap.get(e);if(!s){globalVersion++;return}const f=d=>{d&&d.trigger({target:e,type:t,key:r,newValue:o,oldValue:l,oldTarget:n})};if(startBatch(),t==="clear")s.forEach(f);else{const d=isArray$3(e),m=d&&isIntegerKey(r);if(d&&r==="length"){const g=Number(o);s.forEach((y,_)=>{(_==="length"||_===ARRAY_ITERATE_KEY||!isSymbol$1(_)&&_>=g)&&f(y)})}else switch((r!==void 0||s.has(void 0))&&f(s.get(r)),m&&f(s.get(ARRAY_ITERATE_KEY)),t){case"add":d?m&&f(s.get("length")):(f(s.get(ITERATE_KEY)),isMap$1(e)&&f(s.get(MAP_KEY_ITERATE_KEY)));break;case"delete":d||(f(s.get(ITERATE_KEY)),isMap$1(e)&&f(s.get(MAP_KEY_ITERATE_KEY)));break;case"set":isMap$1(e)&&f(s.get(ITERATE_KEY));break}}endBatch()}function getDepFromReactive(e,t){const r=targetMap.get(e);return r&&r.get(t)}function reactiveReadArray(e){const t=toRaw(e);return t===e?t:(track(t,"iterate",ARRAY_ITERATE_KEY),isShallow(e)?t:t.map(toReactive))}function shallowReadArray(e){return track(e=toRaw(e),"iterate",ARRAY_ITERATE_KEY),e}function toWrapped(e,t){return isReadonly$1(e)?toReadonly(isReactive(e)?toReactive(t):t):toReactive(t)}const arrayInstrumentations={__proto__:null,[Symbol.iterator](){return iterator(this,Symbol.iterator,e=>toWrapped(this,e))},concat(...e){return reactiveReadArray(this).concat(...e.map(t=>isArray$3(t)?reactiveReadArray(t):t))},entries(){return iterator(this,"entries",e=>(e[1]=toWrapped(this,e[1]),e))},every(e,t){return apply(this,"every",e,t,void 0,arguments)},filter(e,t){return apply(this,"filter",e,t,r=>r.map(o=>toWrapped(this,o)),arguments)},find(e,t){return apply(this,"find",e,t,r=>toWrapped(this,r),arguments)},findIndex(e,t){return apply(this,"findIndex",e,t,void 0,arguments)},findLast(e,t){return apply(this,"findLast",e,t,r=>toWrapped(this,r),arguments)},findLastIndex(e,t){return apply(this,"findLastIndex",e,t,void 0,arguments)},forEach(e,t){return apply(this,"forEach",e,t,void 0,arguments)},includes(...e){return searchProxy(this,"includes",e)},indexOf(...e){return searchProxy(this,"indexOf",e)},join(e){return reactiveReadArray(this).join(e)},lastIndexOf(...e){return searchProxy(this,"lastIndexOf",e)},map(e,t){return apply(this,"map",e,t,void 0,arguments)},pop(){return noTracking(this,"pop")},push(...e){return noTracking(this,"push",e)},reduce(e,...t){return reduce(this,"reduce",e,t)},reduceRight(e,...t){return reduce(this,"reduceRight",e,t)},shift(){return noTracking(this,"shift")},some(e,t){return apply(this,"some",e,t,void 0,arguments)},splice(...e){return noTracking(this,"splice",e)},toReversed(){return reactiveReadArray(this).toReversed()},toSorted(e){return reactiveReadArray(this).toSorted(e)},toSpliced(...e){return reactiveReadArray(this).toSpliced(...e)},unshift(...e){return noTracking(this,"unshift",e)},values(){return iterator(this,"values",e=>toWrapped(this,e))}};function iterator(e,t,r){const o=shallowReadArray(e),l=o[t]();return o!==e&&!isShallow(e)&&(l._next=l.next,l.next=()=>{const n=l._next();return n.done||(n.value=r(n.value)),n}),l}const arrayProto=Array.prototype;function apply(e,t,r,o,l,n){const s=shallowReadArray(e),f=s!==e&&!isShallow(e),d=s[t];if(d!==arrayProto[t]){const y=d.apply(e,n);return f?toReactive(y):y}let m=r;s!==e&&(f?m=function(y,_){return r.call(this,toWrapped(e,y),_,e)}:r.length>2&&(m=function(y,_){return r.call(this,y,_,e)}));const g=d.call(s,m,o);return f&&l?l(g):g}function reduce(e,t,r,o){const l=shallowReadArray(e);let n=r;return l!==e&&(isShallow(e)?r.length>3&&(n=function(s,f,d){return r.call(this,s,f,d,e)}):n=function(s,f,d){return r.call(this,s,toWrapped(e,f),d,e)}),l[t](n,...o)}function searchProxy(e,t,r){const o=toRaw(e);track(o,"iterate",ARRAY_ITERATE_KEY);const l=o[t](...r);return(l===-1||l===!1)&&isProxy(r[0])?(r[0]=toRaw(r[0]),o[t](...r)):l}function noTracking(e,t,r=[]){pauseTracking(),startBatch();const o=toRaw(e)[t].apply(e,r);return endBatch(),resetTracking(),o}const isNonTrackableKeys=makeMap("__proto__,__v_isRef,__isVue"),builtInSymbols=new Set(Object.getOwnPropertyNames(Symbol).filter(e=>e!=="arguments"&&e!=="caller").map(e=>Symbol[e]).filter(isSymbol$1));function hasOwnProperty(e){isSymbol$1(e)||(e=String(e));const t=toRaw(this);return track(t,"has",e),t.hasOwnProperty(e)}class BaseReactiveHandler{constructor(t=!1,r=!1){this._isReadonly=t,this._isShallow=r}get(t,r,o){if(r==="__v_skip")return t.__v_skip;const l=this._isReadonly,n=this._isShallow;if(r==="__v_isReactive")return!l;if(r==="__v_isReadonly")return l;if(r==="__v_isShallow")return n;if(r==="__v_raw")return o===(l?n?shallowReadonlyMap:readonlyMap:n?shallowReactiveMap:reactiveMap).get(t)||Object.getPrototypeOf(t)===Object.getPrototypeOf(o)?t:void 0;const s=isArray$3(t);if(!l){let d;if(s&&(d=arrayInstrumentations[r]))return d;if(r==="hasOwnProperty")return hasOwnProperty}const f=Reflect.get(t,r,isRef(t)?t:o);if((isSymbol$1(r)?builtInSymbols.has(r):isNonTrackableKeys(r))||(l||track(t,"get",r),n))return f;if(isRef(f)){const d=s&&isIntegerKey(r)?f:f.value;return l&&isObject$2(d)?readonly(d):d}return isObject$2(f)?l?readonly(f):reactive(f):f}}class MutableReactiveHandler extends BaseReactiveHandler{constructor(t=!1){super(!1,t)}set(t,r,o,l){let n=t[r];const s=isArray$3(t)&&isIntegerKey(r);if(!this._isShallow){const m=isReadonly$1(n);if(!isShallow(o)&&!isReadonly$1(o)&&(n=toRaw(n),o=toRaw(o)),!s&&isRef(n)&&!isRef(o))return m?(warn$2(`Set operation on key "${String(r)}" failed: target is readonly.`,t[r]),!0):(n.value=o,!0)}const f=s?Number(r)e,getProto$1=e=>Reflect.getPrototypeOf(e);function createIterableMethod(e,t,r){return function(...o){const l=this.__v_raw,n=toRaw(l),s=isMap$1(n),f=e==="entries"||e===Symbol.iterator&&s,d=e==="keys"&&s,m=l[e](...o),g=r?toShallow:t?toReadonly:toReactive;return!t&&track(n,"iterate",d?MAP_KEY_ITERATE_KEY:ITERATE_KEY),extend$1(Object.create(m),{next(){const{value:y,done:_}=m.next();return _?{value:y,done:_}:{value:f?[g(y[0]),g(y[1])]:g(y),done:_}}})}}function createReadonlyMethod(e){return function(...t){{const r=t[0]?`on key "${t[0]}" `:"";warn$2(`${capitalize(e)} operation ${r}failed: target is readonly.`,toRaw(this))}return e==="delete"?!1:e==="clear"?void 0:this}}function createInstrumentations(e,t){const r={get(l){const n=this.__v_raw,s=toRaw(n),f=toRaw(l);e||(hasChanged(l,f)&&track(s,"get",l),track(s,"get",f));const{has:d}=getProto$1(s),m=t?toShallow:e?toReadonly:toReactive;if(d.call(s,l))return m(n.get(l));if(d.call(s,f))return m(n.get(f));n!==s&&n.get(l)},get size(){const l=this.__v_raw;return!e&&track(toRaw(l),"iterate",ITERATE_KEY),l.size},has(l){const n=this.__v_raw,s=toRaw(n),f=toRaw(l);return e||(hasChanged(l,f)&&track(s,"has",l),track(s,"has",f)),l===f?n.has(l):n.has(l)||n.has(f)},forEach(l,n){const s=this,f=s.__v_raw,d=toRaw(f),m=t?toShallow:e?toReadonly:toReactive;return!e&&track(d,"iterate",ITERATE_KEY),f.forEach((g,y)=>l.call(n,m(g),m(y),s))}};return extend$1(r,e?{add:createReadonlyMethod("add"),set:createReadonlyMethod("set"),delete:createReadonlyMethod("delete"),clear:createReadonlyMethod("clear")}:{add(l){!t&&!isShallow(l)&&!isReadonly$1(l)&&(l=toRaw(l));const n=toRaw(this);return getProto$1(n).has.call(n,l)||(n.add(l),trigger(n,"add",l,l)),this},set(l,n){!t&&!isShallow(n)&&!isReadonly$1(n)&&(n=toRaw(n));const s=toRaw(this),{has:f,get:d}=getProto$1(s);let m=f.call(s,l);m?checkIdentityKeys(s,f,l):(l=toRaw(l),m=f.call(s,l));const g=d.call(s,l);return s.set(l,n),m?hasChanged(n,g)&&trigger(s,"set",l,n,g):trigger(s,"add",l,n),this},delete(l){const n=toRaw(this),{has:s,get:f}=getProto$1(n);let d=s.call(n,l);d?checkIdentityKeys(n,s,l):(l=toRaw(l),d=s.call(n,l));const m=f?f.call(n,l):void 0,g=n.delete(l);return d&&trigger(n,"delete",l,void 0,m),g},clear(){const l=toRaw(this),n=l.size!==0,s=isMap$1(l)?new Map(l):new Set(l),f=l.clear();return n&&trigger(l,"clear",void 0,void 0,s),f}}),["keys","values","entries",Symbol.iterator].forEach(l=>{r[l]=createIterableMethod(l,e,t)}),r}function createInstrumentationGetter(e,t){const r=createInstrumentations(e,t);return(o,l,n)=>l==="__v_isReactive"?!e:l==="__v_isReadonly"?e:l==="__v_raw"?o:Reflect.get(hasOwn(r,l)&&l in o?r:o,l,n)}const mutableCollectionHandlers={get:createInstrumentationGetter(!1,!1)},shallowCollectionHandlers={get:createInstrumentationGetter(!1,!0)},readonlyCollectionHandlers={get:createInstrumentationGetter(!0,!1)},shallowReadonlyCollectionHandlers={get:createInstrumentationGetter(!0,!0)};function checkIdentityKeys(e,t,r){const o=toRaw(r);if(o!==r&&t.call(e,o)){const l=toRawType(e);warn$2(`Reactive ${l} contains both the raw and reactive versions of the same object${l==="Map"?" as keys":""}, which can lead to inconsistencies. Avoid differentiating between the raw and reactive versions of an object and only use the reactive version if possible.`)}}const reactiveMap=new WeakMap,shallowReactiveMap=new WeakMap,readonlyMap=new WeakMap,shallowReadonlyMap=new WeakMap;function targetTypeMap(e){switch(e){case"Object":case"Array":return 1;case"Map":case"Set":case"WeakMap":case"WeakSet":return 2;default:return 0}}function getTargetType(e){return e.__v_skip||!Object.isExtensible(e)?0:targetTypeMap(toRawType(e))}function reactive(e){return isReadonly$1(e)?e:createReactiveObject(e,!1,mutableHandlers,mutableCollectionHandlers,reactiveMap)}function shallowReactive(e){return createReactiveObject(e,!1,shallowReactiveHandlers,shallowCollectionHandlers,shallowReactiveMap)}function readonly(e){return createReactiveObject(e,!0,readonlyHandlers,readonlyCollectionHandlers,readonlyMap)}function shallowReadonly(e){return createReactiveObject(e,!0,shallowReadonlyHandlers,shallowReadonlyCollectionHandlers,shallowReadonlyMap)}function createReactiveObject(e,t,r,o,l){if(!isObject$2(e))return warn$2(`value cannot be made ${t?"readonly":"reactive"}: ${String(e)}`),e;if(e.__v_raw&&!(t&&e.__v_isReactive))return e;const n=getTargetType(e);if(n===0)return e;const s=l.get(e);if(s)return s;const f=new Proxy(e,n===2?o:r);return l.set(e,f),f}function isReactive(e){return isReadonly$1(e)?isReactive(e.__v_raw):!!(e&&e.__v_isReactive)}function isReadonly$1(e){return!!(e&&e.__v_isReadonly)}function isShallow(e){return!!(e&&e.__v_isShallow)}function isProxy(e){return e?!!e.__v_raw:!1}function toRaw(e){const t=e&&e.__v_raw;return t?toRaw(t):e}function markRaw(e){return!hasOwn(e,"__v_skip")&&Object.isExtensible(e)&&def(e,"__v_skip",!0),e}const toReactive=e=>isObject$2(e)?reactive(e):e,toReadonly=e=>isObject$2(e)?readonly(e):e;function isRef(e){return e?e.__v_isRef===!0:!1}function ref$1(e){return createRef(e,!1)}function shallowRef(e){return createRef(e,!0)}function createRef(e,t){return isRef(e)?e:new RefImpl(e,t)}class RefImpl{constructor(t,r){this.dep=new Dep,this.__v_isRef=!0,this.__v_isShallow=!1,this._rawValue=r?t:toRaw(t),this._value=r?t:toReactive(t),this.__v_isShallow=r}get value(){return this.dep.track({target:this,type:"get",key:"value"}),this._value}set value(t){const r=this._rawValue,o=this.__v_isShallow||isShallow(t)||isReadonly$1(t);t=o?t:toRaw(t),hasChanged(t,r)&&(this._rawValue=t,this._value=o?t:toReactive(t),this.dep.trigger({target:this,type:"set",key:"value",newValue:t,oldValue:r}))}}function triggerRef(e){e.dep&&e.dep.trigger({target:e,type:"set",key:"value",newValue:e._value})}function unref(e){return isRef(e)?e.value:e}function toValue$1(e){return isFunction$1(e)?e():unref(e)}const shallowUnwrapHandlers={get:(e,t,r)=>t==="__v_raw"?e:unref(Reflect.get(e,t,r)),set:(e,t,r,o)=>{const l=e[t];return isRef(l)&&!isRef(r)?(l.value=r,!0):Reflect.set(e,t,r,o)}};function proxyRefs(e){return isReactive(e)?e:new Proxy(e,shallowUnwrapHandlers)}class CustomRefImpl{constructor(t){this.__v_isRef=!0,this._value=void 0;const r=this.dep=new Dep,{get:o,set:l}=t(r.track.bind(r),r.trigger.bind(r));this._get=o,this._set=l}get value(){return this._value=this._get()}set value(t){this._set(t)}}function customRef(e){return new CustomRefImpl(e)}function toRefs(e){isProxy(e)||warn$2("toRefs() expects a reactive object but received a plain one.");const t=isArray$3(e)?new Array(e.length):{};for(const r in e)t[r]=propertyToRef(e,r);return t}class ObjectRefImpl{constructor(t,r,o){this._object=t,this._key=r,this._defaultValue=o,this.__v_isRef=!0,this._value=void 0,this._raw=toRaw(t);let l=!0,n=t;if(!isArray$3(t)||!isIntegerKey(String(r)))do l=!isProxy(n)||isShallow(n);while(l&&(n=n.__v_raw));this._shallow=l}get value(){let t=this._object[this._key];return this._shallow&&(t=unref(t)),this._value=t===void 0?this._defaultValue:t}set value(t){if(this._shallow&&isRef(this._raw[this._key])){const r=this._object[this._key];if(isRef(r)){r.value=t;return}}this._object[this._key]=t}get dep(){return getDepFromReactive(this._raw,this._key)}}class GetterRefImpl{constructor(t){this._getter=t,this.__v_isRef=!0,this.__v_isReadonly=!0,this._value=void 0}get value(){return this._value=this._getter()}}function toRef(e,t,r){return isRef(e)?e:isFunction$1(e)?new GetterRefImpl(e):isObject$2(e)&&arguments.length>1?propertyToRef(e,t,r):ref$1(e)}function propertyToRef(e,t,r){return new ObjectRefImpl(e,t,r)}class ComputedRefImpl{constructor(t,r,o){this.fn=t,this.setter=r,this._value=void 0,this.dep=new Dep(this),this.__v_isRef=!0,this.deps=void 0,this.depsTail=void 0,this.flags=16,this.globalVersion=globalVersion-1,this.next=void 0,this.effect=this,this.__v_isReadonly=!r,this.isSSR=o}notify(){if(this.flags|=16,!(this.flags&8)&&activeSub!==this)return batch(this,!0),!0}get value(){const t=this.dep.track({target:this,type:"get",key:"value"});return refreshComputed(this),t&&(t.version=this.dep.version),this._value}set value(t){this.setter?this.setter(t):warn$2("Write operation failed: computed value is readonly")}}function computed$1(e,t,r=!1){let o,l;isFunction$1(e)?o=e:(o=e.get,l=e.set);const n=new ComputedRefImpl(o,l,r);return t&&!r&&(n.onTrack=t.onTrack,n.onTrigger=t.onTrigger),n}const TrackOpTypes={GET:"get",HAS:"has",ITERATE:"iterate"},TriggerOpTypes={SET:"set",ADD:"add",DELETE:"delete",CLEAR:"clear"},INITIAL_WATCHER_VALUE={},cleanupMap=new WeakMap;let activeWatcher;function getCurrentWatcher(){return activeWatcher}function onWatcherCleanup(e,t=!1,r=activeWatcher){if(r){let o=cleanupMap.get(r);o||cleanupMap.set(r,o=[]),o.push(e)}else t||warn$2("onWatcherCleanup() was called when there was no active watcher to associate with.")}function watch$1(e,t,r=EMPTY_OBJ){const{immediate:o,deep:l,once:n,scheduler:s,augmentJob:f,call:d}=r,m=q=>{(r.onWarn||warn$2)("Invalid watch source: ",q,"A watch source can only be a getter/effect function, a ref, a reactive object, or an array of these types.")},g=q=>l?q:isShallow(q)||l===!1||l===0?traverse$1(q,1):traverse$1(q);let y,_,w,S,C=!1,B=!1;if(isRef(e)?(_=()=>e.value,C=isShallow(e)):isReactive(e)?(_=()=>g(e),C=!0):isArray$3(e)?(B=!0,C=e.some(q=>isReactive(q)||isShallow(q)),_=()=>e.map(q=>{if(isRef(q))return q.value;if(isReactive(q))return g(q);if(isFunction$1(q))return d?d(q,2):q();m(q)})):isFunction$1(e)?t?_=d?()=>d(e,2):e:_=()=>{if(w){pauseTracking();try{w()}finally{resetTracking()}}const q=activeWatcher;activeWatcher=y;try{return d?d(e,3,[S]):e(S)}finally{activeWatcher=q}}:(_=NOOP,m(e)),t&&l){const q=_,H=l===!0?1/0:l;_=()=>traverse$1(q(),H)}const $=getCurrentScope(),k=()=>{y.stop(),$&&$.active&&remove($.effects,y)};if(n&&t){const q=t;t=(...H)=>{q(...H),k()}}let L=B?new Array(e.length).fill(INITIAL_WATCHER_VALUE):INITIAL_WATCHER_VALUE;const F=q=>{if(!(!(y.flags&1)||!y.dirty&&!q))if(t){const H=y.run();if(l||C||(B?H.some((V,Y)=>hasChanged(V,L[Y])):hasChanged(H,L))){w&&w();const V=activeWatcher;activeWatcher=y;try{const Y=[H,L===INITIAL_WATCHER_VALUE?void 0:B&&L[0]===INITIAL_WATCHER_VALUE?[]:L,S];L=H,d?d(t,3,Y):t(...Y)}finally{activeWatcher=V}}}else y.run()};return f&&f(F),y=new ReactiveEffect(_),y.scheduler=s?()=>s(F,!1):F,S=q=>onWatcherCleanup(q,!1,y),w=y.onStop=()=>{const q=cleanupMap.get(y);if(q){if(d)d(q,4);else for(const H of q)H();cleanupMap.delete(y)}},y.onTrack=r.onTrack,y.onTrigger=r.onTrigger,t?o?F(!0):L=y.run():s?s(F.bind(null,!0),!0):y.run(),k.pause=y.pause.bind(y),k.resume=y.resume.bind(y),k.stop=k,k}function traverse$1(e,t=1/0,r){if(t<=0||!isObject$2(e)||e.__v_skip||(r=r||new Map,(r.get(e)||0)>=t))return e;if(r.set(e,t),t--,isRef(e))traverse$1(e.value,t,r);else if(isArray$3(e))for(let o=0;o{traverse$1(o,t,r)});else if(isPlainObject(e)){for(const o in e)traverse$1(e[o],t,r);for(const o of Object.getOwnPropertySymbols(e))Object.prototype.propertyIsEnumerable.call(e,o)&&traverse$1(e[o],t,r)}return e}const stack$1=[];function pushWarningContext(e){stack$1.push(e)}function popWarningContext(){stack$1.pop()}let isWarning=!1;function warn$1$1(e,...t){if(isWarning)return;isWarning=!0,pauseTracking();const r=stack$1.length?stack$1[stack$1.length-1].component:null,o=r&&r.appContext.config.warnHandler,l=getComponentTrace();if(o)callWithErrorHandling(o,r,11,[e+t.map(n=>{var s,f;return(f=(s=n.toString)==null?void 0:s.call(n))!=null?f:JSON.stringify(n)}).join(""),r&&r.proxy,l.map(({vnode:n})=>`at <${formatComponentName(r,n.type)}>`).join(` `),l]);else{const n=[`[Vue warn]: ${e}`,...t];l.length&&n.push(` `,...formatTrace(l)),console.warn(...n)}resetTracking(),isWarning=!1}function getComponentTrace(){let e=stack$1[stack$1.length-1];if(!e)return[];const t=[];for(;e;){const r=t[0];r&&r.vnode===e?r.recurseCount++:t.push({vnode:e,recurseCount:0});const o=e.component&&e.component.parent;e=o&&o.vnode}return t}function formatTrace(e){const t=[];return e.forEach((r,o)=>{t.push(...o===0?[]:[` -`],...formatTraceEntry(r))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const r=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,l=` at <${formatComponentName(e.component,e.type,o)}`,n=">"+r;return e.props?[l,...formatProps(e.props),n]:[l+n]}function formatProps(e){const t=[],r=Object.keys(e);return r.slice(0,3).forEach(o=>{t.push(...formatProp(o,e[o]))}),r.length>3&&t.push(" ..."),t}function formatProp(e,t,r){return isString$1(t)?(t=JSON.stringify(t),r?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?r?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),r?t:[`${e}=Ref<`,t,">"]):isFunction$1(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),r?t:[`${e}=`,t])}function assertNumber(e,t){e!==void 0&&(typeof e!="number"?warn$1$1(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&warn$1$1(`${t} is NaN - the duration expression might be incorrect.`))}const ErrorCodes$1={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function callWithErrorHandling(e,t,r,o){try{return o?e(...o):e()}catch(l){handleError(l,t,r)}}function callWithAsyncErrorHandling(e,t,r,o){if(isFunction$1(e)){const l=callWithErrorHandling(e,t,r,o);return l&&isPromise$1(l)&&l.catch(n=>{handleError(n,t,r)}),l}if(isArray$3(e)){const l=[];for(let n=0;n>>1,l=queue$1[o],n=getId(l);n=getId(r)?queue$1.push(e):queue$1.splice(findInsertionIndex$1(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$3(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,r=flushIndex+1){for(t=t||new Map;rgetId(r)-getId(o));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,e=e||new Map,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){e=e||new Map;const t=r=>checkRecursiveUpdates(e,r);try{for(flushIndex=0;flushIndexRECURSION_LIMIT){const o=t.i,l=o&&getComponentName(o.type);return handleError(`Maximum recursive updates exceeded${l?` in component <${l}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,r+1),!1}let isHmrUpdating=!1;const setHmrUpdating=e=>{try{return isHmrUpdating}finally{isHmrUpdating=e}},hmrDirtyComponents=new Map;getGlobalThis().__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)};const map$2=new Map;function registerHMR(e){const t=e.type.__hmrId;let r=map$2.get(t);r||(createRecord(t,e.type),r=map$2.get(t)),r.instances.add(e)}function unregisterHMR(e){map$2.get(e.type.__hmrId).instances.delete(e)}function createRecord(e,t){return map$2.has(e)?!1:(map$2.set(e,{initialDef:normalizeClassComponent(t),instances:new Set}),!0)}function normalizeClassComponent(e){return isClassComponent(e)?e.__vccOpts:e}function rerender(e,t){const r=map$2.get(e);r&&(r.initialDef.render=t,[...r.instances].forEach(o=>{t&&(o.render=t,normalizeClassComponent(o.type).render=t),o.renderCache=[],isHmrUpdating=!0,o.job.flags&8||o.update(),isHmrUpdating=!1}))}function reload(e,t){const r=map$2.get(e);if(!r)return;t=normalizeClassComponent(t),updateComponentDef(r.initialDef,t);const o=[...r.instances];for(let l=0;l{n.job.flags&8||(isHmrUpdating=!0,n.parent.update(),isHmrUpdating=!1,f.delete(n))}):n.appContext.reload?n.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),n.root.ce&&n!==n.root&&n.root.ce._removeChildStyle(s)}queuePostFlushCb(()=>{hmrDirtyComponents.clear()})}function updateComponentDef(e,t){extend$1(e,t);for(const r in e)r!=="__file"&&!(r in t)&&delete e[r]}function tryWrap(e){return(t,r)=>{try{return e(t,r)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let devtools$1,buffer$2=[],devtoolsNotInstalled=!1;function emit$1(e,...t){devtools$1?devtools$1.emit(e,...t):devtoolsNotInstalled||buffer$2.push({event:e,args:t})}function setDevtoolsHook$1(e,t){var r,o;devtools$1=e,devtools$1?(devtools$1.enabled=!0,buffer$2.forEach(({event:l,args:n})=>devtools$1.emit(l,...n)),buffer$2=[]):typeof window<"u"&&window.HTMLElement&&!((o=(r=window.navigator)==null?void 0:r.userAgent)!=null&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(n=>{setDevtoolsHook$1(n,t)}),setTimeout(()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,devtoolsNotInstalled=!0,buffer$2=[])},3e3)):(devtoolsNotInstalled=!0,buffer$2=[])}function devtoolsInitApp(e,t){emit$1("app:init",e,t,{Fragment,Text,Comment,Static})}function devtoolsUnmountApp(e){emit$1("app:unmount",e)}const devtoolsComponentAdded=createDevtoolsComponentHook("component:added"),devtoolsComponentUpdated=createDevtoolsComponentHook("component:updated"),_devtoolsComponentRemoved=createDevtoolsComponentHook("component:removed"),devtoolsComponentRemoved=e=>{devtools$1&&typeof devtools$1.cleanupBuffer=="function"&&!devtools$1.cleanupBuffer(e)&&_devtoolsComponentRemoved(e)};function createDevtoolsComponentHook(e){return t=>{emit$1(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const devtoolsPerfStart=createDevtoolsPerformanceHook("perf:start"),devtoolsPerfEnd=createDevtoolsPerformanceHook("perf:end");function createDevtoolsPerformanceHook(e){return(t,r,o)=>{emit$1(e,t.appContext.app,t.uid,t,r,o)}}function devtoolsComponentEmit(e,t,r){emit$1("component:emit",e.appContext.app,e,t,r)}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,r){if(!t||e._n)return e;const o=(...l)=>{o._d&&setBlockTracking(-1);const n=setCurrentRenderingInstance(t);let s;try{s=e(...l)}finally{setCurrentRenderingInstance(n),o._d&&setBlockTracking(1)}return devtoolsComponentUpdated(t),s};return o._n=!0,o._c=!0,o._d=!0,o}function validateDirectiveName(e){isBuiltInDirective(e)&&warn$1$1("Do not use built-in directive ids as custom directive id: "+e)}function withDirectives(e,t){if(currentRenderingInstance===null)return warn$1$1("withDirectives can only be used inside render functions."),e;const r=getComponentPublicInstance(currentRenderingInstance),o=e.dirs||(e.dirs=[]);for(let l=0;l1)return r&&isFunction$1(t)?t.call(o&&o.proxy):t;warn$1$1(`injection "${String(e)}" not found.`)}else warn$1$1("inject() can only be used inside setup() or functional components.")}function hasInjectionContext(){return!!(getCurrentInstance()||currentApp)}const ssrContextKey=Symbol.for("v-scx"),useSSRContext=()=>{{const e=inject(ssrContextKey);return e||warn$1$1("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function watchEffect(e,t){return doWatch(e,null,t)}function watchPostEffect(e,t){return doWatch(e,null,extend$1({},t,{flush:"post"}))}function watchSyncEffect(e,t){return doWatch(e,null,extend$1({},t,{flush:"sync"}))}function watch(e,t,r){return isFunction$1(t)||warn$1$1("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),doWatch(e,t,r)}function doWatch(e,t,r=EMPTY_OBJ){const{immediate:o,deep:l,flush:n,once:s}=r;t||(o!==void 0&&warn$1$1('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),l!==void 0&&warn$1$1('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'),s!==void 0&&warn$1$1('watch() "once" option is only respected when using the watch(source, callback, options?) signature.'));const f=extend$1({},r);f.onWarn=warn$1$1;const d=t&&o||!t&&n!=="post";let m;if(isInSSRComponentSetup){if(n==="sync"){const w=useSSRContext();m=w.__watcherHandles||(w.__watcherHandles=[])}else if(!d){const w=()=>{};return w.stop=NOOP,w.resume=NOOP,w.pause=NOOP,w}}const g=currentInstance;f.call=(w,S,O)=>callWithAsyncErrorHandling(w,g,S,O);let y=!1;n==="post"?f.scheduler=w=>{queuePostRenderEffect(w,g&&g.suspense)}:n!=="sync"&&(y=!0,f.scheduler=(w,S)=>{S?w():queueJob(w)}),f.augmentJob=w=>{t&&(w.flags|=4),y&&(w.flags|=2,g&&(w.id=g.uid,w.i=g))};const _=watch$1(e,t,f);return isInSSRComponentSetup&&(m?m.push(_):d&&_()),_}function instanceWatch(e,t,r){const o=this.proxy,l=isString$1(e)?e.includes(".")?createPathGetter(o,e):()=>o[e]:e.bind(o,o);let n;isFunction$1(t)?n=t:(n=t.handler,r=t);const s=setCurrentInstance(this),f=doWatch(l,n.bind(o),r);return s(),f}function createPathGetter(e,t){const r=t.split(".");return()=>{let o=e;for(let l=0;le.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const r=e&&e.to;if(isString$1(r))if(t){const o=t(r);return!o&&!isTeleportDisabled(e)&&warn$1$1(`Failed to locate Teleport target with selector "${r}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),o}else return warn$1$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!r&&!isTeleportDisabled(e)&&warn$1$1(`Invalid Teleport target: ${r}`),r},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,r,o,l,n,s,f,d,m){const{mc:g,pc:y,pbc:_,o:{insert:w,querySelector:S,createText:O,createComment:B}}=m,$=isTeleportDisabled(t.props);let{dynamicChildren:k}=t;isHmrUpdating&&(d=!1,k=null);const L=(H,V,Y)=>{H.shapeFlag&16&&g(H.children,V,Y,l,n,s,f,d)},F=(H=t)=>{const V=isTeleportDisabled(H.props),Y=H.target=resolveTarget(H.props,S),G=prepareAnchor(Y,H,O,w);Y?(s!=="svg"&&isTargetSVG(Y)?s="svg":s!=="mathml"&&isTargetMathML(Y)&&(s="mathml"),l&&l.isCE&&(l.ce._teleportTargets||(l.ce._teleportTargets=new Set)).add(Y),V||(L(H,Y,G),updateCssVars(H,!1))):V||warn$1$1("Invalid Teleport target on mount:",Y,`(${typeof Y})`)},q=H=>{const V=()=>{pendingMounts.get(H)===V&&(pendingMounts.delete(H),isTeleportDisabled(H.props)&&(L(H,r,H.anchor),updateCssVars(H,!0)),F(H))};pendingMounts.set(H,V),queuePostRenderEffect(V,n)};if(e==null){const H=t.el=B("teleport start"),V=t.anchor=B("teleport end");if(w(H,r,o),w(V,r,o),isTeleportDeferred(t.props)||n&&n.pendingBranch){q(t);return}$&&(L(t,r,V),updateCssVars(t,!0)),F()}else{t.el=e.el;const H=t.anchor=e.anchor,V=pendingMounts.get(e);if(V){V.flags|=8,pendingMounts.delete(e),q(t);return}t.targetStart=e.targetStart;const Y=t.target=e.target,G=t.targetAnchor=e.targetAnchor,te=isTeleportDisabled(e.props),C=te?r:Y,a=te?H:G;if(s==="svg"||isTargetSVG(Y)?s="svg":(s==="mathml"||isTargetMathML(Y))&&(s="mathml"),k?(_(e.dynamicChildren,k,C,l,n,s,f),traverseStaticChildren(e,t,!1)):d||y(e,t,C,a,l,n,s,f,!1),$)te?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,r,H,m,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const c=t.target=resolveTarget(t.props,S);c?moveTeleport(t,c,null,m,0):warn$1$1("Invalid Teleport target on update:",Y,`(${typeof Y})`)}else te&&moveTeleport(t,Y,G,m,1);updateCssVars(t,$)}},remove(e,t,r,{um:o,o:{remove:l}},n){const{shapeFlag:s,children:f,anchor:d,targetStart:m,targetAnchor:g,target:y,props:_}=e;let w=n||!isTeleportDisabled(_);const S=pendingMounts.get(e);if(S&&(S.flags|=8,pendingMounts.delete(e),w=!1),y&&(l(m),l(g)),n&&l(d),s&16)for(let O=0;O{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const r=getCurrentInstance(),o=useTransitionState();return()=>{const l=t.default&&getTransitionRawChildren(t.default(),!0);if(!l||!l.length)return;const n=findNonCommentChild(l),s=toRaw(e),{mode:f}=s;if(f&&f!=="in-out"&&f!=="out-in"&&f!=="default"&&warn$1$1(`invalid mode: ${f}`),o.isLeaving)return emptyPlaceholder(n);const d=getInnerChild$1(n);if(!d)return emptyPlaceholder(n);let m=resolveTransitionHooks(d,s,o,r,y=>m=y);d.type!==Comment&&setTransitionHooks(d,m);let g=r.subTree&&getInnerChild$1(r.subTree);if(g&&g.type!==Comment&&!isSameVNodeType(g,d)&&recursiveGetSubtree(r).type!==Comment){let y=resolveTransitionHooks(g,s,o,r);if(setTransitionHooks(g,y),f==="out-in"&&d.type!==Comment)return o.isLeaving=!0,y.afterLeave=()=>{o.isLeaving=!1,r.job.flags&8||r.update(),delete y.afterLeave,g=void 0},emptyPlaceholder(n);f==="in-out"&&d.type!==Comment?y.delayLeave=(_,w,S)=>{const O=getLeavingNodesForType(o,g);O[String(g.key)]=g,_[leaveCbKey]=()=>{w(),_[leaveCbKey]=void 0,delete m.delayedLeave,g=void 0},m.delayedLeave=()=>{S(),delete m.delayedLeave,g=void 0}}:g=void 0}else g&&(g=void 0);return n}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){let r=!1;for(const o of e)if(o.type!==Comment){if(r){warn$1$1(" can only be used on a single element or component. Use for lists.");break}t=o,r=!0}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:r}=e;let o=r.get(t.type);return o||(o=Object.create(null),r.set(t.type,o)),o}function resolveTransitionHooks(e,t,r,o,l){const{appear:n,mode:s,persisted:f=!1,onBeforeEnter:d,onEnter:m,onAfterEnter:g,onEnterCancelled:y,onBeforeLeave:_,onLeave:w,onAfterLeave:S,onLeaveCancelled:O,onBeforeAppear:B,onAppear:$,onAfterAppear:k,onAppearCancelled:L}=t,F=String(e.key),q=getLeavingNodesForType(r,e),H=(G,te)=>{G&&callWithAsyncErrorHandling(G,o,9,te)},V=(G,te)=>{const C=te[1];H(G,te),isArray$3(G)?G.every(a=>a.length<=1)&&C():G.length<=1&&C()},Y={mode:s,persisted:f,beforeEnter(G){let te=d;if(!r.isMounted)if(n)te=B||d;else return;G[leaveCbKey]&&G[leaveCbKey](!0);const C=q[F];C&&isSameVNodeType(e,C)&&C.el[leaveCbKey]&&C.el[leaveCbKey](),H(te,[G])},enter(G){if(!isHmrUpdating&&q[F]===e)return;let te=m,C=g,a=y;if(!r.isMounted)if(n)te=$||m,C=k||g,a=L||y;else return;let c=!1;G[enterCbKey$1]=b=>{c||(c=!0,b?H(a,[G]):H(C,[G]),Y.delayedLeave&&Y.delayedLeave(),G[enterCbKey$1]=void 0)};const v=G[enterCbKey$1].bind(null,!1);te?V(te,[G,v]):v()},leave(G,te){const C=String(e.key);if(G[enterCbKey$1]&&G[enterCbKey$1](!0),r.isUnmounting)return te();H(_,[G]);let a=!1;G[leaveCbKey]=v=>{a||(a=!0,te(),v?H(O,[G]):H(S,[G]),G[leaveCbKey]=void 0,q[C]===e&&delete q[C])};const c=G[leaveCbKey].bind(null,!1);q[C]=e,w?V(w,[G,c]):c()},clone(G){const te=resolveTransitionHooks(G,t,r,o,l);return l&&l(te),te}};return Y}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:r}=e;if(r){if(t&16)return r[0];if(t&32&&isFunction$1(r.default))return r.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,r){let o=[],l=0;for(let n=0;n1)for(let n=0;nr.value,set:n=>r.value=n})}else warn$1$1("useTemplateRef() is called when there is no active component instance to be associated with.");const o=readonly(r);return knownTemplateRefs.add(o),o}function isTemplateRefKey(e,t){let r;return!!((r=Object.getOwnPropertyDescriptor(e,t))&&!r.configurable)}const pendingSetRefMap=new WeakMap;function setRef(e,t,r,o,l=!1){if(isArray$3(e)){e.forEach((O,B)=>setRef(O,t&&(isArray$3(t)?t[B]:t),r,o,l));return}if(isAsyncWrapper(o)&&!l){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&setRef(e,t,r,o.component.subTree);return}const n=o.shapeFlag&4?getComponentPublicInstance(o.component):o.el,s=l?null:n,{i:f,r:d}=e;if(!f){warn$1$1("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const m=t&&t.r,g=f.refs===EMPTY_OBJ?f.refs={}:f.refs,y=f.setupState,_=toRaw(y),w=y===EMPTY_OBJ?NO:O=>(hasOwn(_,O)&&!isRef(_[O])&&warn$1$1(`Template ref "${O}" used on a non-ref value. It will not work in the production build.`),knownTemplateRefs.has(_[O])||isTemplateRefKey(g,O)?!1:hasOwn(_,O)),S=(O,B)=>!(knownTemplateRefs.has(O)||B&&isTemplateRefKey(g,B));if(m!=null&&m!==d){if(invalidatePendingSetRef(t),isString$1(m))g[m]=null,w(m)&&(y[m]=null);else if(isRef(m)){const O=t;S(m,O.k)&&(m.value=null),O.k&&(g[O.k]=null)}}if(isFunction$1(d))callWithErrorHandling(d,f,12,[s,g]);else{const O=isString$1(d),B=isRef(d);if(O||B){const $=()=>{if(e.f){const k=O?w(d)?y[d]:g[d]:S(d)||!e.k?d.value:g[e.k];if(l)isArray$3(k)&&remove(k,n);else if(isArray$3(k))k.includes(n)||k.push(n);else if(O)g[d]=[n],w(d)&&(y[d]=g[d]);else{const L=[n];S(d,e.k)&&(d.value=L),e.k&&(g[e.k]=L)}}else O?(g[d]=s,w(d)&&(y[d]=s)):B?(S(d,e.k)&&(d.value=s),e.k&&(g[e.k]=s)):warn$1$1("Invalid template ref type:",d,`(${typeof d})`)};if(s){const k=()=>{$(),pendingSetRefMap.delete(e)};k.id=-1,pendingSetRefMap.set(e,k),queuePostRenderEffect(k,r)}else invalidatePendingSetRef(e),$()}else warn$1$1("Invalid template ref type:",d,`(${typeof d})`)}}function invalidatePendingSetRef(e){const t=pendingSetRefMap.get(e);t&&(t.flags|=8,pendingSetRefMap.delete(e))}let hasLoggedMismatchError=!1;const logMismatchError=()=>{hasLoggedMismatchError||(console.error("Hydration completed but contains mismatches."),hasLoggedMismatchError=!0)},isSVGContainer=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",isMathMLContainer=e=>e.namespaceURI.includes("MathML"),getContainerType=e=>{if(e.nodeType===1){if(isSVGContainer(e))return"svg";if(isMathMLContainer(e))return"mathml"}},isComment=e=>e.nodeType===8;function createHydrationFunctions(e){const{mt:t,p:r,o:{patchProp:o,createText:l,nextSibling:n,parentNode:s,remove:f,insert:d,createComment:m}}=e,g=(L,F)=>{if(!F.hasChildNodes()){warn$1$1("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),r(null,L,F),flushPostFlushCbs(),F._vnode=L;return}y(F.firstChild,L,null,null,null),flushPostFlushCbs(),F._vnode=L},y=(L,F,q,H,V,Y=!1)=>{Y=Y||!!F.dynamicChildren;const G=isComment(L)&&L.data==="[",te=()=>O(L,F,q,H,V,G),{type:C,ref:a,shapeFlag:c,patchFlag:v}=F;let b=L.nodeType;F.el=L,def(L,"__vnode",F,!0),def(L,"__vueParentComponent",q,!0),v===-2&&(Y=!1,F.dynamicChildren=null);let E=null;switch(C){case Text:b!==3?F.children===""?(d(F.el=l(""),s(L),L),E=L):E=te():(L.data!==F.children&&(warn$1$1("Hydration text mismatch in",L.parentNode,` +`],...formatTraceEntry(r))}),t}function formatTraceEntry({vnode:e,recurseCount:t}){const r=t>0?`... (${t} recursive calls)`:"",o=e.component?e.component.parent==null:!1,l=` at <${formatComponentName(e.component,e.type,o)}`,n=">"+r;return e.props?[l,...formatProps(e.props),n]:[l+n]}function formatProps(e){const t=[],r=Object.keys(e);return r.slice(0,3).forEach(o=>{t.push(...formatProp(o,e[o]))}),r.length>3&&t.push(" ..."),t}function formatProp(e,t,r){return isString$1(t)?(t=JSON.stringify(t),r?t:[`${e}=${t}`]):typeof t=="number"||typeof t=="boolean"||t==null?r?t:[`${e}=${t}`]:isRef(t)?(t=formatProp(e,toRaw(t.value),!0),r?t:[`${e}=Ref<`,t,">"]):isFunction$1(t)?[`${e}=fn${t.name?`<${t.name}>`:""}`]:(t=toRaw(t),r?t:[`${e}=`,t])}function assertNumber(e,t){e!==void 0&&(typeof e!="number"?warn$1$1(`${t} is not a valid number - got ${JSON.stringify(e)}.`):isNaN(e)&&warn$1$1(`${t} is NaN - the duration expression might be incorrect.`))}const ErrorCodes$1={SETUP_FUNCTION:0,0:"SETUP_FUNCTION",RENDER_FUNCTION:1,1:"RENDER_FUNCTION",NATIVE_EVENT_HANDLER:5,5:"NATIVE_EVENT_HANDLER",COMPONENT_EVENT_HANDLER:6,6:"COMPONENT_EVENT_HANDLER",VNODE_HOOK:7,7:"VNODE_HOOK",DIRECTIVE_HOOK:8,8:"DIRECTIVE_HOOK",TRANSITION_HOOK:9,9:"TRANSITION_HOOK",APP_ERROR_HANDLER:10,10:"APP_ERROR_HANDLER",APP_WARN_HANDLER:11,11:"APP_WARN_HANDLER",FUNCTION_REF:12,12:"FUNCTION_REF",ASYNC_COMPONENT_LOADER:13,13:"ASYNC_COMPONENT_LOADER",SCHEDULER:14,14:"SCHEDULER",COMPONENT_UPDATE:15,15:"COMPONENT_UPDATE",APP_UNMOUNT_CLEANUP:16,16:"APP_UNMOUNT_CLEANUP"},ErrorTypeStrings$1={sp:"serverPrefetch hook",bc:"beforeCreate hook",c:"created hook",bm:"beforeMount hook",m:"mounted hook",bu:"beforeUpdate hook",u:"updated",bum:"beforeUnmount hook",um:"unmounted hook",a:"activated hook",da:"deactivated hook",ec:"errorCaptured hook",rtc:"renderTracked hook",rtg:"renderTriggered hook",0:"setup function",1:"render function",2:"watcher getter",3:"watcher callback",4:"watcher cleanup function",5:"native event handler",6:"component event handler",7:"vnode hook",8:"directive hook",9:"transition hook",10:"app errorHandler",11:"app warnHandler",12:"ref function",13:"async component loader",14:"scheduler flush",15:"component update",16:"app unmount cleanup function"};function callWithErrorHandling(e,t,r,o){try{return o?e(...o):e()}catch(l){handleError(l,t,r)}}function callWithAsyncErrorHandling(e,t,r,o){if(isFunction$1(e)){const l=callWithErrorHandling(e,t,r,o);return l&&isPromise$1(l)&&l.catch(n=>{handleError(n,t,r)}),l}if(isArray$3(e)){const l=[];for(let n=0;n>>1,l=queue$1[o],n=getId(l);n=getId(r)?queue$1.push(e):queue$1.splice(findInsertionIndex$1(t),0,e),e.flags|=1,queueFlush()}}function queueFlush(){currentFlushPromise||(currentFlushPromise=resolvedPromise.then(flushJobs))}function queuePostFlushCb(e){isArray$3(e)?pendingPostFlushCbs.push(...e):activePostFlushCbs&&e.id===-1?activePostFlushCbs.splice(postFlushIndex+1,0,e):e.flags&1||(pendingPostFlushCbs.push(e),e.flags|=1),queueFlush()}function flushPreFlushCbs(e,t,r=flushIndex+1){for(t=t||new Map;rgetId(r)-getId(o));if(pendingPostFlushCbs.length=0,activePostFlushCbs){activePostFlushCbs.push(...t);return}for(activePostFlushCbs=t,e=e||new Map,postFlushIndex=0;postFlushIndexe.id==null?e.flags&2?-1:1/0:e.id;function flushJobs(e){e=e||new Map;const t=r=>checkRecursiveUpdates(e,r);try{for(flushIndex=0;flushIndexRECURSION_LIMIT){const o=t.i,l=o&&getComponentName(o.type);return handleError(`Maximum recursive updates exceeded${l?` in component <${l}>`:""}. This means you have a reactive effect that is mutating its own dependencies and thus recursively triggering itself. Possible sources include component template, render function, updated hook or watcher source function.`,null,10),!0}return e.set(t,r+1),!1}let isHmrUpdating=!1;const hmrDirtyComponents=new Map;getGlobalThis().__VUE_HMR_RUNTIME__={createRecord:tryWrap(createRecord),rerender:tryWrap(rerender),reload:tryWrap(reload)};const map$2=new Map;function registerHMR(e){const t=e.type.__hmrId;let r=map$2.get(t);r||(createRecord(t,e.type),r=map$2.get(t)),r.instances.add(e)}function unregisterHMR(e){map$2.get(e.type.__hmrId).instances.delete(e)}function createRecord(e,t){return map$2.has(e)?!1:(map$2.set(e,{initialDef:normalizeClassComponent(t),instances:new Set}),!0)}function normalizeClassComponent(e){return isClassComponent(e)?e.__vccOpts:e}function rerender(e,t){const r=map$2.get(e);r&&(r.initialDef.render=t,[...r.instances].forEach(o=>{t&&(o.render=t,normalizeClassComponent(o.type).render=t),o.renderCache=[],isHmrUpdating=!0,o.job.flags&8||o.update(),isHmrUpdating=!1}))}function reload(e,t){const r=map$2.get(e);if(!r)return;t=normalizeClassComponent(t),updateComponentDef(r.initialDef,t);const o=[...r.instances];for(let l=0;l{n.job.flags&8||(isHmrUpdating=!0,n.parent.update(),isHmrUpdating=!1,f.delete(n))}):n.appContext.reload?n.appContext.reload():typeof window<"u"?window.location.reload():console.warn("[HMR] Root or manually mounted instance modified. Full reload required."),n.root.ce&&n!==n.root&&n.root.ce._removeChildStyle(s)}queuePostFlushCb(()=>{hmrDirtyComponents.clear()})}function updateComponentDef(e,t){extend$1(e,t);for(const r in e)r!=="__file"&&!(r in t)&&delete e[r]}function tryWrap(e){return(t,r)=>{try{return e(t,r)}catch(o){console.error(o),console.warn("[HMR] Something went wrong during Vue component hot-reload. Full reload required.")}}}let devtools$1,buffer$2=[],devtoolsNotInstalled=!1;function emit$1(e,...t){devtools$1?devtools$1.emit(e,...t):devtoolsNotInstalled||buffer$2.push({event:e,args:t})}function setDevtoolsHook$1(e,t){var r,o;devtools$1=e,devtools$1?(devtools$1.enabled=!0,buffer$2.forEach(({event:l,args:n})=>devtools$1.emit(l,...n)),buffer$2=[]):typeof window<"u"&&window.HTMLElement&&!((o=(r=window.navigator)==null?void 0:r.userAgent)!=null&&o.includes("jsdom"))?((t.__VUE_DEVTOOLS_HOOK_REPLAY__=t.__VUE_DEVTOOLS_HOOK_REPLAY__||[]).push(n=>{setDevtoolsHook$1(n,t)}),setTimeout(()=>{devtools$1||(t.__VUE_DEVTOOLS_HOOK_REPLAY__=null,devtoolsNotInstalled=!0,buffer$2=[])},3e3)):(devtoolsNotInstalled=!0,buffer$2=[])}function devtoolsInitApp(e,t){emit$1("app:init",e,t,{Fragment,Text,Comment,Static})}function devtoolsUnmountApp(e){emit$1("app:unmount",e)}const devtoolsComponentAdded=createDevtoolsComponentHook("component:added"),devtoolsComponentUpdated=createDevtoolsComponentHook("component:updated"),_devtoolsComponentRemoved=createDevtoolsComponentHook("component:removed"),devtoolsComponentRemoved=e=>{devtools$1&&typeof devtools$1.cleanupBuffer=="function"&&!devtools$1.cleanupBuffer(e)&&_devtoolsComponentRemoved(e)};function createDevtoolsComponentHook(e){return t=>{emit$1(e,t.appContext.app,t.uid,t.parent?t.parent.uid:void 0,t)}}const devtoolsPerfStart=createDevtoolsPerformanceHook("perf:start"),devtoolsPerfEnd=createDevtoolsPerformanceHook("perf:end");function createDevtoolsPerformanceHook(e){return(t,r,o)=>{emit$1(e,t.appContext.app,t.uid,t,r,o)}}function devtoolsComponentEmit(e,t,r){emit$1("component:emit",e.appContext.app,e,t,r)}let currentRenderingInstance=null,currentScopeId=null;function setCurrentRenderingInstance(e){const t=currentRenderingInstance;return currentRenderingInstance=e,currentScopeId=e&&e.type.__scopeId||null,t}function pushScopeId(e){currentScopeId=e}function popScopeId(){currentScopeId=null}const withScopeId=e=>withCtx;function withCtx(e,t=currentRenderingInstance,r){if(!t||e._n)return e;const o=(...l)=>{o._d&&setBlockTracking(-1);const n=setCurrentRenderingInstance(t);let s;try{s=e(...l)}finally{setCurrentRenderingInstance(n),o._d&&setBlockTracking(1)}return devtoolsComponentUpdated(t),s};return o._n=!0,o._c=!0,o._d=!0,o}function validateDirectiveName(e){isBuiltInDirective(e)&&warn$1$1("Do not use built-in directive ids as custom directive id: "+e)}function withDirectives(e,t){if(currentRenderingInstance===null)return warn$1$1("withDirectives can only be used inside render functions."),e;const r=getComponentPublicInstance(currentRenderingInstance),o=e.dirs||(e.dirs=[]);for(let l=0;l1)return r&&isFunction$1(t)?t.call(o&&o.proxy):t;warn$1$1(`injection "${String(e)}" not found.`)}else warn$1$1("inject() can only be used inside setup() or functional components.")}function hasInjectionContext(){return!!(getCurrentInstance()||currentApp)}const ssrContextKey=Symbol.for("v-scx"),useSSRContext=()=>{{const e=inject(ssrContextKey);return e||warn$1$1("Server rendering context not provided. Make sure to only call useSSRContext() conditionally in the server build."),e}};function watchEffect(e,t){return doWatch(e,null,t)}function watchPostEffect(e,t){return doWatch(e,null,extend$1({},t,{flush:"post"}))}function watchSyncEffect(e,t){return doWatch(e,null,extend$1({},t,{flush:"sync"}))}function watch(e,t,r){return isFunction$1(t)||warn$1$1("`watch(fn, options?)` signature has been moved to a separate API. Use `watchEffect(fn, options?)` instead. `watch` now only supports `watch(source, cb, options?) signature."),doWatch(e,t,r)}function doWatch(e,t,r=EMPTY_OBJ){const{immediate:o,deep:l,flush:n,once:s}=r;t||(o!==void 0&&warn$1$1('watch() "immediate" option is only respected when using the watch(source, callback, options?) signature.'),l!==void 0&&warn$1$1('watch() "deep" option is only respected when using the watch(source, callback, options?) signature.'),s!==void 0&&warn$1$1('watch() "once" option is only respected when using the watch(source, callback, options?) signature.'));const f=extend$1({},r);f.onWarn=warn$1$1;const d=t&&o||!t&&n!=="post";let m;if(isInSSRComponentSetup){if(n==="sync"){const w=useSSRContext();m=w.__watcherHandles||(w.__watcherHandles=[])}else if(!d){const w=()=>{};return w.stop=NOOP,w.resume=NOOP,w.pause=NOOP,w}}const g=currentInstance;f.call=(w,S,C)=>callWithAsyncErrorHandling(w,g,S,C);let y=!1;n==="post"?f.scheduler=w=>{queuePostRenderEffect(w,g&&g.suspense)}:n!=="sync"&&(y=!0,f.scheduler=(w,S)=>{S?w():queueJob(w)}),f.augmentJob=w=>{t&&(w.flags|=4),y&&(w.flags|=2,g&&(w.id=g.uid,w.i=g))};const _=watch$1(e,t,f);return isInSSRComponentSetup&&(m?m.push(_):d&&_()),_}function instanceWatch(e,t,r){const o=this.proxy,l=isString$1(e)?e.includes(".")?createPathGetter(o,e):()=>o[e]:e.bind(o,o);let n;isFunction$1(t)?n=t:(n=t.handler,r=t);const s=setCurrentInstance(this),f=doWatch(l,n.bind(o),r);return s(),f}function createPathGetter(e,t){const r=t.split(".");return()=>{let o=e;for(let l=0;le.__isTeleport,isTeleportDisabled=e=>e&&(e.disabled||e.disabled===""),isTeleportDeferred=e=>e&&(e.defer||e.defer===""),isTargetSVG=e=>typeof SVGElement<"u"&&e instanceof SVGElement,isTargetMathML=e=>typeof MathMLElement=="function"&&e instanceof MathMLElement,resolveTarget=(e,t)=>{const r=e&&e.to;if(isString$1(r))if(t){const o=t(r);return!o&&!isTeleportDisabled(e)&&warn$1$1(`Failed to locate Teleport target with selector "${r}". Note the target element must exist before the component is mounted - i.e. the target cannot be rendered by the component itself, and ideally should be outside of the entire Vue component tree.`),o}else return warn$1$1("Current renderer does not support string target for Teleports. (missing querySelector renderer option)"),null;else return!r&&!isTeleportDisabled(e)&&warn$1$1(`Invalid Teleport target: ${r}`),r},TeleportImpl={name:"Teleport",__isTeleport:!0,process(e,t,r,o,l,n,s,f,d,m){const{mc:g,pc:y,pbc:_,o:{insert:w,querySelector:S,createText:C,createComment:B}}=m,$=isTeleportDisabled(t.props);let{shapeFlag:k,children:L,dynamicChildren:F}=t;if(isHmrUpdating&&(d=!1,F=null),e==null){const q=t.el=B("teleport start"),H=t.anchor=B("teleport end");w(q,r,o),w(H,r,o);const V=(K,te)=>{k&16&&g(L,K,te,l,n,s,f,d)},Y=()=>{const K=t.target=resolveTarget(t.props,S),te=prepareAnchor(K,t,C,w);K?(s!=="svg"&&isTargetSVG(K)?s="svg":s!=="mathml"&&isTargetMathML(K)&&(s="mathml"),l&&l.isCE&&(l.ce._teleportTargets||(l.ce._teleportTargets=new Set)).add(K),$||(V(K,te),updateCssVars(t,!1))):$||warn$1$1("Invalid Teleport target on mount:",K,`(${typeof K})`)};$&&(V(r,H),updateCssVars(t,!0)),isTeleportDeferred(t.props)?(t.el.__isMounted=!1,queuePostRenderEffect(()=>{Y(),delete t.el.__isMounted},n)):Y()}else{if(isTeleportDeferred(t.props)&&e.el.__isMounted===!1){queuePostRenderEffect(()=>{TeleportImpl.process(e,t,r,o,l,n,s,f,d,m)},n);return}t.el=e.el,t.targetStart=e.targetStart;const q=t.anchor=e.anchor,H=t.target=e.target,V=t.targetAnchor=e.targetAnchor,Y=isTeleportDisabled(e.props),K=Y?r:H,te=Y?q:V;if(s==="svg"||isTargetSVG(H)?s="svg":(s==="mathml"||isTargetMathML(H))&&(s="mathml"),F?(_(e.dynamicChildren,F,K,l,n,s,f),traverseStaticChildren(e,t,!1)):d||y(e,t,K,te,l,n,s,f,!1),$)Y?t.props&&e.props&&t.props.to!==e.props.to&&(t.props.to=e.props.to):moveTeleport(t,r,q,m,1);else if((t.props&&t.props.to)!==(e.props&&e.props.to)){const P=t.target=resolveTarget(t.props,S);P?moveTeleport(t,P,null,m,0):warn$1$1("Invalid Teleport target on update:",H,`(${typeof H})`)}else Y&&moveTeleport(t,H,V,m,1);updateCssVars(t,$)}},remove(e,t,r,{um:o,o:{remove:l}},n){const{shapeFlag:s,children:f,anchor:d,targetStart:m,targetAnchor:g,target:y,props:_}=e;if(y&&(l(m),l(g)),n&&l(d),s&16){const w=n||!isTeleportDisabled(_);for(let S=0;S{e.isMounted=!0}),onBeforeUnmount(()=>{e.isUnmounting=!0}),e}const TransitionHookValidator=[Function,Array],BaseTransitionPropsValidators={mode:String,appear:Boolean,persisted:Boolean,onBeforeEnter:TransitionHookValidator,onEnter:TransitionHookValidator,onAfterEnter:TransitionHookValidator,onEnterCancelled:TransitionHookValidator,onBeforeLeave:TransitionHookValidator,onLeave:TransitionHookValidator,onAfterLeave:TransitionHookValidator,onLeaveCancelled:TransitionHookValidator,onBeforeAppear:TransitionHookValidator,onAppear:TransitionHookValidator,onAfterAppear:TransitionHookValidator,onAppearCancelled:TransitionHookValidator},recursiveGetSubtree=e=>{const t=e.subTree;return t.component?recursiveGetSubtree(t.component):t},BaseTransitionImpl={name:"BaseTransition",props:BaseTransitionPropsValidators,setup(e,{slots:t}){const r=getCurrentInstance(),o=useTransitionState();return()=>{const l=t.default&&getTransitionRawChildren(t.default(),!0);if(!l||!l.length)return;const n=findNonCommentChild(l),s=toRaw(e),{mode:f}=s;if(f&&f!=="in-out"&&f!=="out-in"&&f!=="default"&&warn$1$1(`invalid mode: ${f}`),o.isLeaving)return emptyPlaceholder(n);const d=getInnerChild$1(n);if(!d)return emptyPlaceholder(n);let m=resolveTransitionHooks(d,s,o,r,y=>m=y);d.type!==Comment&&setTransitionHooks(d,m);let g=r.subTree&&getInnerChild$1(r.subTree);if(g&&g.type!==Comment&&!isSameVNodeType(g,d)&&recursiveGetSubtree(r).type!==Comment){let y=resolveTransitionHooks(g,s,o,r);if(setTransitionHooks(g,y),f==="out-in"&&d.type!==Comment)return o.isLeaving=!0,y.afterLeave=()=>{o.isLeaving=!1,r.job.flags&8||r.update(),delete y.afterLeave,g=void 0},emptyPlaceholder(n);f==="in-out"&&d.type!==Comment?y.delayLeave=(_,w,S)=>{const C=getLeavingNodesForType(o,g);C[String(g.key)]=g,_[leaveCbKey]=()=>{w(),_[leaveCbKey]=void 0,delete m.delayedLeave,g=void 0},m.delayedLeave=()=>{S(),delete m.delayedLeave,g=void 0}}:g=void 0}else g&&(g=void 0);return n}}};function findNonCommentChild(e){let t=e[0];if(e.length>1){let r=!1;for(const o of e)if(o.type!==Comment){if(r){warn$1$1(" can only be used on a single element or component. Use for lists.");break}t=o,r=!0}}return t}const BaseTransition=BaseTransitionImpl;function getLeavingNodesForType(e,t){const{leavingVNodes:r}=e;let o=r.get(t.type);return o||(o=Object.create(null),r.set(t.type,o)),o}function resolveTransitionHooks(e,t,r,o,l){const{appear:n,mode:s,persisted:f=!1,onBeforeEnter:d,onEnter:m,onAfterEnter:g,onEnterCancelled:y,onBeforeLeave:_,onLeave:w,onAfterLeave:S,onLeaveCancelled:C,onBeforeAppear:B,onAppear:$,onAfterAppear:k,onAppearCancelled:L}=t,F=String(e.key),q=getLeavingNodesForType(r,e),H=(K,te)=>{K&&callWithAsyncErrorHandling(K,o,9,te)},V=(K,te)=>{const P=te[1];H(K,te),isArray$3(K)?K.every(a=>a.length<=1)&&P():K.length<=1&&P()},Y={mode:s,persisted:f,beforeEnter(K){let te=d;if(!r.isMounted)if(n)te=B||d;else return;K[leaveCbKey]&&K[leaveCbKey](!0);const P=q[F];P&&isSameVNodeType(e,P)&&P.el[leaveCbKey]&&P.el[leaveCbKey](),H(te,[K])},enter(K){if(q[F]===e)return;let te=m,P=g,a=y;if(!r.isMounted)if(n)te=$||m,P=k||g,a=L||y;else return;let c=!1;K[enterCbKey$1]=b=>{c||(c=!0,b?H(a,[K]):H(P,[K]),Y.delayedLeave&&Y.delayedLeave(),K[enterCbKey$1]=void 0)};const v=K[enterCbKey$1].bind(null,!1);te?V(te,[K,v]):v()},leave(K,te){const P=String(e.key);if(K[enterCbKey$1]&&K[enterCbKey$1](!0),r.isUnmounting)return te();H(_,[K]);let a=!1;K[leaveCbKey]=v=>{a||(a=!0,te(),v?H(C,[K]):H(S,[K]),K[leaveCbKey]=void 0,q[P]===e&&delete q[P])};const c=K[leaveCbKey].bind(null,!1);q[P]=e,w?V(w,[K,c]):c()},clone(K){const te=resolveTransitionHooks(K,t,r,o,l);return l&&l(te),te}};return Y}function emptyPlaceholder(e){if(isKeepAlive(e))return e=cloneVNode(e),e.children=null,e}function getInnerChild$1(e){if(!isKeepAlive(e))return isTeleport(e.type)&&e.children?findNonCommentChild(e.children):e;if(e.component)return e.component.subTree;const{shapeFlag:t,children:r}=e;if(r){if(t&16)return r[0];if(t&32&&isFunction$1(r.default))return r.default()}}function setTransitionHooks(e,t){e.shapeFlag&6&&e.component?(e.transition=t,setTransitionHooks(e.component.subTree,t)):e.shapeFlag&128?(e.ssContent.transition=t.clone(e.ssContent),e.ssFallback.transition=t.clone(e.ssFallback)):e.transition=t}function getTransitionRawChildren(e,t=!1,r){let o=[],l=0;for(let n=0;n1)for(let n=0;nr.value,set:n=>r.value=n})}else warn$1$1("useTemplateRef() is called when there is no active component instance to be associated with.");const o=readonly(r);return knownTemplateRefs.add(o),o}function isTemplateRefKey(e,t){let r;return!!((r=Object.getOwnPropertyDescriptor(e,t))&&!r.configurable)}const pendingSetRefMap=new WeakMap;function setRef(e,t,r,o,l=!1){if(isArray$3(e)){e.forEach((C,B)=>setRef(C,t&&(isArray$3(t)?t[B]:t),r,o,l));return}if(isAsyncWrapper(o)&&!l){o.shapeFlag&512&&o.type.__asyncResolved&&o.component.subTree.component&&setRef(e,t,r,o.component.subTree);return}const n=o.shapeFlag&4?getComponentPublicInstance(o.component):o.el,s=l?null:n,{i:f,r:d}=e;if(!f){warn$1$1("Missing ref owner context. ref cannot be used on hoisted vnodes. A vnode with ref must be created inside the render function.");return}const m=t&&t.r,g=f.refs===EMPTY_OBJ?f.refs={}:f.refs,y=f.setupState,_=toRaw(y),w=y===EMPTY_OBJ?NO:C=>(hasOwn(_,C)&&!isRef(_[C])&&warn$1$1(`Template ref "${C}" used on a non-ref value. It will not work in the production build.`),knownTemplateRefs.has(_[C])||isTemplateRefKey(g,C)?!1:hasOwn(_,C)),S=(C,B)=>!(knownTemplateRefs.has(C)||B&&isTemplateRefKey(g,B));if(m!=null&&m!==d){if(invalidatePendingSetRef(t),isString$1(m))g[m]=null,w(m)&&(y[m]=null);else if(isRef(m)){const C=t;S(m,C.k)&&(m.value=null),C.k&&(g[C.k]=null)}}if(isFunction$1(d))callWithErrorHandling(d,f,12,[s,g]);else{const C=isString$1(d),B=isRef(d);if(C||B){const $=()=>{if(e.f){const k=C?w(d)?y[d]:g[d]:S(d)||!e.k?d.value:g[e.k];if(l)isArray$3(k)&&remove(k,n);else if(isArray$3(k))k.includes(n)||k.push(n);else if(C)g[d]=[n],w(d)&&(y[d]=g[d]);else{const L=[n];S(d,e.k)&&(d.value=L),e.k&&(g[e.k]=L)}}else C?(g[d]=s,w(d)&&(y[d]=s)):B?(S(d,e.k)&&(d.value=s),e.k&&(g[e.k]=s)):warn$1$1("Invalid template ref type:",d,`(${typeof d})`)};if(s){const k=()=>{$(),pendingSetRefMap.delete(e)};k.id=-1,pendingSetRefMap.set(e,k),queuePostRenderEffect(k,r)}else invalidatePendingSetRef(e),$()}else warn$1$1("Invalid template ref type:",d,`(${typeof d})`)}}function invalidatePendingSetRef(e){const t=pendingSetRefMap.get(e);t&&(t.flags|=8,pendingSetRefMap.delete(e))}let hasLoggedMismatchError=!1;const logMismatchError=()=>{hasLoggedMismatchError||(console.error("Hydration completed but contains mismatches."),hasLoggedMismatchError=!0)},isSVGContainer=e=>e.namespaceURI.includes("svg")&&e.tagName!=="foreignObject",isMathMLContainer=e=>e.namespaceURI.includes("MathML"),getContainerType=e=>{if(e.nodeType===1){if(isSVGContainer(e))return"svg";if(isMathMLContainer(e))return"mathml"}},isComment=e=>e.nodeType===8;function createHydrationFunctions(e){const{mt:t,p:r,o:{patchProp:o,createText:l,nextSibling:n,parentNode:s,remove:f,insert:d,createComment:m}}=e,g=(L,F)=>{if(!F.hasChildNodes()){warn$1$1("Attempting to hydrate existing markup but container is empty. Performing full mount instead."),r(null,L,F),flushPostFlushCbs(),F._vnode=L;return}y(F.firstChild,L,null,null,null),flushPostFlushCbs(),F._vnode=L},y=(L,F,q,H,V,Y=!1)=>{Y=Y||!!F.dynamicChildren;const K=isComment(L)&&L.data==="[",te=()=>C(L,F,q,H,V,K),{type:P,ref:a,shapeFlag:c,patchFlag:v}=F;let b=L.nodeType;F.el=L,def(L,"__vnode",F,!0),def(L,"__vueParentComponent",q,!0),v===-2&&(Y=!1,F.dynamicChildren=null);let E=null;switch(P){case Text:b!==3?F.children===""?(d(F.el=l(""),s(L),L),E=L):E=te():(L.data!==F.children&&(warn$1$1("Hydration text mismatch in",L.parentNode,` - rendered on server: ${JSON.stringify(L.data)} - - expected on client: ${JSON.stringify(F.children)}`),logMismatchError(),L.data=F.children),E=n(L));break;case Comment:k(L)?(E=n(L),$(F.el=L.content.firstChild,L,q)):b!==8||G?E=te():E=n(L);break;case Static:if(G&&(L=n(L),b=L.nodeType),b===1||b===3){E=L;const R=!F.children.length;for(let P=0;P{Y=Y||!!F.dynamicChildren;const{type:G,props:te,patchFlag:C,shapeFlag:a,dirs:c,transition:v}=F,b=G==="input"||G==="option";{c&&invokeDirectiveHook(F,null,q,"created");let E=!1;if(k(L)){E=needTransition(null,v)&&q&&q.vnode.props&&q.vnode.props.appear;const P=L.content.firstChild;if(E){const M=P.getAttribute("class");M&&(P.$cls=M),v.beforeEnter(P)}$(P,L,q),F.el=L=P}if(a&16&&!(te&&(te.innerHTML||te.textContent))){let P=w(L.firstChild,F,L,q,H,V,Y),M=!1;for(;P;){isMismatchAllowed(L,1)||(M||(warn$1$1("Hydration children mismatch on",L,` -Server rendered element contains more child nodes than client vdom.`),M=!0),logMismatchError());const u=P;P=P.nextSibling,f(u)}}else if(a&8){let P=F.children;P[0]===` -`&&(L.tagName==="PRE"||L.tagName==="TEXTAREA")&&(P=P.slice(1));const{textContent:M}=L;M!==P&&M!==P.replace(/\r\n|\r/g,` + - expected on client: ${JSON.stringify(F.children)}`),logMismatchError(),L.data=F.children),E=n(L));break;case Comment:k(L)?(E=n(L),$(F.el=L.content.firstChild,L,q)):b!==8||K?E=te():E=n(L);break;case Static:if(K&&(L=n(L),b=L.nodeType),b===1||b===3){E=L;const O=!F.children.length;for(let N=0;N{Y=Y||!!F.dynamicChildren;const{type:K,props:te,patchFlag:P,shapeFlag:a,dirs:c,transition:v}=F,b=K==="input"||K==="option";{c&&invokeDirectiveHook(F,null,q,"created");let E=!1;if(k(L)){E=needTransition(null,v)&&q&&q.vnode.props&&q.vnode.props.appear;const N=L.content.firstChild;if(E){const T=N.getAttribute("class");T&&(N.$cls=T),v.beforeEnter(N)}$(N,L,q),F.el=L=N}if(a&16&&!(te&&(te.innerHTML||te.textContent))){let N=w(L.firstChild,F,L,q,H,V,Y),T=!1;for(;N;){isMismatchAllowed(L,1)||(T||(warn$1$1("Hydration children mismatch on",L,` +Server rendered element contains more child nodes than client vdom.`),T=!0),logMismatchError());const u=N;N=N.nextSibling,f(u)}}else if(a&8){let N=F.children;N[0]===` +`&&(L.tagName==="PRE"||L.tagName==="TEXTAREA")&&(N=N.slice(1));const{textContent:T}=L;T!==N&&T!==N.replace(/\r\n|\r/g,` `)&&(isMismatchAllowed(L,0)||(warn$1$1("Hydration text content mismatch on",L,` - - rendered on server: ${M} - - expected on client: ${P}`),logMismatchError()),L.textContent=F.children)}if(te){const P=L.tagName.includes("-");for(const M in te)!(c&&c.some(u=>u.dir.created))&&propHasMismatch(L,M,te[M],F,q)&&logMismatchError(),(b&&(M.endsWith("value")||M==="indeterminate")||isOn(M)&&!isReservedProp(M)||M[0]==="."||P&&!isReservedProp(M))&&o(L,M,null,te[M],void 0,q)}let R;(R=te&&te.onVnodeBeforeMount)&&invokeVNodeHook(R,q,F),c&&invokeDirectiveHook(F,null,q,"beforeMount"),((R=te&&te.onVnodeMounted)||c||E)&&queueEffectWithSuspense(()=>{R&&invokeVNodeHook(R,q,F),E&&v.enter(L),c&&invokeDirectiveHook(F,null,q,"mounted")},H)}return L.nextSibling},w=(L,F,q,H,V,Y,G)=>{G=G||!!F.dynamicChildren;const te=F.children,C=te.length;let a=!1;for(let c=0;c{const{slotScopeIds:G}=F;G&&(V=V?V.concat(G):G);const te=s(L),C=w(n(L),F,te,q,H,V,Y);return C&&isComment(C)&&C.data==="]"?n(F.anchor=C):(logMismatchError(),d(F.anchor=m("]"),te,C),C)},O=(L,F,q,H,V,Y)=>{if(isMismatchAllowed(L.parentElement,1)||(warn$1$1(`Hydration node mismatch: + - rendered on server: ${T} + - expected on client: ${N}`),logMismatchError()),L.textContent=F.children)}if(te){const N=L.tagName.includes("-");for(const T in te)!(c&&c.some(u=>u.dir.created))&&propHasMismatch(L,T,te[T],F,q)&&logMismatchError(),(b&&(T.endsWith("value")||T==="indeterminate")||isOn(T)&&!isReservedProp(T)||T[0]==="."||N&&!isReservedProp(T))&&o(L,T,null,te[T],void 0,q)}let O;(O=te&&te.onVnodeBeforeMount)&&invokeVNodeHook(O,q,F),c&&invokeDirectiveHook(F,null,q,"beforeMount"),((O=te&&te.onVnodeMounted)||c||E)&&queueEffectWithSuspense(()=>{O&&invokeVNodeHook(O,q,F),E&&v.enter(L),c&&invokeDirectiveHook(F,null,q,"mounted")},H)}return L.nextSibling},w=(L,F,q,H,V,Y,K)=>{K=K||!!F.dynamicChildren;const te=F.children,P=te.length;let a=!1;for(let c=0;c{const{slotScopeIds:K}=F;K&&(V=V?V.concat(K):K);const te=s(L),P=w(n(L),F,te,q,H,V,Y);return P&&isComment(P)&&P.data==="]"?n(F.anchor=P):(logMismatchError(),d(F.anchor=m("]"),te,P),P)},C=(L,F,q,H,V,Y)=>{if(isMismatchAllowed(L.parentElement,1)||(warn$1$1(`Hydration node mismatch: - rendered on server:`,L,L.nodeType===3?"(text)":isComment(L)&&L.data==="["?"(start of fragment)":"",` -- expected on client:`,F.type),logMismatchError()),F.el=null,Y){const C=B(L);for(;;){const a=n(L);if(a&&a!==C)f(a);else break}}const G=n(L),te=s(L);return f(L),r(null,F,te,G,q,H,getContainerType(te),V),q&&(q.vnode.el=F.el,updateHOCHostEl(q,F.el)),G},B=(L,F="[",q="]")=>{let H=0;for(;L;)if(L=n(L),L&&isComment(L)&&(L.data===F&&H++,L.data===q)){if(H===0)return n(L);H--}return L},$=(L,F,q)=>{const H=F.parentNode;H&&H.replaceChild(L,F);let V=q;for(;V;)V.vnode.el===F&&(V.vnode.el=V.subTree.el=L),V=V.parent},k=L=>L.nodeType===1&&L.tagName==="TEMPLATE";return[g,y]}function propHasMismatch(e,t,r,o,l){let n,s,f,d;if(t==="class")e.$cls?(f=e.$cls,delete e.$cls):f=e.getAttribute("class"),d=normalizeClass(r),isSetEqual(toClassSet(f||""),toClassSet(d))||(n=2,s="class");else if(t==="style"){f=e.getAttribute("style")||"",d=isString$1(r)?r:stringifyStyle(normalizeStyle(r));const m=toStyleMap(f),g=toStyleMap(d);if(o.dirs)for(const{dir:y,value:_}of o.dirs)y.name==="show"&&!_&&g.set("display","none");l&&resolveCssVars(l,o,g),isMapEqual(m,g)||(n=3,s="style")}else(e instanceof SVGElement&&isKnownSvgAttr(t)||e instanceof HTMLElement&&(isBooleanAttr(t)||isKnownHtmlAttr(t)))&&(isBooleanAttr(t)?(f=e.hasAttribute(t),d=includeBooleanAttr(r)):r==null?(f=e.hasAttribute(t),d=!1):(e.hasAttribute(t)?f=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?f=e.value:f=!1,d=isRenderableAttrValue(r)?String(r):!1),f!==d&&(n=4,s=t));if(n!=null&&!isMismatchAllowed(e,n)){const m=_=>_===!1?"(not rendered)":`${s}="${_}"`,g=`Hydration ${MismatchTypeString[n]} mismatch on`,y=` +- expected on client:`,F.type),logMismatchError()),F.el=null,Y){const P=B(L);for(;;){const a=n(L);if(a&&a!==P)f(a);else break}}const K=n(L),te=s(L);return f(L),r(null,F,te,K,q,H,getContainerType(te),V),q&&(q.vnode.el=F.el,updateHOCHostEl(q,F.el)),K},B=(L,F="[",q="]")=>{let H=0;for(;L;)if(L=n(L),L&&isComment(L)&&(L.data===F&&H++,L.data===q)){if(H===0)return n(L);H--}return L},$=(L,F,q)=>{const H=F.parentNode;H&&H.replaceChild(L,F);let V=q;for(;V;)V.vnode.el===F&&(V.vnode.el=V.subTree.el=L),V=V.parent},k=L=>L.nodeType===1&&L.tagName==="TEMPLATE";return[g,y]}function propHasMismatch(e,t,r,o,l){let n,s,f,d;if(t==="class")e.$cls?(f=e.$cls,delete e.$cls):f=e.getAttribute("class"),d=normalizeClass(r),isSetEqual(toClassSet(f||""),toClassSet(d))||(n=2,s="class");else if(t==="style"){f=e.getAttribute("style")||"",d=isString$1(r)?r:stringifyStyle(normalizeStyle(r));const m=toStyleMap(f),g=toStyleMap(d);if(o.dirs)for(const{dir:y,value:_}of o.dirs)y.name==="show"&&!_&&g.set("display","none");l&&resolveCssVars(l,o,g),isMapEqual(m,g)||(n=3,s="style")}else(e instanceof SVGElement&&isKnownSvgAttr(t)||e instanceof HTMLElement&&(isBooleanAttr(t)||isKnownHtmlAttr(t)))&&(isBooleanAttr(t)?(f=e.hasAttribute(t),d=includeBooleanAttr(r)):r==null?(f=e.hasAttribute(t),d=!1):(e.hasAttribute(t)?f=e.getAttribute(t):t==="value"&&e.tagName==="TEXTAREA"?f=e.value:f=!1,d=isRenderableAttrValue(r)?String(r):!1),f!==d&&(n=4,s=t));if(n!=null&&!isMismatchAllowed(e,n)){const m=_=>_===!1?"(not rendered)":`${s}="${_}"`,g=`Hydration ${MismatchTypeString[n]} mismatch on`,y=` - rendered on server: ${m(f)} - expected on client: ${m(d)} Note: this mismatch is check-only. The DOM will not be rectified in production due to performance overhead. - You should fix the source of the mismatch.`;return warn$1$1(g,e,y),!0}return!1}function toClassSet(e){return new Set(e.trim().split(/\s+/))}function isSetEqual(e,t){if(e.size!==t.size)return!1;for(const r of e)if(!t.has(r))return!1;return!0}function toStyleMap(e){const t=new Map;for(const r of e.split(";")){let[o,l]=r.split(":");o=o.trim(),l=l&&l.trim(),o&&l&&t.set(o,l)}return t}function isMapEqual(e,t){if(e.size!==t.size)return!1;for(const[r,o]of e)if(o!==t.get(r))return!1;return!0}function resolveCssVars(e,t,r){const o=e.subTree;if(e.getCssVars&&(t===o||o&&o.type===Fragment&&o.children.includes(t))){const l=e.getCssVars();for(const n in l){const s=normalizeCssVarValue(l[n]);r.set(`--${getEscapedCssVarName(n,!1)}`,s)}}t===o&&e.parent&&resolveCssVars(e.parent,e.vnode,r)}const allowMismatchAttr="data-allow-mismatch",MismatchTypeString={0:"text",1:"children",2:"class",3:"style",4:"attribute"};function isMismatchAllowed(e,t){if(t===0||t===1)for(;e&&!e.hasAttribute(allowMismatchAttr);)e=e.parentElement;const r=e&&e.getAttribute(allowMismatchAttr);if(r==null)return!1;if(r==="")return!0;{const o=r.split(",");return t===0&&o.includes("children")?!0:o.includes(MismatchTypeString[t])}}const requestIdleCallback=getGlobalThis().requestIdleCallback||(e=>setTimeout(e,1)),cancelIdleCallback=getGlobalThis().cancelIdleCallback||(e=>clearTimeout(e)),hydrateOnIdle=(e=1e4)=>t=>{const r=requestIdleCallback(t,{timeout:e});return()=>cancelIdleCallback(r)};function elementIsVisibleInViewport(e){const{top:t,left:r,bottom:o,right:l}=e.getBoundingClientRect(),{innerHeight:n,innerWidth:s}=window;return(t>0&&t0&&o0&&r0&&l(t,r)=>{const o=new IntersectionObserver(l=>{for(const n of l)if(n.isIntersecting){o.disconnect(),t();break}},e);return r(l=>{if(l instanceof Element){if(elementIsVisibleInViewport(l))return t(),o.disconnect(),!1;o.observe(l)}}),()=>o.disconnect()},hydrateOnMediaQuery=e=>t=>{if(e){const r=matchMedia(e);if(r.matches)t();else return r.addEventListener("change",t,{once:!0}),()=>r.removeEventListener("change",t)}},hydrateOnInteraction=(e=[])=>(t,r)=>{isString$1(e)&&(e=[e]);let o=!1;const l=s=>{o||(o=!0,n(),t(),s.target.dispatchEvent(new s.constructor(s.type,s)))},n=()=>{r(s=>{for(const f of e)s.removeEventListener(f,l)})};return r(s=>{for(const f of e)s.addEventListener(f,l,{once:!0})}),n};function forEachElement(e,t){if(isComment(e)&&e.data==="["){let r=1,o=e.nextSibling;for(;o;){if(o.nodeType===1){if(t(o)===!1)break}else if(isComment(o))if(o.data==="]"){if(--r===0)break}else o.data==="["&&r++;o=o.nextSibling}}else t(e)}const isAsyncWrapper=e=>!!e.type.__asyncLoader;function defineAsyncComponent(e){isFunction$1(e)&&(e={loader:e});const{loader:t,loadingComponent:r,errorComponent:o,delay:l=200,hydrate:n,timeout:s,suspensible:f=!0,onError:d}=e;let m=null,g,y=0;const _=()=>(y++,m=null,w()),w=()=>{let S;return m||(S=m=t().catch(O=>{if(O=O instanceof Error?O:new Error(String(O)),d)return new Promise((B,$)=>{d(O,()=>B(_()),()=>$(O),y+1)});throw O}).then(O=>{if(S!==m&&m)return m;if(O||warn$1$1("Async component loader resolved to undefined. If you are using retry(), make sure to return its return value."),O&&(O.__esModule||O[Symbol.toStringTag]==="Module")&&(O=O.default),O&&!isObject$2(O)&&!isFunction$1(O))throw new Error(`Invalid async component load result: ${O}`);return g=O,O}))};return defineComponent({name:"AsyncComponentWrapper",__asyncLoader:w,__asyncHydrate(S,O,B){let $=!1;(O.bu||(O.bu=[])).push(()=>$=!0);const k=()=>{if($){warn$1$1(`Skipping lazy hydration for component '${getComponentName(g)||g.__file}': it was updated before lazy hydration performed.`);return}B()},L=n?()=>{const F=n(k,q=>forEachElement(S,q));F&&(O.bum||(O.bum=[])).push(F)}:k;g?L():w().then(()=>!O.isUnmounted&&L())},get __asyncResolved(){return g},setup(){const S=currentInstance;if(markAsyncBoundary(S),g)return()=>createInnerComp(g,S);const O=L=>{m=null,handleError(L,S,13,!o)};if(f&&S.suspense||isInSSRComponentSetup)return w().then(L=>()=>createInnerComp(L,S)).catch(L=>(O(L),()=>o?createVNode(o,{error:L}):null));const B=ref$1(!1),$=ref$1(),k=ref$1(!!l);return l&&setTimeout(()=>{k.value=!1},l),s!=null&&setTimeout(()=>{if(!B.value&&!$.value){const L=new Error(`Async component timed out after ${s}ms.`);O(L),$.value=L}},s),w().then(()=>{B.value=!0,S.parent&&isKeepAlive(S.parent.vnode)&&S.parent.update()}).catch(L=>{O(L),$.value=L}),()=>{if(B.value&&g)return createInnerComp(g,S);if($.value&&o)return createVNode(o,{error:$.value});if(r&&!k.value)return createInnerComp(r,S)}}})}function createInnerComp(e,t){const{ref:r,props:o,children:l,ce:n}=t.vnode,s=createVNode(e,o,l);return s.ref=r,s.ce=n,delete t.vnode.ce,s}const isKeepAlive=e=>e.type.__isKeepAlive,KeepAliveImpl={name:"KeepAlive",__isKeepAlive:!0,props:{include:[String,RegExp,Array],exclude:[String,RegExp,Array],max:[String,Number]},setup(e,{slots:t}){const r=getCurrentInstance(),o=r.ctx;if(!o.renderer)return()=>{const k=t.default&&t.default();return k&&k.length===1?k[0]:k};const l=new Map,n=new Set;let s=null;r.__v_cache=l;const f=r.suspense,{renderer:{p:d,m,um:g,o:{createElement:y}}}=o,_=y("div");o.activate=(k,L,F,q,H)=>{const V=k.component;m(k,L,F,0,f),d(V.vnode,k,L,F,V,f,q,k.slotScopeIds,H),queuePostRenderEffect(()=>{V.isDeactivated=!1,V.a&&invokeArrayFns(V.a);const Y=k.props&&k.props.onVnodeMounted;Y&&invokeVNodeHook(Y,V.parent,k)},f),devtoolsComponentAdded(V)},o.deactivate=k=>{const L=k.component;invalidateMount(L.m),invalidateMount(L.a),m(k,_,null,1,f),queuePostRenderEffect(()=>{L.da&&invokeArrayFns(L.da);const F=k.props&&k.props.onVnodeUnmounted;F&&invokeVNodeHook(F,L.parent,k),L.isDeactivated=!0},f),devtoolsComponentAdded(L),L.__keepAliveStorageContainer=_};function w(k){resetShapeFlag(k),g(k,r,f,!0)}function S(k){l.forEach((L,F)=>{const q=getComponentName(isAsyncWrapper(L)?L.type.__asyncResolved||{}:L.type);q&&!k(q)&&O(F)})}function O(k){const L=l.get(k);L&&(!s||!isSameVNodeType(L,s))?w(L):s&&resetShapeFlag(s),l.delete(k),n.delete(k)}watch(()=>[e.include,e.exclude],([k,L])=>{k&&S(F=>matches$1(k,F)),L&&S(F=>!matches$1(L,F))},{flush:"post",deep:!0});let B=null;const $=()=>{B!=null&&(isSuspense(r.subTree.type)?queuePostRenderEffect(()=>{l.set(B,getInnerChild(r.subTree))},r.subTree.suspense):l.set(B,getInnerChild(r.subTree)))};return onMounted($),onUpdated($),onBeforeUnmount(()=>{l.forEach(k=>{const{subTree:L,suspense:F}=r,q=getInnerChild(L);if(k.type===q.type&&k.key===q.key){resetShapeFlag(q);const H=q.component.da;H&&queuePostRenderEffect(H,F);return}w(k)})}),()=>{if(B=null,!t.default)return s=null;const k=t.default(),L=k[0];if(k.length>1)return warn$1$1("KeepAlive should contain exactly one component child."),s=null,k;if(!isVNode(L)||!(L.shapeFlag&4)&&!(L.shapeFlag&128))return s=null,L;let F=getInnerChild(L);if(F.type===Comment)return s=null,F;const q=F.type,H=getComponentName(isAsyncWrapper(F)?F.type.__asyncResolved||{}:q),{include:V,exclude:Y,max:G}=e;if(V&&(!H||!matches$1(V,H))||Y&&H&&matches$1(Y,H))return F.shapeFlag&=-257,s=F,L;const te=F.key==null?q:F.key,C=l.get(te);return F.el&&(F=cloneVNode(F),L.shapeFlag&128&&(L.ssContent=F)),B=te,C?(F.el=C.el,F.component=C.component,F.transition&&setTransitionHooks(F,F.transition),F.shapeFlag|=512,n.delete(te),n.add(te)):(n.add(te),G&&n.size>parseInt(G,10)&&O(n.values().next().value)),F.shapeFlag|=256,s=F,isSuspense(L.type)?L:F}}},KeepAlive=KeepAliveImpl;function matches$1(e,t){return isArray$3(e)?e.some(r=>matches$1(r,t)):isString$1(e)?e.split(",").includes(t):isRegExp$1(e)?(e.lastIndex=0,e.test(t)):!1}function onActivated(e,t){registerKeepAliveHook(e,"a",t)}function onDeactivated(e,t){registerKeepAliveHook(e,"da",t)}function registerKeepAliveHook(e,t,r=currentInstance){const o=e.__wdc||(e.__wdc=()=>{let l=r;for(;l;){if(l.isDeactivated)return;l=l.parent}return e()});if(injectHook(t,o,r),r){let l=r.parent;for(;l&&l.parent;)isKeepAlive(l.parent.vnode)&&injectToKeepAliveRoot(o,t,r,l),l=l.parent}}function injectToKeepAliveRoot(e,t,r,o){const l=injectHook(t,e,o,!0);onUnmounted(()=>{remove(o[t],l)},r)}function resetShapeFlag(e){e.shapeFlag&=-257,e.shapeFlag&=-513}function getInnerChild(e){return e.shapeFlag&128?e.ssContent:e}function injectHook(e,t,r=currentInstance,o=!1){if(r){const l=r[e]||(r[e]=[]),n=t.__weh||(t.__weh=(...s)=>{pauseTracking();const f=setCurrentInstance(r),d=callWithAsyncErrorHandling(t,r,e,s);return f(),resetTracking(),d});return o?l.unshift(n):l.push(n),n}else{const l=toHandlerKey(ErrorTypeStrings$1[e].replace(/ hook$/,""));warn$1$1(`${l} is called when there is no active component instance to be associated with. Lifecycle injection APIs can only be used during execution of setup(). If you are using async setup(), make sure to register lifecycle hooks before the first await statement.`)}}const createHook=e=>(t,r=currentInstance)=>{(!isInSSRComponentSetup||e==="sp")&&injectHook(e,(...o)=>t(...o),r)},onBeforeMount=createHook("bm"),onMounted=createHook("m"),onBeforeUpdate=createHook("bu"),onUpdated=createHook("u"),onBeforeUnmount=createHook("bum"),onUnmounted=createHook("um"),onServerPrefetch=createHook("sp"),onRenderTriggered=createHook("rtg"),onRenderTracked=createHook("rtc");function onErrorCaptured(e,t=currentInstance){injectHook("ec",e,t)}const COMPONENTS="components",DIRECTIVES="directives";function resolveComponent(e,t){return resolveAsset(COMPONENTS,e,!0,t)||e}const NULL_DYNAMIC_COMPONENT=Symbol.for("v-ndc");function resolveDynamicComponent(e){return isString$1(e)?resolveAsset(COMPONENTS,e,!1)||e:e||NULL_DYNAMIC_COMPONENT}function resolveDirective(e){return resolveAsset(DIRECTIVES,e)}function resolveAsset(e,t,r=!0,o=!1){const l=currentRenderingInstance||currentInstance;if(l){const n=l.type;if(e===COMPONENTS){const f=getComponentName(n,!1);if(f&&(f===t||f===camelize(t)||f===capitalize(camelize(t))))return n}const s=resolve$2(l[e]||n[e],t)||resolve$2(l.appContext[e],t);if(!s&&o)return n;if(r&&!s){const f=e===COMPONENTS?` -If this is a native custom element, make sure to exclude it from component resolution via compilerOptions.isCustomElement.`:"";warn$1$1(`Failed to resolve ${e.slice(0,-1)}: ${t}${f}`)}return s}else warn$1$1(`resolve${capitalize(e.slice(0,-1))} can only be used in render() or setup().`)}function resolve$2(e,t){return e&&(e[t]||e[camelize(t)]||e[capitalize(camelize(t))])}function renderList(e,t,r,o){let l;const n=r&&r[o],s=isArray$3(e);if(s||isString$1(e)){const f=s&&isReactive(e);let d=!1,m=!1;f&&(d=!isShallow(e),m=isReadonly$1(e),e=shallowReadArray(e)),l=new Array(e.length);for(let g=0,y=e.length;gt(f,d,void 0,n&&n[d]));else{const f=Object.keys(e);l=new Array(f.length);for(let d=0,m=f.length;d{const n=o.fn(...l);return n&&(n.key=o.key),n}:o.fn)}return e}function renderSlot(e,t,r={},o,l){if(currentRenderingInstance.ce||currentRenderingInstance.parent&&isAsyncWrapper(currentRenderingInstance.parent)&¤tRenderingInstance.parent.ce){const m=Object.keys(r).length>0;return t!=="default"&&(r.name=t),openBlock(),createBlock(Fragment,null,[createVNode("slot",r,o&&o())],m?-2:64)}let n=e[t];n&&n.length>1&&(warn$1$1("SSR-optimized slot function detected in a non-SSR-optimized render function. You need to mark this component with $dynamic-slots in the parent template."),n=()=>[]),n&&n._c&&(n._d=!1),openBlock();const s=n&&ensureValidVNode(n(r)),f=r.key||s&&s.key,d=createBlock(Fragment,{key:(f&&!isSymbol$1(f)?f:`_${t}`)+(!s&&o?"_fb":"")},s||(o?o():[]),s&&e._===1?64:-2);return!l&&d.scopeId&&(d.slotScopeIds=[d.scopeId+"-s"]),n&&n._c&&(n._d=!0),d}function ensureValidVNode(e){return e.some(t=>isVNode(t)?!(t.type===Comment||t.type===Fragment&&!ensureValidVNode(t.children)):!0)?e:null}function toHandlers(e,t){const r={};if(!isObject$2(e))return warn$1$1("v-on with no argument expects an object value."),r;for(const o in e)r[t&&/[A-Z]/.test(o)?`on:${o}`:toHandlerKey(o)]=e[o];return r}const getPublicInstance=e=>e?isStatefulComponent(e)?getComponentPublicInstance(e):getPublicInstance(e.parent):null,publicPropertiesMap=extend$1(Object.create(null),{$:e=>e,$el:e=>e.vnode.el,$data:e=>e.data,$props:e=>shallowReadonly(e.props),$attrs:e=>shallowReadonly(e.attrs),$slots:e=>shallowReadonly(e.slots),$refs:e=>shallowReadonly(e.refs),$parent:e=>getPublicInstance(e.parent),$root:e=>getPublicInstance(e.root),$host:e=>e.ce,$emit:e=>e.emit,$options:e=>resolveMergedOptions(e),$forceUpdate:e=>e.f||(e.f=()=>{queueJob(e.update)}),$nextTick:e=>e.n||(e.n=nextTick.bind(e.proxy)),$watch:e=>instanceWatch.bind(e)}),isReservedPrefix=e=>e==="_"||e==="$",hasSetupBinding=(e,t)=>e!==EMPTY_OBJ&&!e.__isScriptSetup&&hasOwn(e,t),PublicInstanceProxyHandlers={get({_:e},t){if(t==="__v_skip")return!0;const{ctx:r,setupState:o,data:l,props:n,accessCache:s,type:f,appContext:d}=e;if(t==="__isVue")return!0;if(t[0]!=="$"){const _=s[t];if(_!==void 0)switch(_){case 1:return o[t];case 2:return l[t];case 4:return r[t];case 3:return n[t]}else{if(hasSetupBinding(o,t))return s[t]=1,o[t];if(l!==EMPTY_OBJ&&hasOwn(l,t))return s[t]=2,l[t];if(hasOwn(n,t))return s[t]=3,n[t];if(r!==EMPTY_OBJ&&hasOwn(r,t))return s[t]=4,r[t];shouldCacheAccess&&(s[t]=0)}}const m=publicPropertiesMap[t];let g,y;if(m)return t==="$attrs"?(track(e.attrs,"get",""),markAttrsAccessed()):t==="$slots"&&track(e,"get",t),m(e);if((g=f.__cssModules)&&(g=g[t]))return g;if(r!==EMPTY_OBJ&&hasOwn(r,t))return s[t]=4,r[t];if(y=d.config.globalProperties,hasOwn(y,t))return y[t];currentRenderingInstance&&(!isString$1(t)||t.indexOf("__v")!==0)&&(l!==EMPTY_OBJ&&isReservedPrefix(t[0])&&hasOwn(l,t)?warn$1$1(`Property ${JSON.stringify(t)} must be accessed via $data because it starts with a reserved character ("$" or "_") and is not proxied on the render context.`):e===currentRenderingInstance&&warn$1$1(`Property ${JSON.stringify(t)} was accessed during render but is not defined on instance.`))},set({_:e},t,r){const{data:o,setupState:l,ctx:n}=e;return hasSetupBinding(l,t)?(l[t]=r,!0):l.__isScriptSetup&&hasOwn(l,t)?(warn$1$1(`Cannot mutate - - + + + - - + + From 60191b6c229869a3141db83771c2a4a6f11b550a Mon Sep 17 00:00:00 2001 From: Xoffroad <65235705+Xoffroad@users.noreply.github.com> Date: Mon, 20 Apr 2026 14:58:09 +0200 Subject: [PATCH 3/9] Qcells active battery control (#3306) * adding active battery control for qcells and new field for overload security * remove field for max_power and use max_charge_power and max_discharge_power instead * fix: switch qcells battery control to mode 1 with dynamic timing; mode 8 was not stable --- packages/modules/devices/qcells/qcells/bat.py | 104 ++++++++++++------ 1 file changed, 69 insertions(+), 35 deletions(-) diff --git a/packages/modules/devices/qcells/qcells/bat.py b/packages/modules/devices/qcells/qcells/bat.py index 2697076f35..0db941fd47 100644 --- a/packages/modules/devices/qcells/qcells/bat.py +++ b/packages/modules/devices/qcells/qcells/bat.py @@ -1,7 +1,9 @@ #!/usr/bin/env python3 import logging from typing import TypedDict, Any, Optional +from pymodbus.constants import Endian +from control import data from modules.common.abstract_device import AbstractBat from modules.common.component_state import BatState from modules.common.component_type import ComponentDescriptor @@ -14,22 +16,19 @@ log = logging.getLogger(__name__) -# Solax/QCells Mode 8 Remote Control Registers (Holding Registers) -# Speichersteuerung via "Individual Setting - Duration Mode" -# Unterstuetzte Hardware: QCells Q.VOLT HYB-G3-3P (Solax Gen4), -# Solax Gen4/Gen5/Gen6 Hybrid und AC Wechselrichter. -REMOTE_CONTROL_MODE_REG = 0xA0 # U16: 0=Disabled, 8=Individual Duration -REMOTE_CONTROL_SET_TYPE_REG = 0xA1 # U16: 1=Set -REMOTE_CONTROL_PV_LIMIT_REG = 0xA2 # U32: PV Power Limit in Watt (keine Begrenzung = 30000) -REMOTE_CONTROL_PUSH_POWER_REG = 0xA4 # S32: Battery Push Power (+Entladung, -Ladung) -REMOTE_CONTROL_DURATION_REG = 0xA6 # U16: Dauer in Sekunden -REMOTE_CONTROL_TIMEOUT_REG = 0xA7 # U16: Timeout in Sekunden - -MODE_8_INDIVIDUAL_DURATION = 8 +# Solax/QCells Mode 1 Remote Control Registers (Holding Registers) +# Speichersteuerung via Active Power Sollwert. +REMOTE_CONTROL_MODE_REG = 0x7C # U16: 0=Disabled, 1=Enabled Power Control +REMOTE_CONTROL_SET_TYPE_REG = 0x7D # U16: 1=Set +REMOTE_CONTROL_ACTIVE_POWER_REG = 0x7E # S32: Active Power Sollwert in Watt +REMOTE_CONTROL_DURATION_REG = 0x82 # U16: Dauer in Sekunden +REMOTE_CONTROL_TIMEOUT_REG = 0x88 # U16: Timeout in Sekunden + +MODE_1_DISABLED = 0 +MODE_1_ENABLED_POWER_CONTROL = 1 SET_TYPE_SET = 1 -PV_LIMIT_NO_CURTAILMENT = 30000 -REMOTE_CONTROL_DURATION = 300 -REMOTE_CONTROL_TIMEOUT = 300 +MIN_REMOTE_CONTROL_DURATION = 20 +MIN_REMOTE_CONTROL_TIMEOUT = 60 class KwargsDict(TypedDict): @@ -77,40 +76,75 @@ def set_power_limit(self, power_limit: Optional[int]) -> None: if self.last_mode is not None: with self.client: self.client.write_register( - REMOTE_CONTROL_MODE_REG, 0, data_type=ModbusDataType.UINT_16, unit=unit) + REMOTE_CONTROL_MODE_REG, MODE_1_DISABLED, + data_type=ModbusDataType.UINT_16, unit=unit) self.last_mode = None else: - log.debug("Aktive Batteriesteuerung aktiv") - if self.last_mode != 'limited': - self.last_mode = 'limited' - - # Berechne power value: 0 = stop, != 0 = multipliziere mit -1 - power_value = 0 if power_limit == 0 else int(power_limit) * -1 - - self._write_mode8(power_value, unit=unit) - - def _write_mode8(self, power_value: int, unit: int) -> None: - """Schreibt die Mode 8 Remote Control Register (0xA0-0xA7).""" + if power_limit < 0: + self.last_mode = 'discharge' + elif power_limit > 0: + self.last_mode = 'charge' + else: + self.last_mode = 'stop' + + ap_target = self._get_active_power_target(int(power_limit)) + self._write_mode1(ap_target, unit=unit) + + def _get_active_power_target(self, power_limit: int) -> int: + # openWB-Werte verwenden (nicht WR-Berechnungen): + # power_limit < 0 = Entladen, 0 = Stop, > 0 = Laden + home_consumption = int(data.data.counter_all_data.data.set.home_consumption) + cp_power = int(data.data.cp_all_data.data.get.power) + house_load = max(0, home_consumption + cp_power) + pv_generation = max(0, int(data.data.pv_all_data.data.get.power * -1)) + ap_target = power_limit + house_load - pv_generation + + try: + evu_counter = data.data.counter_all_data.get_evu_counter() + import_limit = int(evu_counter.data.config.max_total_power) + except Exception: + import_limit = 0 + + if import_limit > 0: + ap_target = min(ap_target, import_limit) + + log.debug(( + f"QCells Mode1 target: power_limit={power_limit}W, home_consumption={home_consumption}W, " + f"cp_power={cp_power}W, house_load={house_load}W, " + f"pv_generation={pv_generation}W, import_limit={import_limit}W -> ap_target={ap_target}W" + )) + return int(ap_target) + + def _write_mode1(self, ap_target: int, unit: int) -> None: + """Schreibt die Mode 1 Remote Control Register (0x7C-0x88).""" + duration, timeout = self._get_mode1_timing() with self.client: self.client.write_register( - REMOTE_CONTROL_MODE_REG, MODE_8_INDIVIDUAL_DURATION, + REMOTE_CONTROL_MODE_REG, MODE_1_ENABLED_POWER_CONTROL, data_type=ModbusDataType.UINT_16, unit=unit) self.client.write_register( REMOTE_CONTROL_SET_TYPE_REG, SET_TYPE_SET, data_type=ModbusDataType.UINT_16, unit=unit) self.client.write_register( - REMOTE_CONTROL_PV_LIMIT_REG, PV_LIMIT_NO_CURTAILMENT, - data_type=ModbusDataType.UINT_32, unit=unit) + REMOTE_CONTROL_ACTIVE_POWER_REG, ap_target, + data_type=ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) self.client.write_register( - REMOTE_CONTROL_PUSH_POWER_REG, power_value, - data_type=ModbusDataType.INT_32, unit=unit) - self.client.write_register( - REMOTE_CONTROL_DURATION_REG, REMOTE_CONTROL_DURATION, + REMOTE_CONTROL_DURATION_REG, duration, data_type=ModbusDataType.UINT_16, unit=unit) self.client.write_register( - REMOTE_CONTROL_TIMEOUT_REG, REMOTE_CONTROL_TIMEOUT, + REMOTE_CONTROL_TIMEOUT_REG, timeout, data_type=ModbusDataType.UINT_16, unit=unit) + def _get_mode1_timing(self) -> tuple[int, int]: + try: + control_interval = int(data.data.general_data.data.control_interval) + except Exception: + control_interval = 10 + + duration = max(MIN_REMOTE_CONTROL_DURATION, control_interval * 2) + timeout = max(MIN_REMOTE_CONTROL_TIMEOUT, control_interval * 3) + return duration, timeout + def power_limit_controllable(self) -> bool: return True From e4e1779733b52237a15e05843a76b94e0ca11481 Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Mon, 20 Apr 2026 15:08:09 +0200 Subject: [PATCH 4/9] build UI --- ...-DEBiR6H9.js => ActiveBatControlConfiguration-DyGDJFQ0.js} | 2 +- .../assets/{ChargeLog-Bgx1bSon.js => ChargeLog-CZQ0QwMY.js} | 2 +- ...lation-C3IshOKk.js => ChargePointInstallation-BeNMkMOi.js} | 4 ++-- web/settings/assets/{Chart-q4SmWErO.js => Chart-CR-tn1oB.js} | 2 +- ...nfiguration-Cu4M2u7m.js => CloudConfiguration-DOLVcdWg.js} | 2 +- ...{DataManagement-FAi2cjUn.js => DataManagement-C57poL-r.js} | 4 ++-- ...nfiguration-D4jVRy6l.js => DebugConfiguration-C2vm4vM4.js} | 2 +- ...iguration-BEaqDSWf.js => DisplayConfiguration-h7XEuoXV.js} | 4 ++-- ...ion-tvikf7OT.js => GeneralChargeConfiguration-kMS02s2g.js} | 4 ++-- ...iguration-CMMYSFfh.js => GeneralConfiguration-b09cPY_w.js} | 4 ++-- ...tallation-caZ0sA9z.js => HardwareInstallation-DrK-NlWu.js} | 4 ++-- ...on-NvHT7cba.js => IdentificationConfiguration-BN_nskUK.js} | 2 +- ...tallAssistant-D7lW6Pyr.js => InstallAssistant-C4J4yr5X.js} | 4 ++-- ...antStep0-DfZRc1of.js => InstallAssistantStep0-CdrgO-v9.js} | 2 +- ...antStep1-CfAxuVn6.js => InstallAssistantStep1-CsFGL7lM.js} | 2 +- ...tStep10-Dr52sUyf.js => InstallAssistantStep10-BlCtHrWc.js} | 2 +- ...antStep2-BKDBrkQe.js => InstallAssistantStep2-DEKmkA7t.js} | 2 +- ...tStep20-Ci-UHX10.js => InstallAssistantStep20-7rhZVz9G.js} | 2 +- ...antStep3-B3u9R9nB.js => InstallAssistantStep3-aOTEH1Z9.js} | 2 +- ...antStep4-fJZIPmZy.js => InstallAssistantStep4-Ct4UOsV9.js} | 2 +- ...antStep5-BZyeEizn.js => InstallAssistantStep5-DEDexAYx.js} | 2 +- ...antStep6-D0cpR0xQ.js => InstallAssistantStep6-ODuKRKj5.js} | 2 +- ...antStep7-ipX38vw1.js => InstallAssistantStep7--rx4TlHA.js} | 2 +- ...antStep8-CMR8ijwj.js => InstallAssistantStep8-5_UXcXLV.js} | 2 +- ...antStep9-DAbMQ63I.js => InstallAssistantStep9-HIXLScoE.js} | 2 +- ...e-DrvBpF-0.js => InstallAssistantStepTemplate-DXqdRjEv.js} | 2 +- ...oConfiguration-vfX10CsO.js => IoConfiguration-hMQZDwaS.js} | 4 ++-- .../{LegalSettings-DO80lenG.js => LegalSettings-DvE2H9Xw.js} | 2 +- ...on-DVcGfr2E.js => LoadManagementConfiguration-DKZ9eznX.js} | 2 +- ...ration-hMk_UUpV.js => MqttBridgeConfiguration-DpHaWJdF.js} | 2 +- ...ortableList-BORHS8nd.js => OpenwbSortableList-CSUuyi79.js} | 2 +- ...guration-BMtEoSIk.js => SecurityConfiguration-Ckkg6YKx.js} | 2 +- .../assets/{Status-DYns2lPM.js => Status-bV6B6bv6.js} | 2 +- .../assets/{Support-LbG1Bt3q.js => Support-DMhdXgqE.js} | 2 +- ...ion-Mmn_2MTQ.js => SurplusChargeConfiguration-i4C8x6Va.js} | 2 +- ...figuration-BYwqt7v1.js => SystemConfiguration-BN4gvHU6.js} | 2 +- .../{TestingStore-D88H008a.js => TestingStore-pmOfDSbe.js} | 2 +- ...iguration-TZSwJptx.js => VehicleConfiguration-B3d9qly5.js} | 4 ++-- .../{backup_cloud-C1Vw5Mh4.js => backup_cloud-CDlXI8NQ.js} | 2 +- .../{backup_cloud-ChCyb_mM.js => backup_cloud-CPUdKiBb.js} | 2 +- .../{backup_cloud-mhyMQPm9.js => backup_cloud-CXDQV4ep.js} | 2 +- .../{backup_cloud-Dr6eBKwO.js => backup_cloud-CzI98uku.js} | 2 +- web/settings/assets/{bat-B4mETs5R.js => bat-BAPssBwn.js} | 2 +- web/settings/assets/{bat-jEZsteDp.js => bat-BFJihL5b.js} | 2 +- web/settings/assets/{bat-BCGKgQxP.js => bat-BLn3ChiW.js} | 2 +- web/settings/assets/{bat-BVitR6eQ.js => bat-BO99Yxvy.js} | 2 +- web/settings/assets/{bat-DgzuvGkr.js => bat-BtNiOzPi.js} | 2 +- web/settings/assets/{bat-26IrZ19X.js => bat-C-8Z5eMd.js} | 2 +- web/settings/assets/{bat-XK6ruyYp.js => bat-C5vCaakP.js} | 2 +- web/settings/assets/{bat-ByCHTSc9.js => bat-CA1pDpyc.js} | 2 +- web/settings/assets/{bat-Dbv3vNU1.js => bat-CW5lqe8H.js} | 2 +- web/settings/assets/{bat-BERY8z9f.js => bat-CWWcSN5h.js} | 2 +- web/settings/assets/{bat-B0T6AimZ.js => bat-C_Uav9BA.js} | 2 +- web/settings/assets/{bat-Dw1dp4yk.js => bat-CcOi7qeq.js} | 2 +- web/settings/assets/{bat-_7mtDj_h.js => bat-ChvTGfrS.js} | 2 +- web/settings/assets/{bat-EML-jKM6.js => bat-CjexnhY1.js} | 2 +- web/settings/assets/{bat-DrOtsCLh.js => bat-Cjlfvz8n.js} | 2 +- web/settings/assets/{bat-DwRFcEFG.js => bat-ClqXmjbq.js} | 2 +- web/settings/assets/bat-CrV_lSyl.js | 1 + web/settings/assets/{bat-CnxJ24UF.js => bat-Cso_FjAB.js} | 2 +- web/settings/assets/{bat-g-gN6DNl.js => bat-DGxxvF09.js} | 2 +- web/settings/assets/{bat--jkW4uM1.js => bat-DM6pfv3v.js} | 2 +- web/settings/assets/{bat-CQPOUTj3.js => bat-DM7fO5hq.js} | 2 +- web/settings/assets/{bat-DAoCRKqd.js => bat-DYO-TJpZ.js} | 2 +- web/settings/assets/{bat-DtUSWouQ.js => bat-DfC3LldK.js} | 2 +- web/settings/assets/{bat-eF5oA3Oa.js => bat-DjyCL_fH.js} | 2 +- web/settings/assets/bat-DlQIYeS5.js | 1 - web/settings/assets/{bat-Cn1EQGgB.js => bat-DpnEphe_.js} | 2 +- web/settings/assets/{bat-B0JSSnLj.js => bat-Ikmja4Vs.js} | 2 +- web/settings/assets/{bat-CE8ZvzxW.js => bat-LvnuQvaR.js} | 2 +- web/settings/assets/{bat-DZNpCoR7.js => bat-P6JfJZmF.js} | 2 +- web/settings/assets/{bat-BbH2OvqQ.js => bat-g5CpLXKe.js} | 2 +- ..._smart_energy-CXDoZsZR.js => bat_smart_energy-Czb4GYtP.js} | 2 +- .../{chargePoint-mAO4xa7T.js => chargePoint-Bd2Kp2l0.js} | 2 +- .../{chargePoint-f_Y7TEQC.js => chargePoint-CIyU28Hf.js} | 2 +- .../{chargePoint-BxYclOKe.js => chargePoint-CZkD_QGG.js} | 2 +- .../{chargePoint-CLglsVkD.js => chargePoint-DWLMU56i.js} | 2 +- .../{chargePoint-BsAFaJWO.js => chargePoint-Dedwz5Jy.js} | 2 +- .../{chargePoint-DHvT86qo.js => chargePoint-UK4SBHnE.js} | 2 +- .../{chargePoint-Cu68pCda.js => chargePoint-sYavUqxv.js} | 2 +- .../assets/{commands-Dy4aruCr.js => commands-DVXr5SHv.js} | 2 +- .../assets/{commands-CZXUCdhE.js => commands-WVGU9z4_.js} | 2 +- ...on_counter-Bdpmpdwz.js => consumption_counter-s9tb-xVk.js} | 2 +- .../assets/{counter-BlNNf5pm.js => counter-5nvynE8p.js} | 2 +- .../assets/{counter-D7_oD-KG.js => counter-B08rzQq5.js} | 2 +- .../assets/{counter-DW8E1juF.js => counter-B2RD41ZG.js} | 2 +- .../assets/{counter-hPhZIn1G.js => counter-BLEEk5vk.js} | 2 +- .../assets/{counter-DaNvZOHB.js => counter-BLIDMuvJ.js} | 2 +- .../assets/{counter-D0K3UCGT.js => counter-BWI3WRrg.js} | 2 +- .../assets/{counter-DwjPMM-K.js => counter-BmG9nVGY.js} | 2 +- .../assets/{counter-B4eDF7ya.js => counter-Bq_4dQ6X.js} | 2 +- .../assets/{counter-CTI3HQV5.js => counter-C3j9bCHZ.js} | 2 +- .../assets/{counter-DyQR5TFM.js => counter-C4Bc-LFa.js} | 2 +- .../assets/{counter-CuyIQkwJ.js => counter-C5lMgFh-.js} | 2 +- .../assets/{counter-QsKjzQAu.js => counter-C68GXHgb.js} | 2 +- .../assets/{counter-BT5q5wk9.js => counter-C7jGbtjK.js} | 2 +- .../assets/{counter-CXEiOT31.js => counter-C7uERgGk.js} | 2 +- .../assets/{counter-DNHoKahk.js => counter-C9TFKAZS.js} | 2 +- .../assets/{counter-Ckg8eTmY.js => counter-CALcAyno.js} | 2 +- .../assets/{counter-CZ_dQPx3.js => counter-CAioz9cY.js} | 2 +- .../assets/{counter-CecO70YK.js => counter-CBsxLQUz.js} | 2 +- .../assets/{counter-DB0QI8WO.js => counter-CDmfO7fm.js} | 2 +- .../assets/{counter-DEQJUFuW.js => counter-CFHdp5Rg.js} | 2 +- .../assets/{counter-BHm4u10N.js => counter-CG8UPJNQ.js} | 2 +- .../assets/{counter-BLXfQQ6R.js => counter-CNaWH3hH.js} | 2 +- .../assets/{counter-Jn3S4DeN.js => counter-CWRQi4AZ.js} | 2 +- .../assets/{counter-CC6Wx6xY.js => counter-C_KHyjgh.js} | 2 +- .../assets/{counter-CyagC1co.js => counter-CcBkZQq0.js} | 2 +- .../assets/{counter-CEU7NcUL.js => counter-CdY4HvNb.js} | 2 +- .../assets/{counter-6OwhKOcX.js => counter-CqYIUc0x.js} | 2 +- .../assets/{counter-CPpOsUI8.js => counter-D2NORLkt.js} | 2 +- .../assets/{counter-0uEca16j.js => counter-D8dbm9sC.js} | 2 +- .../assets/{counter-DtJWRRZK.js => counter-D_yHfG7M.js} | 2 +- .../assets/{counter-BCEBVxHj.js => counter-DbRhyf8N.js} | 2 +- .../assets/{counter-CrJU9pQp.js => counter-DlTwNWk_.js} | 2 +- .../assets/{counter-DmRpgOsE.js => counter-DoLu61P3.js} | 2 +- .../assets/{counter-CsLEIGLq.js => counter-DqUnAcpd.js} | 2 +- .../assets/{counter-CyFXwCq_.js => counter-JDvJyDSb.js} | 2 +- .../assets/{counter-CelzGZK-.js => counter-N5EbHNfB.js} | 2 +- .../assets/{counter--_w9piHB.js => counter-PiIXsMjs.js} | 2 +- .../assets/{counter-CRWkZPyn.js => counter-xlfblTPy.js} | 2 +- ...onsumption-D5PXSIy2.js => counter_consumption-DMUt0xYl.js} | 2 +- ..._maxstorage-Dfob-vfT.js => counter_maxstorage-BPEg9Ghm.js} | 2 +- .../assets/{counter_sm-C8EnC_ax.js => counter_sm-CDb5bKKk.js} | 2 +- .../assets/{device-CHaeFEyt.js => device--YYhIuOQ.js} | 2 +- .../assets/{device-GL-gGFSm.js => device-3lw2SJGr.js} | 2 +- .../assets/{device-B0uzBvUm.js => device-AZcRdq4E.js} | 2 +- .../assets/{device-CKqZ-eL3.js => device-Akr-Eknl.js} | 2 +- .../assets/{device-C9aR_ErT.js => device-B--mch3K.js} | 2 +- .../assets/{device-0LygQjSp.js => device-B-wUAE96.js} | 2 +- .../assets/{device-CJ5CONRY.js => device-B3JnKzHE.js} | 2 +- .../assets/{device-BJt2AdWR.js => device-B5RB3kWv.js} | 2 +- .../assets/{device-DoYhIPYo.js => device-B5V0NVAx.js} | 2 +- .../assets/{device-Djcanbbk.js => device-BIKPUvlF.js} | 2 +- .../assets/{device-DfKVgx7A.js => device-BJXiIXwb.js} | 2 +- .../assets/{device-Bz8u2WPE.js => device-BKXFo9ZM.js} | 2 +- .../assets/{device-C4M0XOfA.js => device-BUqTyqae.js} | 2 +- .../assets/{device-DSzaLUMX.js => device-BcaNUjQJ.js} | 2 +- .../assets/{device-Cv-hQ-5K.js => device-BdzJGZry.js} | 2 +- .../assets/{device-DdrUDEK_.js => device-Bkj5ye31.js} | 2 +- .../assets/{device-BPTQIU5L.js => device-BnxlY63G.js} | 2 +- .../assets/{device-B8HOK5np.js => device-BqKfOrDp.js} | 2 +- .../assets/{device-DYUFbFFV.js => device-BqQNuquo.js} | 2 +- .../assets/{device-DajujJNO.js => device-BquvfqB_.js} | 2 +- .../assets/{device-DsVDr5dU.js => device-BuyzFtIE.js} | 2 +- .../assets/{device-N5GdJSbQ.js => device-BwzMCkFy.js} | 2 +- .../assets/{device-CiFemq5S.js => device-ByU2v5ON.js} | 2 +- .../assets/{device-CJ3OjUU2.js => device-BzBPeuLF.js} | 2 +- .../assets/{device-DSXRbJXc.js => device-C2Py-T5Y.js} | 2 +- .../assets/{device-CJt9s3lV.js => device-C5UrZly-.js} | 2 +- .../assets/{device-TuHf60ob.js => device-C7Bv2cYw.js} | 2 +- .../assets/{device-B7DCatpp.js => device-CFpXw0Yl.js} | 2 +- .../assets/{device-B3RxzTPC.js => device-CT8s8OAc.js} | 2 +- .../assets/{device-DhOZN3TO.js => device-CTvTEy9o.js} | 2 +- .../assets/{device-rzxKRkPl.js => device-CUOUt23w.js} | 2 +- .../assets/{device-B9Y-E4ZO.js => device-CX454zoq.js} | 2 +- .../assets/{device-BpIfpmVY.js => device-CZhiiWs3.js} | 2 +- .../assets/{device-CiV4hgD_.js => device-CkLXsAHJ.js} | 2 +- .../assets/{device-C3SynQKw.js => device-CkVVX1eZ.js} | 2 +- .../assets/{device-Ce-zEVZN.js => device-CnqEvKdN.js} | 2 +- .../assets/{device-DJivvwYM.js => device-CrT-Q_nn.js} | 2 +- .../assets/{device-CLljSgUf.js => device-CsogXwrs.js} | 2 +- .../assets/{device-CcmT-XYr.js => device-Cu_Afhxv.js} | 2 +- .../assets/{device-BPisqhc7.js => device-Cww7LhK6.js} | 2 +- .../assets/{device-3d8A9kvB.js => device-D03RaIUC.js} | 2 +- .../assets/{device-vwuASijr.js => device-D2Tob0bp.js} | 2 +- .../assets/{device-D4Gw0lZJ.js => device-D6aGb8Ub.js} | 2 +- .../assets/{device-64nbgpYC.js => device-D7cbEhiT.js} | 2 +- .../assets/{device-DXOtDi9V.js => device-D86kZoMv.js} | 2 +- .../assets/{device-CMt4xRX4.js => device-D89U0LFt.js} | 2 +- .../assets/{device-BiPl0Xry.js => device-DBTWS1zk.js} | 2 +- .../assets/{device-BkT_aSiu.js => device-DBsitINB.js} | 2 +- .../assets/{device-8genQHND.js => device-DJRFYW8u.js} | 2 +- .../assets/{device-B6NzT0C2.js => device-DLe5rJBe.js} | 2 +- .../assets/{device-0TBG9Kdm.js => device-DW4k7y4-.js} | 2 +- .../assets/{device-Dqxkpm4s.js => device-DZbbGgNj.js} | 2 +- .../assets/{device-BdmFfYpU.js => device-DgWAC9VW.js} | 2 +- .../assets/{device-BYcmVGRd.js => device-DiQe2xTf.js} | 2 +- .../assets/{device-Pg4epvz-.js => device-DjFgC3FH.js} | 2 +- .../assets/{device-BsGQfX6W.js => device-Djudo4I7.js} | 2 +- .../assets/{device-BSo6UKEK.js => device-DntiDAu1.js} | 2 +- .../assets/{device-B6xK4kG_.js => device-DqksrJOB.js} | 2 +- .../assets/{device-BSlk0jml.js => device-DrU2EIBQ.js} | 2 +- .../assets/{device-Cv_jSwrm.js => device-DriAiQTh.js} | 2 +- .../assets/{device-CqqnDv7m.js => device-DsVqYSqX.js} | 2 +- .../assets/{device-DxhmA9hW.js => device-DteT1ftK.js} | 2 +- .../assets/{device-dqP8cZ7r.js => device-DuOQfDmg.js} | 2 +- .../assets/{device-Xoa0qNQw.js => device-DvHqZZk9.js} | 2 +- .../assets/{device-DaUzDfJC.js => device-DwFvJqbg.js} | 2 +- .../assets/{device-DdYCjXX-.js => device-DwiBUt_R.js} | 2 +- .../assets/{device-B-Mmd5Ze.js => device-Fu4__SF-.js} | 2 +- .../assets/{device-CMS4ZH9M.js => device-Ge0sqbOD.js} | 2 +- .../assets/{device-C-avdMqj.js => device-I28jsbnC.js} | 2 +- .../assets/{device-BnrlrcLl.js => device-JZQCuW65.js} | 2 +- .../assets/{device-C8-xjyT6.js => device-MN8XeDgn.js} | 2 +- .../assets/{device-CJ9ee9IO.js => device-NDckeTVc.js} | 2 +- .../assets/{device-CgG28OWw.js => device-NkTYsz5d.js} | 2 +- .../assets/{device-B1gW7XBg.js => device-QTYXfo_2.js} | 2 +- .../assets/{device-Cu0yn-TS.js => device-ZglIRb13.js} | 2 +- .../assets/{device-2ydQEeHL.js => device-f9fnP_KM.js} | 2 +- .../assets/{device-DzDhZ3zK.js => device-fRG5_uqe.js} | 2 +- .../assets/{device-Cg5a2DJ_.js => device-i-cc32LZ.js} | 2 +- .../assets/{device-DHMJ0YEs.js => device-iH7FSbYH.js} | 2 +- .../assets/{device-BjgcGLL9.js => device-jAbWqT5Y.js} | 2 +- .../assets/{device-DE8Sn0RG.js => device-jjyvBZq_.js} | 2 +- .../assets/{device-CmVz3KZr.js => device-nVYvqlQr.js} | 2 +- .../assets/{device-B4WlrUah.js => device-t3OGij3M.js} | 2 +- .../assets/{device-MHTiTYZF.js => device-uMAcYGWD.js} | 2 +- .../assets/{device-ByIPJ75u.js => device-zXBzry27.js} | 2 +- .../{displayTheme-D2mZh2_2.js => displayTheme-BlhJueVr.js} | 2 +- .../{displayTheme-DSCxcdhW.js => displayTheme-TNZXyuYb.js} | 2 +- ...nal_inverter-yhBlc68v.js => external_inverter-v9N8YFy_.js} | 2 +- ...lexible_tariff-B7GMl0Rk.js => flexible_tariff-B5Q9TiRz.js} | 2 +- ...lexible_tariff-DBcMB1Nb.js => flexible_tariff-BsviT0dT.js} | 2 +- ...lexible_tariff-BmnVQBW5.js => flexible_tariff-CiZLGcR6.js} | 2 +- ...lexible_tariff-BXSuQZLV.js => flexible_tariff-Cm72-IRP.js} | 2 +- ...lexible_tariff-Dd4agfmV.js => flexible_tariff-Cwtdxcdq.js} | 2 +- ...lexible_tariff-CTd9X6xC.js => flexible_tariff-D1CoTmby.js} | 2 +- ...lexible_tariff-w7-xLoOe.js => flexible_tariff-DAlfbB0X.js} | 2 +- ...lexible_tariff-CYFz2wtm.js => flexible_tariff-DDPKc8IS.js} | 2 +- ...lexible_tariff-DguwaAtd.js => flexible_tariff-DJxxQB8n.js} | 2 +- ...lexible_tariff-DTKfP5xv.js => flexible_tariff-DNlNO1mw.js} | 2 +- ...lexible_tariff-D2I_bbD1.js => flexible_tariff-DUAjEH5H.js} | 2 +- .../assets/{grid_fee-BoQDv0Kx.js => grid_fee-vdJ6pKGQ.js} | 2 +- web/settings/assets/{index-CyH1Au4V.js => index-D_eD74fL.js} | 4 ++-- .../assets/{inverter-Dd8Zt71F.js => inverter-0RghKIsx.js} | 2 +- .../assets/{inverter-BaOo9WeK.js => inverter-8vpAsJFV.js} | 2 +- .../assets/{inverter-CopsarJJ.js => inverter-9SjCnF3G.js} | 2 +- .../assets/{inverter-D7eVv_21.js => inverter-9vdoOv_r.js} | 2 +- .../assets/{inverter-lozsDiob.js => inverter-ACq6R7xB.js} | 2 +- .../assets/{inverter-CB0x6P9A.js => inverter-AYViTSOI.js} | 2 +- .../assets/{inverter-BpKMExBm.js => inverter-B-NdAxCX.js} | 2 +- .../assets/{inverter-5EBX0iZo.js => inverter-B8AbK5LS.js} | 2 +- .../assets/{inverter-BI2ZqzaW.js => inverter-BbajKr0y.js} | 2 +- .../assets/{inverter-DLWFTpaZ.js => inverter-BjdsHouB.js} | 2 +- .../assets/{inverter-BB887ZYt.js => inverter-CDYkCixE.js} | 2 +- .../assets/{inverter-BLcG2ney.js => inverter-CQscUjQi.js} | 2 +- .../assets/{inverter-f4xqdlX6.js => inverter-CTZt8kgW.js} | 2 +- .../assets/{inverter-CkuUw0Yu.js => inverter-CbPKaOUd.js} | 2 +- .../assets/{inverter-Da945LLX.js => inverter-CbwWOoTg.js} | 2 +- .../assets/{inverter-m3LVq5tF.js => inverter-ChBLwrbt.js} | 2 +- .../assets/{inverter-7soLwDob.js => inverter-Ci3SfwIV.js} | 2 +- .../assets/{inverter-CgUUQeXE.js => inverter-CzPXa6it.js} | 2 +- .../assets/{inverter-CMmTSLWH.js => inverter-D0gOX-_P.js} | 2 +- .../assets/{inverter-DL8Ty732.js => inverter-D8I4F0kA.js} | 2 +- .../assets/{inverter-BvYIme5g.js => inverter-D8K2CFDi.js} | 2 +- .../assets/{inverter-DrtnNh9-.js => inverter-D8ojL_BV.js} | 2 +- .../assets/{inverter-Bk86qHNm.js => inverter-D9Thnvbs.js} | 2 +- .../assets/{inverter-CN_ruNlm.js => inverter-DBFgbhVo.js} | 2 +- .../assets/{inverter-zzkwTxc_.js => inverter-DIStW2Xn.js} | 2 +- .../assets/{inverter-YmiFDBbL.js => inverter-DJnr53ar.js} | 2 +- .../assets/{inverter-9sFbkMow.js => inverter-DMLtmP39.js} | 2 +- .../assets/{inverter-DhjTWscc.js => inverter-DSMmU0bk.js} | 2 +- .../assets/{inverter-CZxBgkMq.js => inverter-DXCXYnzH.js} | 2 +- .../assets/{inverter-Bwj64g5e.js => inverter-DgFOEAbi.js} | 2 +- .../assets/{inverter-B88OrxMD.js => inverter-Dt-0cVGJ.js} | 2 +- .../assets/{inverter-YdmHIKyl.js => inverter-YRLdoDau.js} | 2 +- .../assets/{inverter-yrrMEiBw.js => inverter-hdDYm9Uf.js} | 2 +- .../assets/{inverter-Dl-vr0bC.js => inverter-oQ0jJI7j.js} | 2 +- ...maxstorage-Da9O-iNa.js => inverter_maxstorage-DeCO1HV-.js} | 2 +- ...eter-BhLy0jS8.js => inverter_production_meter-Coy7d4cu.js} | 2 +- ...r_secondary-Cke98mZd.js => inverter_secondary-D3yQDLVg.js} | 2 +- .../assets/{io_action-BlGNVQOy.js => io_action-B9LeEnBs.js} | 2 +- .../assets/{io_action-CcAuqDqD.js => io_action-BWKUJ45t.js} | 2 +- .../assets/{io_action-CNib3IIZ.js => io_action-Des8D82O.js} | 2 +- .../assets/{io_action-XIjORj2n.js => io_action-JT1W0Hwl.js} | 2 +- .../assets/{io_device-B-Ykhm08.js => io_device-BBOT5GiC.js} | 2 +- .../assets/{io_device-1ouhD8vS.js => io_device-ByQHLYHY.js} | 2 +- .../assets/{io_device-BFTcDSy5.js => io_device-mvR1tJtP.js} | 2 +- .../assets/{monitoring-BMLL0nfh.js => monitoring-oAy7LKTI.js} | 2 +- .../assets/{vehicle-CiPbB9w2.js => vehicle-7kCruC46.js} | 2 +- .../assets/{vehicle-B0tJYS46.js => vehicle-ADVayxu-.js} | 2 +- .../assets/{vehicle-Bo3E1wuI.js => vehicle-BBQyN4nf.js} | 2 +- .../assets/{vehicle-BJ8Vq-80.js => vehicle-BV1RfRrF.js} | 2 +- .../assets/{vehicle-C4xon1Al.js => vehicle-Br3C3ndJ.js} | 2 +- .../assets/{vehicle-7u_dqMEp.js => vehicle-BtE1rfvQ.js} | 2 +- .../assets/{vehicle-CeWm61bY.js => vehicle-Bzw0t3uD.js} | 2 +- .../assets/{vehicle-CPjkbES5.js => vehicle-CH_9CnU6.js} | 2 +- .../assets/{vehicle-9Vh-TxGa.js => vehicle-CO6j-SQn.js} | 2 +- .../assets/{vehicle-Bwnke49F.js => vehicle-CUR0E3wk.js} | 2 +- .../assets/{vehicle-mz1O0JRs.js => vehicle-ClSMB-k7.js} | 2 +- .../assets/{vehicle-CoVie7os.js => vehicle-D363Q7cB.js} | 2 +- .../assets/{vehicle-uzGGKIpS.js => vehicle-DDs9o72d.js} | 2 +- .../assets/{vehicle-Qsp1JuH6.js => vehicle-DT7Lg5C4.js} | 2 +- .../assets/{vehicle-bxge8VZs.js => vehicle-DTOXQ3ag.js} | 2 +- .../assets/{vehicle-BxcO7fDO.js => vehicle-DjrtYuS-.js} | 2 +- .../assets/{vehicle-BjW8elSd.js => vehicle-TpGqMVx6.js} | 2 +- .../assets/{vehicle-TwRWpbVJ.js => vehicle-XMzQc45d.js} | 2 +- .../assets/{vehicle-wE-5x93X.js => vehicle-lU7Zuadi.js} | 2 +- .../assets/{vehicle-CYTzHFS6.js => vehicle-uRvyo-2W.js} | 2 +- .../assets/{vehicle-BgWejNBx.js => vehicle-uZMeCx8f.js} | 2 +- .../assets/{webTheme-DQBJkymH.js => webTheme-BZXitWVh.js} | 2 +- .../assets/{webTheme-CUZsmlbL.js => webTheme-CHG5h5Rr.js} | 2 +- .../assets/{webTheme-D6gb9Bne.js => webTheme-CY7Mp7o_.js} | 2 +- web/settings/index.html | 2 +- 295 files changed, 304 insertions(+), 304 deletions(-) rename web/settings/assets/{ActiveBatControlConfiguration-DEBiR6H9.js => ActiveBatControlConfiguration-DyGDJFQ0.js} (99%) rename web/settings/assets/{ChargeLog-Bgx1bSon.js => ChargeLog-CZQ0QwMY.js} (99%) rename web/settings/assets/{ChargePointInstallation-C3IshOKk.js => ChargePointInstallation-BeNMkMOi.js} (96%) rename web/settings/assets/{Chart-q4SmWErO.js => Chart-CR-tn1oB.js} (99%) rename web/settings/assets/{CloudConfiguration-Cu4M2u7m.js => CloudConfiguration-DOLVcdWg.js} (99%) rename web/settings/assets/{DataManagement-FAi2cjUn.js => DataManagement-C57poL-r.js} (97%) rename web/settings/assets/{DebugConfiguration-D4jVRy6l.js => DebugConfiguration-C2vm4vM4.js} (99%) rename web/settings/assets/{DisplayConfiguration-BEaqDSWf.js => DisplayConfiguration-h7XEuoXV.js} (97%) rename web/settings/assets/{GeneralChargeConfiguration-tvikf7OT.js => GeneralChargeConfiguration-kMS02s2g.js} (93%) rename web/settings/assets/{GeneralConfiguration-CMMYSFfh.js => GeneralConfiguration-b09cPY_w.js} (97%) rename web/settings/assets/{HardwareInstallation-caZ0sA9z.js => HardwareInstallation-DrK-NlWu.js} (53%) rename web/settings/assets/{IdentificationConfiguration-NvHT7cba.js => IdentificationConfiguration-BN_nskUK.js} (99%) rename web/settings/assets/{InstallAssistant-D7lW6Pyr.js => InstallAssistant-C4J4yr5X.js} (64%) rename web/settings/assets/{InstallAssistantStep0-DfZRc1of.js => InstallAssistantStep0-CdrgO-v9.js} (95%) rename web/settings/assets/{InstallAssistantStep1-CfAxuVn6.js => InstallAssistantStep1-CsFGL7lM.js} (89%) rename web/settings/assets/{InstallAssistantStep10-Dr52sUyf.js => InstallAssistantStep10-BlCtHrWc.js} (91%) rename web/settings/assets/{InstallAssistantStep2-BKDBrkQe.js => InstallAssistantStep2-DEKmkA7t.js} (89%) rename web/settings/assets/{InstallAssistantStep20-Ci-UHX10.js => InstallAssistantStep20-7rhZVz9G.js} (91%) rename web/settings/assets/{InstallAssistantStep3-B3u9R9nB.js => InstallAssistantStep3-aOTEH1Z9.js} (91%) rename web/settings/assets/{InstallAssistantStep4-fJZIPmZy.js => InstallAssistantStep4-Ct4UOsV9.js} (91%) rename web/settings/assets/{InstallAssistantStep5-BZyeEizn.js => InstallAssistantStep5-DEDexAYx.js} (92%) rename web/settings/assets/{InstallAssistantStep6-D0cpR0xQ.js => InstallAssistantStep6-ODuKRKj5.js} (94%) rename web/settings/assets/{InstallAssistantStep7-ipX38vw1.js => InstallAssistantStep7--rx4TlHA.js} (91%) rename web/settings/assets/{InstallAssistantStep8-CMR8ijwj.js => InstallAssistantStep8-5_UXcXLV.js} (93%) rename web/settings/assets/{InstallAssistantStep9-DAbMQ63I.js => InstallAssistantStep9-HIXLScoE.js} (90%) rename web/settings/assets/{InstallAssistantStepTemplate-DrvBpF-0.js => InstallAssistantStepTemplate-DXqdRjEv.js} (97%) rename web/settings/assets/{IoConfiguration-vfX10CsO.js => IoConfiguration-hMQZDwaS.js} (94%) rename web/settings/assets/{LegalSettings-DO80lenG.js => LegalSettings-DvE2H9Xw.js} (98%) rename web/settings/assets/{LoadManagementConfiguration-DVcGfr2E.js => LoadManagementConfiguration-DKZ9eznX.js} (99%) rename web/settings/assets/{MqttBridgeConfiguration-hMk_UUpV.js => MqttBridgeConfiguration-DpHaWJdF.js} (99%) rename web/settings/assets/{OpenwbSortableList-BORHS8nd.js => OpenwbSortableList-CSUuyi79.js} (97%) rename web/settings/assets/{SecurityConfiguration-BMtEoSIk.js => SecurityConfiguration-Ckkg6YKx.js} (99%) rename web/settings/assets/{Status-DYns2lPM.js => Status-bV6B6bv6.js} (99%) rename web/settings/assets/{Support-LbG1Bt3q.js => Support-DMhdXgqE.js} (99%) rename web/settings/assets/{SurplusChargeConfiguration-Mmn_2MTQ.js => SurplusChargeConfiguration-i4C8x6Va.js} (99%) rename web/settings/assets/{SystemConfiguration-BYwqt7v1.js => SystemConfiguration-BN4gvHU6.js} (99%) rename web/settings/assets/{TestingStore-D88H008a.js => TestingStore-pmOfDSbe.js} (98%) rename web/settings/assets/{VehicleConfiguration-TZSwJptx.js => VehicleConfiguration-B3d9qly5.js} (96%) rename web/settings/assets/{backup_cloud-C1Vw5Mh4.js => backup_cloud-CDlXI8NQ.js} (90%) rename web/settings/assets/{backup_cloud-ChCyb_mM.js => backup_cloud-CPUdKiBb.js} (96%) rename web/settings/assets/{backup_cloud-mhyMQPm9.js => backup_cloud-CXDQV4ep.js} (89%) rename web/settings/assets/{backup_cloud-Dr6eBKwO.js => backup_cloud-CzI98uku.js} (94%) rename web/settings/assets/{bat-B4mETs5R.js => bat-BAPssBwn.js} (86%) rename web/settings/assets/{bat-jEZsteDp.js => bat-BFJihL5b.js} (87%) rename web/settings/assets/{bat-BCGKgQxP.js => bat-BLn3ChiW.js} (90%) rename web/settings/assets/{bat-BVitR6eQ.js => bat-BO99Yxvy.js} (88%) rename web/settings/assets/{bat-DgzuvGkr.js => bat-BtNiOzPi.js} (97%) rename web/settings/assets/{bat-26IrZ19X.js => bat-C-8Z5eMd.js} (95%) rename web/settings/assets/{bat-XK6ruyYp.js => bat-C5vCaakP.js} (97%) rename web/settings/assets/{bat-ByCHTSc9.js => bat-CA1pDpyc.js} (92%) rename web/settings/assets/{bat-Dbv3vNU1.js => bat-CW5lqe8H.js} (87%) rename web/settings/assets/{bat-BERY8z9f.js => bat-CWWcSN5h.js} (86%) rename web/settings/assets/{bat-B0T6AimZ.js => bat-C_Uav9BA.js} (88%) rename web/settings/assets/{bat-Dw1dp4yk.js => bat-CcOi7qeq.js} (87%) rename web/settings/assets/{bat-_7mtDj_h.js => bat-ChvTGfrS.js} (91%) rename web/settings/assets/{bat-EML-jKM6.js => bat-CjexnhY1.js} (87%) rename web/settings/assets/{bat-DrOtsCLh.js => bat-Cjlfvz8n.js} (91%) rename web/settings/assets/{bat-DwRFcEFG.js => bat-ClqXmjbq.js} (87%) create mode 100644 web/settings/assets/bat-CrV_lSyl.js rename web/settings/assets/{bat-CnxJ24UF.js => bat-Cso_FjAB.js} (87%) rename web/settings/assets/{bat-g-gN6DNl.js => bat-DGxxvF09.js} (87%) rename web/settings/assets/{bat--jkW4uM1.js => bat-DM6pfv3v.js} (87%) rename web/settings/assets/{bat-CQPOUTj3.js => bat-DM7fO5hq.js} (90%) rename web/settings/assets/{bat-DAoCRKqd.js => bat-DYO-TJpZ.js} (87%) rename web/settings/assets/{bat-DtUSWouQ.js => bat-DfC3LldK.js} (89%) rename web/settings/assets/{bat-eF5oA3Oa.js => bat-DjyCL_fH.js} (87%) delete mode 100644 web/settings/assets/bat-DlQIYeS5.js rename web/settings/assets/{bat-Cn1EQGgB.js => bat-DpnEphe_.js} (87%) rename web/settings/assets/{bat-B0JSSnLj.js => bat-Ikmja4Vs.js} (87%) rename web/settings/assets/{bat-CE8ZvzxW.js => bat-LvnuQvaR.js} (89%) rename web/settings/assets/{bat-DZNpCoR7.js => bat-P6JfJZmF.js} (89%) rename web/settings/assets/{bat-BbH2OvqQ.js => bat-g5CpLXKe.js} (87%) rename web/settings/assets/{bat_smart_energy-CXDoZsZR.js => bat_smart_energy-Czb4GYtP.js} (88%) rename web/settings/assets/{chargePoint-mAO4xa7T.js => chargePoint-Bd2Kp2l0.js} (90%) rename web/settings/assets/{chargePoint-f_Y7TEQC.js => chargePoint-CIyU28Hf.js} (90%) rename web/settings/assets/{chargePoint-BxYclOKe.js => chargePoint-CZkD_QGG.js} (98%) rename web/settings/assets/{chargePoint-CLglsVkD.js => chargePoint-DWLMU56i.js} (86%) rename web/settings/assets/{chargePoint-BsAFaJWO.js => chargePoint-Dedwz5Jy.js} (90%) rename web/settings/assets/{chargePoint-DHvT86qo.js => chargePoint-UK4SBHnE.js} (90%) rename web/settings/assets/{chargePoint-Cu68pCda.js => chargePoint-sYavUqxv.js} (93%) rename web/settings/assets/{commands-Dy4aruCr.js => commands-DVXr5SHv.js} (95%) rename web/settings/assets/{commands-CZXUCdhE.js => commands-WVGU9z4_.js} (94%) rename web/settings/assets/{consumption_counter-Bdpmpdwz.js => consumption_counter-s9tb-xVk.js} (93%) rename web/settings/assets/{counter-BlNNf5pm.js => counter-5nvynE8p.js} (97%) rename web/settings/assets/{counter-D7_oD-KG.js => counter-B08rzQq5.js} (87%) rename web/settings/assets/{counter-DW8E1juF.js => counter-B2RD41ZG.js} (88%) rename web/settings/assets/{counter-hPhZIn1G.js => counter-BLEEk5vk.js} (85%) rename web/settings/assets/{counter-DaNvZOHB.js => counter-BLIDMuvJ.js} (97%) rename web/settings/assets/{counter-D0K3UCGT.js => counter-BWI3WRrg.js} (85%) rename web/settings/assets/{counter-DwjPMM-K.js => counter-BmG9nVGY.js} (87%) rename web/settings/assets/{counter-B4eDF7ya.js => counter-Bq_4dQ6X.js} (90%) rename web/settings/assets/{counter-CTI3HQV5.js => counter-C3j9bCHZ.js} (90%) rename web/settings/assets/{counter-DyQR5TFM.js => counter-C4Bc-LFa.js} (88%) rename web/settings/assets/{counter-CuyIQkwJ.js => counter-C5lMgFh-.js} (84%) rename web/settings/assets/{counter-QsKjzQAu.js => counter-C68GXHgb.js} (84%) rename web/settings/assets/{counter-BT5q5wk9.js => counter-C7jGbtjK.js} (97%) rename web/settings/assets/{counter-CXEiOT31.js => counter-C7uERgGk.js} (88%) rename web/settings/assets/{counter-DNHoKahk.js => counter-C9TFKAZS.js} (92%) rename web/settings/assets/{counter-Ckg8eTmY.js => counter-CALcAyno.js} (88%) rename web/settings/assets/{counter-CZ_dQPx3.js => counter-CAioz9cY.js} (85%) rename web/settings/assets/{counter-CecO70YK.js => counter-CBsxLQUz.js} (87%) rename web/settings/assets/{counter-DB0QI8WO.js => counter-CDmfO7fm.js} (87%) rename web/settings/assets/{counter-DEQJUFuW.js => counter-CFHdp5Rg.js} (85%) rename web/settings/assets/{counter-BHm4u10N.js => counter-CG8UPJNQ.js} (90%) rename web/settings/assets/{counter-BLXfQQ6R.js => counter-CNaWH3hH.js} (87%) rename web/settings/assets/{counter-Jn3S4DeN.js => counter-CWRQi4AZ.js} (88%) rename web/settings/assets/{counter-CC6Wx6xY.js => counter-C_KHyjgh.js} (87%) rename web/settings/assets/{counter-CyagC1co.js => counter-CcBkZQq0.js} (83%) rename web/settings/assets/{counter-CEU7NcUL.js => counter-CdY4HvNb.js} (87%) rename web/settings/assets/{counter-6OwhKOcX.js => counter-CqYIUc0x.js} (87%) rename web/settings/assets/{counter-CPpOsUI8.js => counter-D2NORLkt.js} (92%) rename web/settings/assets/{counter-0uEca16j.js => counter-D8dbm9sC.js} (91%) rename web/settings/assets/{counter-DtJWRRZK.js => counter-D_yHfG7M.js} (88%) rename web/settings/assets/{counter-BCEBVxHj.js => counter-DbRhyf8N.js} (89%) rename web/settings/assets/{counter-CrJU9pQp.js => counter-DlTwNWk_.js} (89%) rename web/settings/assets/{counter-DmRpgOsE.js => counter-DoLu61P3.js} (90%) rename web/settings/assets/{counter-CsLEIGLq.js => counter-DqUnAcpd.js} (92%) rename web/settings/assets/{counter-CyFXwCq_.js => counter-JDvJyDSb.js} (87%) rename web/settings/assets/{counter-CelzGZK-.js => counter-N5EbHNfB.js} (89%) rename web/settings/assets/{counter--_w9piHB.js => counter-PiIXsMjs.js} (87%) rename web/settings/assets/{counter-CRWkZPyn.js => counter-xlfblTPy.js} (87%) rename web/settings/assets/{counter_consumption-D5PXSIy2.js => counter_consumption-DMUt0xYl.js} (90%) rename web/settings/assets/{counter_maxstorage-Dfob-vfT.js => counter_maxstorage-BPEg9Ghm.js} (90%) rename web/settings/assets/{counter_sm-C8EnC_ax.js => counter_sm-CDb5bKKk.js} (95%) rename web/settings/assets/{device-CHaeFEyt.js => device--YYhIuOQ.js} (89%) rename web/settings/assets/{device-GL-gGFSm.js => device-3lw2SJGr.js} (87%) rename web/settings/assets/{device-B0uzBvUm.js => device-AZcRdq4E.js} (89%) rename web/settings/assets/{device-CKqZ-eL3.js => device-Akr-Eknl.js} (89%) rename web/settings/assets/{device-C9aR_ErT.js => device-B--mch3K.js} (87%) rename web/settings/assets/{device-0LygQjSp.js => device-B-wUAE96.js} (91%) rename web/settings/assets/{device-CJ5CONRY.js => device-B3JnKzHE.js} (91%) rename web/settings/assets/{device-BJt2AdWR.js => device-B5RB3kWv.js} (91%) rename web/settings/assets/{device-DoYhIPYo.js => device-B5V0NVAx.js} (90%) rename web/settings/assets/{device-Djcanbbk.js => device-BIKPUvlF.js} (87%) rename web/settings/assets/{device-DfKVgx7A.js => device-BJXiIXwb.js} (91%) rename web/settings/assets/{device-Bz8u2WPE.js => device-BKXFo9ZM.js} (89%) rename web/settings/assets/{device-C4M0XOfA.js => device-BUqTyqae.js} (87%) rename web/settings/assets/{device-DSzaLUMX.js => device-BcaNUjQJ.js} (96%) rename web/settings/assets/{device-Cv-hQ-5K.js => device-BdzJGZry.js} (90%) rename web/settings/assets/{device-DdrUDEK_.js => device-Bkj5ye31.js} (87%) rename web/settings/assets/{device-BPTQIU5L.js => device-BnxlY63G.js} (95%) rename web/settings/assets/{device-B8HOK5np.js => device-BqKfOrDp.js} (90%) rename web/settings/assets/{device-DYUFbFFV.js => device-BqQNuquo.js} (89%) rename web/settings/assets/{device-DajujJNO.js => device-BquvfqB_.js} (91%) rename web/settings/assets/{device-DsVDr5dU.js => device-BuyzFtIE.js} (87%) rename web/settings/assets/{device-N5GdJSbQ.js => device-BwzMCkFy.js} (89%) rename web/settings/assets/{device-CiFemq5S.js => device-ByU2v5ON.js} (91%) rename web/settings/assets/{device-CJ3OjUU2.js => device-BzBPeuLF.js} (89%) rename web/settings/assets/{device-DSXRbJXc.js => device-C2Py-T5Y.js} (89%) rename web/settings/assets/{device-CJt9s3lV.js => device-C5UrZly-.js} (89%) rename web/settings/assets/{device-TuHf60ob.js => device-C7Bv2cYw.js} (91%) rename web/settings/assets/{device-B7DCatpp.js => device-CFpXw0Yl.js} (91%) rename web/settings/assets/{device-B3RxzTPC.js => device-CT8s8OAc.js} (92%) rename web/settings/assets/{device-DhOZN3TO.js => device-CTvTEy9o.js} (90%) rename web/settings/assets/{device-rzxKRkPl.js => device-CUOUt23w.js} (92%) rename web/settings/assets/{device-B9Y-E4ZO.js => device-CX454zoq.js} (92%) rename web/settings/assets/{device-BpIfpmVY.js => device-CZhiiWs3.js} (96%) rename web/settings/assets/{device-CiV4hgD_.js => device-CkLXsAHJ.js} (91%) rename web/settings/assets/{device-C3SynQKw.js => device-CkVVX1eZ.js} (92%) rename web/settings/assets/{device-Ce-zEVZN.js => device-CnqEvKdN.js} (91%) rename web/settings/assets/{device-DJivvwYM.js => device-CrT-Q_nn.js} (89%) rename web/settings/assets/{device-CLljSgUf.js => device-CsogXwrs.js} (92%) rename web/settings/assets/{device-CcmT-XYr.js => device-Cu_Afhxv.js} (91%) rename web/settings/assets/{device-BPisqhc7.js => device-Cww7LhK6.js} (94%) rename web/settings/assets/{device-3d8A9kvB.js => device-D03RaIUC.js} (86%) rename web/settings/assets/{device-vwuASijr.js => device-D2Tob0bp.js} (91%) rename web/settings/assets/{device-D4Gw0lZJ.js => device-D6aGb8Ub.js} (90%) rename web/settings/assets/{device-64nbgpYC.js => device-D7cbEhiT.js} (91%) rename web/settings/assets/{device-DXOtDi9V.js => device-D86kZoMv.js} (91%) rename web/settings/assets/{device-CMt4xRX4.js => device-D89U0LFt.js} (91%) rename web/settings/assets/{device-BiPl0Xry.js => device-DBTWS1zk.js} (88%) rename web/settings/assets/{device-BkT_aSiu.js => device-DBsitINB.js} (89%) rename web/settings/assets/{device-8genQHND.js => device-DJRFYW8u.js} (86%) rename web/settings/assets/{device-B6NzT0C2.js => device-DLe5rJBe.js} (89%) rename web/settings/assets/{device-0TBG9Kdm.js => device-DW4k7y4-.js} (87%) rename web/settings/assets/{device-Dqxkpm4s.js => device-DZbbGgNj.js} (91%) rename web/settings/assets/{device-BdmFfYpU.js => device-DgWAC9VW.js} (89%) rename web/settings/assets/{device-BYcmVGRd.js => device-DiQe2xTf.js} (89%) rename web/settings/assets/{device-Pg4epvz-.js => device-DjFgC3FH.js} (91%) rename web/settings/assets/{device-BsGQfX6W.js => device-Djudo4I7.js} (93%) rename web/settings/assets/{device-BSo6UKEK.js => device-DntiDAu1.js} (89%) rename web/settings/assets/{device-B6xK4kG_.js => device-DqksrJOB.js} (89%) rename web/settings/assets/{device-BSlk0jml.js => device-DrU2EIBQ.js} (87%) rename web/settings/assets/{device-Cv_jSwrm.js => device-DriAiQTh.js} (89%) rename web/settings/assets/{device-CqqnDv7m.js => device-DsVqYSqX.js} (90%) rename web/settings/assets/{device-DxhmA9hW.js => device-DteT1ftK.js} (91%) rename web/settings/assets/{device-dqP8cZ7r.js => device-DuOQfDmg.js} (91%) rename web/settings/assets/{device-Xoa0qNQw.js => device-DvHqZZk9.js} (91%) rename web/settings/assets/{device-DaUzDfJC.js => device-DwFvJqbg.js} (94%) rename web/settings/assets/{device-DdYCjXX-.js => device-DwiBUt_R.js} (86%) rename web/settings/assets/{device-B-Mmd5Ze.js => device-Fu4__SF-.js} (92%) rename web/settings/assets/{device-CMS4ZH9M.js => device-Ge0sqbOD.js} (91%) rename web/settings/assets/{device-C-avdMqj.js => device-I28jsbnC.js} (92%) rename web/settings/assets/{device-BnrlrcLl.js => device-JZQCuW65.js} (92%) rename web/settings/assets/{device-C8-xjyT6.js => device-MN8XeDgn.js} (89%) rename web/settings/assets/{device-CJ9ee9IO.js => device-NDckeTVc.js} (93%) rename web/settings/assets/{device-CgG28OWw.js => device-NkTYsz5d.js} (91%) rename web/settings/assets/{device-B1gW7XBg.js => device-QTYXfo_2.js} (92%) rename web/settings/assets/{device-Cu0yn-TS.js => device-ZglIRb13.js} (91%) rename web/settings/assets/{device-2ydQEeHL.js => device-f9fnP_KM.js} (95%) rename web/settings/assets/{device-DzDhZ3zK.js => device-fRG5_uqe.js} (89%) rename web/settings/assets/{device-Cg5a2DJ_.js => device-i-cc32LZ.js} (94%) rename web/settings/assets/{device-DHMJ0YEs.js => device-iH7FSbYH.js} (92%) rename web/settings/assets/{device-BjgcGLL9.js => device-jAbWqT5Y.js} (94%) rename web/settings/assets/{device-DE8Sn0RG.js => device-jjyvBZq_.js} (90%) rename web/settings/assets/{device-CmVz3KZr.js => device-nVYvqlQr.js} (91%) rename web/settings/assets/{device-B4WlrUah.js => device-t3OGij3M.js} (90%) rename web/settings/assets/{device-MHTiTYZF.js => device-uMAcYGWD.js} (89%) rename web/settings/assets/{device-ByIPJ75u.js => device-zXBzry27.js} (93%) rename web/settings/assets/{displayTheme-D2mZh2_2.js => displayTheme-BlhJueVr.js} (98%) rename web/settings/assets/{displayTheme-DSCxcdhW.js => displayTheme-TNZXyuYb.js} (92%) rename web/settings/assets/{external_inverter-yhBlc68v.js => external_inverter-v9N8YFy_.js} (94%) rename web/settings/assets/{flexible_tariff-B7GMl0Rk.js => flexible_tariff-B5Q9TiRz.js} (89%) rename web/settings/assets/{flexible_tariff-DBcMB1Nb.js => flexible_tariff-BsviT0dT.js} (91%) rename web/settings/assets/{flexible_tariff-BmnVQBW5.js => flexible_tariff-CiZLGcR6.js} (91%) rename web/settings/assets/{flexible_tariff-BXSuQZLV.js => flexible_tariff-Cm72-IRP.js} (98%) rename web/settings/assets/{flexible_tariff-Dd4agfmV.js => flexible_tariff-Cwtdxcdq.js} (93%) rename web/settings/assets/{flexible_tariff-CTd9X6xC.js => flexible_tariff-D1CoTmby.js} (90%) rename web/settings/assets/{flexible_tariff-w7-xLoOe.js => flexible_tariff-DAlfbB0X.js} (96%) rename web/settings/assets/{flexible_tariff-CYFz2wtm.js => flexible_tariff-DDPKc8IS.js} (94%) rename web/settings/assets/{flexible_tariff-DguwaAtd.js => flexible_tariff-DJxxQB8n.js} (96%) rename web/settings/assets/{flexible_tariff-DTKfP5xv.js => flexible_tariff-DNlNO1mw.js} (88%) rename web/settings/assets/{flexible_tariff-D2I_bbD1.js => flexible_tariff-DUAjEH5H.js} (97%) rename web/settings/assets/{grid_fee-BoQDv0Kx.js => grid_fee-vdJ6pKGQ.js} (98%) rename web/settings/assets/{index-CyH1Au4V.js => index-D_eD74fL.js} (96%) rename web/settings/assets/{inverter-Dd8Zt71F.js => inverter-0RghKIsx.js} (87%) rename web/settings/assets/{inverter-BaOo9WeK.js => inverter-8vpAsJFV.js} (87%) rename web/settings/assets/{inverter-CopsarJJ.js => inverter-9SjCnF3G.js} (88%) rename web/settings/assets/{inverter-D7eVv_21.js => inverter-9vdoOv_r.js} (87%) rename web/settings/assets/{inverter-lozsDiob.js => inverter-ACq6R7xB.js} (88%) rename web/settings/assets/{inverter-CB0x6P9A.js => inverter-AYViTSOI.js} (88%) rename web/settings/assets/{inverter-BpKMExBm.js => inverter-B-NdAxCX.js} (88%) rename web/settings/assets/{inverter-5EBX0iZo.js => inverter-B8AbK5LS.js} (88%) rename web/settings/assets/{inverter-BI2ZqzaW.js => inverter-BbajKr0y.js} (87%) rename web/settings/assets/{inverter-DLWFTpaZ.js => inverter-BjdsHouB.js} (88%) rename web/settings/assets/{inverter-BB887ZYt.js => inverter-CDYkCixE.js} (79%) rename web/settings/assets/{inverter-BLcG2ney.js => inverter-CQscUjQi.js} (91%) rename web/settings/assets/{inverter-f4xqdlX6.js => inverter-CTZt8kgW.js} (96%) rename web/settings/assets/{inverter-CkuUw0Yu.js => inverter-CbPKaOUd.js} (88%) rename web/settings/assets/{inverter-Da945LLX.js => inverter-CbwWOoTg.js} (94%) rename web/settings/assets/{inverter-m3LVq5tF.js => inverter-ChBLwrbt.js} (91%) rename web/settings/assets/{inverter-7soLwDob.js => inverter-Ci3SfwIV.js} (87%) rename web/settings/assets/{inverter-CgUUQeXE.js => inverter-CzPXa6it.js} (92%) rename web/settings/assets/{inverter-CMmTSLWH.js => inverter-D0gOX-_P.js} (90%) rename web/settings/assets/{inverter-DL8Ty732.js => inverter-D8I4F0kA.js} (90%) rename web/settings/assets/{inverter-BvYIme5g.js => inverter-D8K2CFDi.js} (87%) rename web/settings/assets/{inverter-DrtnNh9-.js => inverter-D8ojL_BV.js} (90%) rename web/settings/assets/{inverter-Bk86qHNm.js => inverter-D9Thnvbs.js} (87%) rename web/settings/assets/{inverter-CN_ruNlm.js => inverter-DBFgbhVo.js} (89%) rename web/settings/assets/{inverter-zzkwTxc_.js => inverter-DIStW2Xn.js} (93%) rename web/settings/assets/{inverter-YmiFDBbL.js => inverter-DJnr53ar.js} (95%) rename web/settings/assets/{inverter-9sFbkMow.js => inverter-DMLtmP39.js} (88%) rename web/settings/assets/{inverter-DhjTWscc.js => inverter-DSMmU0bk.js} (90%) rename web/settings/assets/{inverter-CZxBgkMq.js => inverter-DXCXYnzH.js} (89%) rename web/settings/assets/{inverter-Bwj64g5e.js => inverter-DgFOEAbi.js} (87%) rename web/settings/assets/{inverter-B88OrxMD.js => inverter-Dt-0cVGJ.js} (79%) rename web/settings/assets/{inverter-YdmHIKyl.js => inverter-YRLdoDau.js} (86%) rename web/settings/assets/{inverter-yrrMEiBw.js => inverter-hdDYm9Uf.js} (87%) rename web/settings/assets/{inverter-Dl-vr0bC.js => inverter-oQ0jJI7j.js} (88%) rename web/settings/assets/{inverter_maxstorage-Da9O-iNa.js => inverter_maxstorage-DeCO1HV-.js} (88%) rename web/settings/assets/{inverter_production_meter-BhLy0jS8.js => inverter_production_meter-Coy7d4cu.js} (95%) rename web/settings/assets/{inverter_secondary-Cke98mZd.js => inverter_secondary-D3yQDLVg.js} (92%) rename web/settings/assets/{io_action-BlGNVQOy.js => io_action-B9LeEnBs.js} (96%) rename web/settings/assets/{io_action-CcAuqDqD.js => io_action-BWKUJ45t.js} (92%) rename web/settings/assets/{io_action-CNib3IIZ.js => io_action-Des8D82O.js} (96%) rename web/settings/assets/{io_action-XIjORj2n.js => io_action-JT1W0Hwl.js} (93%) rename web/settings/assets/{io_device-B-Ykhm08.js => io_device-BBOT5GiC.js} (92%) rename web/settings/assets/{io_device-1ouhD8vS.js => io_device-ByQHLYHY.js} (95%) rename web/settings/assets/{io_device-BFTcDSy5.js => io_device-mvR1tJtP.js} (90%) rename web/settings/assets/{monitoring-BMLL0nfh.js => monitoring-oAy7LKTI.js} (93%) rename web/settings/assets/{vehicle-CiPbB9w2.js => vehicle-7kCruC46.js} (94%) rename web/settings/assets/{vehicle-B0tJYS46.js => vehicle-ADVayxu-.js} (94%) rename web/settings/assets/{vehicle-Bo3E1wuI.js => vehicle-BBQyN4nf.js} (96%) rename web/settings/assets/{vehicle-BJ8Vq-80.js => vehicle-BV1RfRrF.js} (97%) rename web/settings/assets/{vehicle-C4xon1Al.js => vehicle-Br3C3ndJ.js} (93%) rename web/settings/assets/{vehicle-7u_dqMEp.js => vehicle-BtE1rfvQ.js} (89%) rename web/settings/assets/{vehicle-CeWm61bY.js => vehicle-Bzw0t3uD.js} (95%) rename web/settings/assets/{vehicle-CPjkbES5.js => vehicle-CH_9CnU6.js} (93%) rename web/settings/assets/{vehicle-9Vh-TxGa.js => vehicle-CO6j-SQn.js} (87%) rename web/settings/assets/{vehicle-Bwnke49F.js => vehicle-CUR0E3wk.js} (89%) rename web/settings/assets/{vehicle-mz1O0JRs.js => vehicle-ClSMB-k7.js} (91%) rename web/settings/assets/{vehicle-CoVie7os.js => vehicle-D363Q7cB.js} (97%) rename web/settings/assets/{vehicle-uzGGKIpS.js => vehicle-DDs9o72d.js} (96%) rename web/settings/assets/{vehicle-Qsp1JuH6.js => vehicle-DT7Lg5C4.js} (92%) rename web/settings/assets/{vehicle-bxge8VZs.js => vehicle-DTOXQ3ag.js} (93%) rename web/settings/assets/{vehicle-BxcO7fDO.js => vehicle-DjrtYuS-.js} (93%) rename web/settings/assets/{vehicle-BjW8elSd.js => vehicle-TpGqMVx6.js} (96%) rename web/settings/assets/{vehicle-TwRWpbVJ.js => vehicle-XMzQc45d.js} (94%) rename web/settings/assets/{vehicle-wE-5x93X.js => vehicle-lU7Zuadi.js} (93%) rename web/settings/assets/{vehicle-CYTzHFS6.js => vehicle-uRvyo-2W.js} (94%) rename web/settings/assets/{vehicle-BgWejNBx.js => vehicle-uZMeCx8f.js} (94%) rename web/settings/assets/{webTheme-DQBJkymH.js => webTheme-BZXitWVh.js} (98%) rename web/settings/assets/{webTheme-CUZsmlbL.js => webTheme-CHG5h5Rr.js} (94%) rename web/settings/assets/{webTheme-D6gb9Bne.js => webTheme-CY7Mp7o_.js} (88%) diff --git a/web/settings/assets/ActiveBatControlConfiguration-DEBiR6H9.js b/web/settings/assets/ActiveBatControlConfiguration-DyGDJFQ0.js similarity index 99% rename from web/settings/assets/ActiveBatControlConfiguration-DEBiR6H9.js rename to web/settings/assets/ActiveBatControlConfiguration-DyGDJFQ0.js index fcd94e446b..cf4b3a27bc 100644 --- a/web/settings/assets/ActiveBatControlConfiguration-DEBiR6H9.js +++ b/web/settings/assets/ActiveBatControlConfiguration-DyGDJFQ0.js @@ -1 +1 @@ -import{C as z}from"./index-CyH1Au4V.js";import{F as V,l as $,a4 as C,ag as E,ah as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as N,l as m,k as o,e as l,x as c,m as i,q as r,A as a,u as s,y as b,D as k,K as M,L as U,J as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";$.add(C,E,F);const D={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:V},mixins:[z],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/get/max_charge_power",writeable:!0},{topic:"openWB/bat/+/get/max_discharge_power",writeable:!0},{topic:"openWB/bat/+/get/power_limit_controllable",writeable:!1},{topic:"openWB/bat/config/bat_control_activated",writeable:!0},{topic:"openWB/bat/config/bat_control_max_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_min_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_permitted",writeable:!0},{topic:"openWB/bat/config/charge_limit",writeable:!0},{topic:"openWB/bat/config/manual_mode",writeable:!0},{topic:"openWB/bat/config/power_limit_condition",writeable:!0},{topic:"openWB/bat/config/power_limit_mode",writeable:!0},{topic:"openWB/bat/config/price_charge_activated",writeable:!0},{topic:"openWB/bat/config/price_limit",writeable:!0},{topic:"openWB/bat/config/price_limit_activated",writeable:!0},{topic:"openWB/bat/get/power_limit_controllable",writeable:!1},{topic:"openWB/general/chargemode_config/pv_charging/bat_mode",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/max_bat_soc",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/min_bat_soc",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(t){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",t)}},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")}},controllableBatteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterControllableBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))}},containsNormalBatteries:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?!1:Object.keys(this.filterNormalBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))).length>0}}},methods:{getLimitControllable(t){return this.$store.state.mqtt["openWB/bat/"+t+"/get/power_limit_controllable"]},filterComponentsByType(t,e){return Object.keys(t).filter(d=>t[d].type.includes(e)).reduce((d,S)=>({...d,[S]:t[S]}),{})},filterControllableBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&t[e].configuration.power_limit_controllable===!0).reduce((e,d)=>({...e,[d]:t[d]}),{})},filterNormalBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&this.getLimitControllable(t[e].id)===!1).reduce((e,d)=>({...e,[d]:t[d]}),{})}}},L={class:"batteryConfig"},P={name:"batteryConfigForm"},A={key:0},R={key:1},H={key:0},T={key:1},O={key:2},I={key:0},J={key:0},j={key:1},G={key:0},K={key:0},Q={key:0},X={key:1},Y={key:2},Z={key:0},x={key:1},ee={key:2},te={key:0},ne={key:0},re={key:1},ie={key:2},ae={key:1},oe={key:2},le={key:1};function se(t,e,d,S,de,p){const u=m("openwb-base-alert"),f=m("font-awesome-icon"),g=m("openwb-base-button-group-input"),v=m("openwb-base-range-input"),h=m("openwb-base-heading"),_=m("openwb-base-number-input"),w=m("openwb-base-card"),y=m("openwb-base-submit-buttons");return o(),l("div",L,[c("form",P,[i(w,{title:"Passive Speicherbeachtung (PV)"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",A,[i(u,{subtype:"info"},{default:r(()=>[...e[21]||(e[21]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",R,[i(u,{subtype:"info"},{default:r(()=>[...e[22]||(e[22]=[a(' Die Regelmodi der Speicherbeachtung erfolgen "passiv" durch Anpassung der Fahrzeug-Ladeleistung. PV-Überschuss wird, je nach Konfiguration, entweder dem Fahrzeug zugeteilt oder dem Speicher überlassen. Netz- und Speicherbezug wird, sofern nicht anders konfiguriert, vermieden. ',-1)])]),_:1}),i(g,{modelValue:p.batMode,"onUpdate:modelValue":e[0]||(e[0]=n=>p.batMode=n),title:"Ladepriorität",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","car-side"]}),e[23]||(e[23]=a(" Fahrzeuge ",-1))]),"label-bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-car-battery"]}),e[24]||(e[24]=a(" Speicher ",-1))]),"label-min_soc_bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-battery-half"]}),e[25]||(e[25]=a(" Nach SoC des Speichers ",-1))]),help:r(()=>[p.batMode==="ev_mode"?(o(),l("div",H," Der gesamte Überschuss wird in das EV geladen. Wird mehr Überschuss erzeugt als die Fahrzeuge abnehmen, findet auch eine Speicherladung statt. ")):s("",!0),p.batMode==="bat_mode"?(o(),l("div",T," Der gesamte Überschuss wird 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. ")):s("",!0),p.batMode==="min_soc_bat_mode"?(o(),l("div",O,' Verhält sich bis zum Erreichen des Mindest-SoC wie "Ladepriorität Speicher" und oberhalb des Mindest-SoC wie "Ladepriorität Fahrzeuge". Die maximale Leistung der Speicherbe- und entladung lässt sich hier festlegen. ')):s("",!0)]),_:1},8,["modelValue"]),p.batMode==="min_soc_bat_mode"?(o(),l("div",I,[i(v,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[1]||(e[1]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"][...e[26]||(e[26]=[a(" Unterhalb des Mindest-SoC wird vorhandener PV-Überschuss bevorzugt in den Speicher geladen. Oberhalb des Mindest-SoC hat die Fahrzeugladung Priorität. ",-1)])]),_:1},8,["model-value"]),i(v,{title:"Maximal-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"],"onUpdate:modelValue":e[2]||(e[2]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]>t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]?t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]:n)))},{help:r(()=>[...e[27]||(e[27]=[a(" Wird der Maximal-SoC überschritten, darf der Speicher bis zum Erreichen des Mindest-SoC zur Fahrzeugladung mitbenutzt werden. ",-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]==t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]?(o(),b(u,{key:0,subtype:"info"},{default:r(()=>[...e[28]||(e[28]=[a(" Bei identischen SoC Angaben findet keine Speicherhysterese statt. ",-1)])]),_:1})):s("",!0),i(h,null,{default:r(()=>[...e[29]||(e[29]=[a(" Speicher-Ladeleistung unterhalb Mindest-SoC ",-1)])]),_:1}),i(g,{title:"Nur eine bestimmte Ladeleistung reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?{name:"help",fn:r(()=>[e[30]||(e[30]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten!",-1)),e[31]||(e[31]=c("br",null,null,-1)),e[32]||(e[32]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er mit der hier eingestellten Speicherladeleistung geladen. Verbleibender Überschuss wird in die Fahrzeuge geladen. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[33]||(e[33]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er priorisiert geladen. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(o(),b(_,{key:1,title:"Reservierte Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",n*1e3))},null,8,["model-value"])):s("",!0),i(h,null,{default:r(()=>[...e[34]||(e[34]=[a(" Speicher-SoC oberhalb Maximal-SoC ",-1)])]),_:1}),i(g,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?{name:"help",fn:r(()=>[e[35]||(e[35]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Entladeleistung des Speichers nicht überschreiten! Wird der Maximal-SoC überschritten, wird die PV-Ladung mit der hier eingestellten Speicherentladeleistung unterstützt. Der Speicher darf bis zum Mindest-SoC entladen werden. Die erlaubte Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[36]||(e[36]=a(" Oberhalb des Maximal-SoC wird der Speicher nicht für die Fahrzeugladung mitgenutzt. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(o(),b(_,{key:2,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",n*1e3))},null,8,["model-value"])):s("",!0)])):s("",!0)]))]),_:1}),i(w,{title:"Aktive Speichersteuerung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",J,[i(u,{subtype:"info"},{default:r(()=>[...e[37]||(e[37]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",j,[i(u,{subtype:"info",class:"mb-3"},{default:r(()=>[e[38]||(e[38]=c("p",null,[a(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht vom Hersteller freigegebene Informationen beinhalten."),c("br"),a(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),i(g,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateState("openWB/bat/config/bat_control_permitted",n))},null,8,["model-value"])]),_:1}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(o(),l("div",G,[i(h,{class:"mt-0"},{default:r(()=>[...e[39]||(e[39]=[a(" Regelmodi der aktiven Speichersteuerung ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[40]||(e[40]=[a(" Die aktive Speichersteuerung kann Speicherentladung begrenzen oder den Speicher zur Ladung zwingen. Die erlaubte Entladeleistung des Speichers (Speicherbeachtung PV) wird bei aktiver Speichersteuerung überschrieben, da Speicherentladung unter Umständen aktiv begrenzt wird. ",-1)])]),_:1}),i(g,{title:"Speicher aktiv Steuern",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_activated"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/bat/config/bat_control_activated",n))},k({_:2},[t.$store.state.mqtt["openWB/bat/config/bat_control_activated"]?{name:"help",fn:r(()=>[e[41]||(e[41]=a(" Speicher wird aktiv gesteuert. Grundlage ist die nachfolgende Konfiguration. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[42]||(e[42]=a(" Speicher wird nicht aktiv gesteuert, sondern regelt eigenständig.",-1)),e[43]||(e[43]=c("br",null,null,-1)),e[44]||(e[44]=a(" Es greifen die Regelparameter der Speicherbeachtung. ",-1))]),key:"1"}]),1032,["model-value"]),i(w,{title:"Aktiv steuerbare Speicher"},{default:r(()=>[p.containsNormalBatteries?(o(),b(u,{key:0,subtype:"danger"},{default:r(()=>[...e[45]||(e[45]=[a(" Es sind weitere, nicht steuerbare Speicher im System vorhanden. Solche Speicher führen gewöhnlich eigenständig eine Nullpunktausregelung durch, versuchen also Überschuss zu speichern (Einspeisung zu verhindern) und Netzbezug durch eigene Entladung zu vermeiden.",-1),c("br",null,null,-1),a(" Ein solcher Speicher versucht ebenso aktiv gesteuerte Speicher auszugleichen. ",-1)])]),_:1})):s("",!0),(o(!0),l(M,null,U(p.batteryConfigs,(n,B)=>(o(),l("div",{key:B},[t.$store.state.mqtt["openWB/bat/"+n.id+"/get/power_limit_controllable"]===!0?(o(),b(w,{key:B,title:n.name+" (ID: "+n.id+")",collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[i(f,{icon:["fas","fa-car-battery"]}),a(" "+q(n.name)+" (ID: "+q(n.id)+") ",1)]),default:r(()=>[(o(),b(_,{key:B,title:"Maximale Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_discharge_power"]/-1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_discharge_power",W*-1e3)},null,8,["model-value","onUpdate:modelValue"])),(o(),b(_,{key:B,title:"Maximale Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_charge_power"]/1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_charge_power",W*1e3)},null,8,["model-value","onUpdate:modelValue"]))]),_:2},1032,["title"])):s("",!0)]))),128))]),_:1}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(o(),l("div",K,[i(v,{title:"Untere Entladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"],"onUpdate:modelValue":e[9]||(e[9]=n=>(t.updateState("openWB/bat/config/bat_control_min_soc",n),t.updateState("openWB/bat/config/bat_control_max_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"][...e[46]||(e[46]=[a(' Speicher, welche durch die aktive Steuerung entladen werden, schalten unterhalb des eingestellten SoC auf "Eigenregelung", um mögliche Tiefentladung zu verhindern. Die aktive Ladung ist weiterhin möglich. ',-1)])]),_:1},8,["model-value"]),i(v,{title:"Obere Ladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"],"onUpdate:modelValue":e[10]||(e[10]=n=>(t.updateState("openWB/bat/config/bat_control_max_soc",n),t.updateState("openWB/bat/config/bat_control_min_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"]>t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]?t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]:n)))},{help:r(()=>[...e[47]||(e[47]=[a(" Speicher, welche aktiv geladen werden, sperren oberhalb des eingestellten SoC die Entladung oder schalten auf Eigenregelung des Speichers. ",-1)])]),_:1},8,["model-value"]),i(g,{title:"Regellimit",buttons:[{buttonValue:"mode_no_discharge",text:"volle Entladesperre"},{buttonValue:"mode_discharge_home_consumption",text:"Nur Hausverbrauch entladen"},{buttonValue:"mode_charge_pv_production",text:"PV-Ertrag speichern"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateState("openWB/bat/config/power_limit_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_no_discharge"?(o(),l("div",Q," Die Speicherentladung wird komplett gesperrt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom und ggfs. vorhandenen PV-Überschuss versorgt. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_discharge_home_consumption"?(o(),l("div",X,' Es wird nur der Hausverbrauch durch den Speicher ausgeglichen. Die Speicherentladung in Fahrzeuge wird komplett gesperrt! Fahrzeugladung, die nicht durch PV-Überschuss gedeckt werden kann, erzeugt Netzbezug statt Speicherentladung. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_charge_pv_production"?(o(),l("div",Y," PV-Ertrag wird vorrangig in den Speicher geladen (aktive Ladung)! Weiterer Verbrauch (Hausverbrauch/ Fahrzeugladung) erzeugt Netzbezug. ")):s("",!0)]),_:1},8,["model-value"]),i(g,{title:"Regelbedingung",buttons:[{buttonValue:"manual",text:"Manuell"},{buttonValue:"vehicle_charging",text:"Fahrzeugladung aktiv"},{buttonValue:"price_limit",text:"Preisgrenze"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_condition"],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateState("openWB/bat/config/power_limit_condition",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",Z," Der Speicher regelt direkt entsprechend der manuellen Einstellung. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",x," Das oben eingestellte Regellimit wird angewendet, sobald ein oder mehrere Fahrzeuge Laden. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",ee," Regelung nach Preisgrenze bei variablen Strompreisen. ")):s("",!0)]),_:1},8,["model-value"]),e[55]||(e[55]=c("hr",null,null,-1)),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",te,[i(h,{class:"mt-0"},{default:r(()=>[...e[48]||(e[48]=[a(" Manuell ",-1)])]),_:1}),i(g,{title:"Speichersteuerung",buttons:[{buttonValue:"manual_disable",text:"Aus"},{buttonValue:"manual_limit",text:"Regellimit anwenden"},{buttonValue:"manual_charge",text:"Speicher laden"}],"model-value":t.$store.state.mqtt["openWB/bat/config/manual_mode"],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateState("openWB/bat/config/manual_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_disable"?(o(),l("div",ne," Aktive Speichersteuerung deaktivieren (Eigenregelung des Speichers). ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_limit"?(o(),l("div",re," Es wird das weiter oben konfigurierte Regellimit angewendet. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_charge"?(o(),l("div",ie," Alle Speicher werden mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ")):s("",!0)]),_:1},8,["model-value"])])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",ae,[i(h,{class:"mt-0"},{default:r(()=>[...e[49]||(e[49]=[a(" Fahrzeugladung aktiv ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[50]||(e[50]=[a(" Dieser Modus bietet keine weiteren Einstellungen. Sobald mindestens ein Fahrzeug lädt greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1})])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",oe,[i(h,{class:"mt-0"},{default:r(()=>[...e[51]||(e[51]=[a(" Preisgrenze (Variable Strompreise) ",-1)])]),_:1}),!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(o(),b(u,{key:0,subtype:"warning"},{default:r(()=>[...e[52]||(e[52]=[a(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter schaltet der Speicher auf Eigenregelung. ",-1)])]),_:1})):s("",!0),i(g,{title:"Preisgrenze für Netzbezug statt Speicherentladung",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_limit_activated"],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateState("openWB/bat/config/price_limit_activated",n))},{help:r(()=>[...e[53]||(e[53]=[a(" Fällt der variable Strompreis unter diesen Wert, greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/price_limit"]*1e5,"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/bat/config/price_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"]),i(g,{title:"Preisgrenze für Speicherladung mit Netzbezug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_charge_activated"],"onUpdate:modelValue":e[16]||(e[16]=n=>t.updateState("openWB/bat/config/price_charge_activated",n))},{help:r(()=>[...e[54]||(e[54]=[a(" Fällt der variable Strompreis unter diesen Wert werden alle Speicher mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Speicherladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/charge_limit"]*1e5,"onUpdate:modelValue":e[17]||(e[17]=n=>t.updateState("openWB/bat/config/charge_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"])])):s("",!0)])):(o(),l("div",le,[i(u,{subtype:"info"},{default:r(()=>[...e[56]||(e[56]=[a(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])]),_:1})]))])):s("",!0)]))]),_:1}),i(y,{"form-name":"batteryConfigForm",onSave:e[18]||(e[18]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[19]||(e[19]=n=>t.$emit("reset")),onDefaults:e[20]||(e[20]=n=>t.$emit("defaults"))})])])}const he=N(D,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ActiveBatControlConfiguration.vue"]]);export{he as default}; +import{C as z}from"./index-D_eD74fL.js";import{F as V,l as $,a4 as C,ag as E,ah as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as N,l as m,k as o,e as l,x as c,m as i,q as r,A as a,u as s,y as b,D as k,K as M,L as U,J as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";$.add(C,E,F);const D={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:V},mixins:[z],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/get/max_charge_power",writeable:!0},{topic:"openWB/bat/+/get/max_discharge_power",writeable:!0},{topic:"openWB/bat/+/get/power_limit_controllable",writeable:!1},{topic:"openWB/bat/config/bat_control_activated",writeable:!0},{topic:"openWB/bat/config/bat_control_max_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_min_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_permitted",writeable:!0},{topic:"openWB/bat/config/charge_limit",writeable:!0},{topic:"openWB/bat/config/manual_mode",writeable:!0},{topic:"openWB/bat/config/power_limit_condition",writeable:!0},{topic:"openWB/bat/config/power_limit_mode",writeable:!0},{topic:"openWB/bat/config/price_charge_activated",writeable:!0},{topic:"openWB/bat/config/price_limit",writeable:!0},{topic:"openWB/bat/config/price_limit_activated",writeable:!0},{topic:"openWB/bat/get/power_limit_controllable",writeable:!1},{topic:"openWB/general/chargemode_config/pv_charging/bat_mode",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/max_bat_soc",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/min_bat_soc",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(t){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",t)}},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")}},controllableBatteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterControllableBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))}},containsNormalBatteries:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?!1:Object.keys(this.filterNormalBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))).length>0}}},methods:{getLimitControllable(t){return this.$store.state.mqtt["openWB/bat/"+t+"/get/power_limit_controllable"]},filterComponentsByType(t,e){return Object.keys(t).filter(d=>t[d].type.includes(e)).reduce((d,S)=>({...d,[S]:t[S]}),{})},filterControllableBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&t[e].configuration.power_limit_controllable===!0).reduce((e,d)=>({...e,[d]:t[d]}),{})},filterNormalBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&this.getLimitControllable(t[e].id)===!1).reduce((e,d)=>({...e,[d]:t[d]}),{})}}},L={class:"batteryConfig"},P={name:"batteryConfigForm"},A={key:0},R={key:1},H={key:0},T={key:1},O={key:2},I={key:0},J={key:0},j={key:1},G={key:0},K={key:0},Q={key:0},X={key:1},Y={key:2},Z={key:0},x={key:1},ee={key:2},te={key:0},ne={key:0},re={key:1},ie={key:2},ae={key:1},oe={key:2},le={key:1};function se(t,e,d,S,de,p){const u=m("openwb-base-alert"),f=m("font-awesome-icon"),g=m("openwb-base-button-group-input"),v=m("openwb-base-range-input"),h=m("openwb-base-heading"),_=m("openwb-base-number-input"),w=m("openwb-base-card"),y=m("openwb-base-submit-buttons");return o(),l("div",L,[c("form",P,[i(w,{title:"Passive Speicherbeachtung (PV)"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",A,[i(u,{subtype:"info"},{default:r(()=>[...e[21]||(e[21]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",R,[i(u,{subtype:"info"},{default:r(()=>[...e[22]||(e[22]=[a(' Die Regelmodi der Speicherbeachtung erfolgen "passiv" durch Anpassung der Fahrzeug-Ladeleistung. PV-Überschuss wird, je nach Konfiguration, entweder dem Fahrzeug zugeteilt oder dem Speicher überlassen. Netz- und Speicherbezug wird, sofern nicht anders konfiguriert, vermieden. ',-1)])]),_:1}),i(g,{modelValue:p.batMode,"onUpdate:modelValue":e[0]||(e[0]=n=>p.batMode=n),title:"Ladepriorität",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","car-side"]}),e[23]||(e[23]=a(" Fahrzeuge ",-1))]),"label-bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-car-battery"]}),e[24]||(e[24]=a(" Speicher ",-1))]),"label-min_soc_bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-battery-half"]}),e[25]||(e[25]=a(" Nach SoC des Speichers ",-1))]),help:r(()=>[p.batMode==="ev_mode"?(o(),l("div",H," Der gesamte Überschuss wird in das EV geladen. Wird mehr Überschuss erzeugt als die Fahrzeuge abnehmen, findet auch eine Speicherladung statt. ")):s("",!0),p.batMode==="bat_mode"?(o(),l("div",T," Der gesamte Überschuss wird 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. ")):s("",!0),p.batMode==="min_soc_bat_mode"?(o(),l("div",O,' Verhält sich bis zum Erreichen des Mindest-SoC wie "Ladepriorität Speicher" und oberhalb des Mindest-SoC wie "Ladepriorität Fahrzeuge". Die maximale Leistung der Speicherbe- und entladung lässt sich hier festlegen. ')):s("",!0)]),_:1},8,["modelValue"]),p.batMode==="min_soc_bat_mode"?(o(),l("div",I,[i(v,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[1]||(e[1]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"][...e[26]||(e[26]=[a(" Unterhalb des Mindest-SoC wird vorhandener PV-Überschuss bevorzugt in den Speicher geladen. Oberhalb des Mindest-SoC hat die Fahrzeugladung Priorität. ",-1)])]),_:1},8,["model-value"]),i(v,{title:"Maximal-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"],"onUpdate:modelValue":e[2]||(e[2]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]>t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]?t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]:n)))},{help:r(()=>[...e[27]||(e[27]=[a(" Wird der Maximal-SoC überschritten, darf der Speicher bis zum Erreichen des Mindest-SoC zur Fahrzeugladung mitbenutzt werden. ",-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]==t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]?(o(),b(u,{key:0,subtype:"info"},{default:r(()=>[...e[28]||(e[28]=[a(" Bei identischen SoC Angaben findet keine Speicherhysterese statt. ",-1)])]),_:1})):s("",!0),i(h,null,{default:r(()=>[...e[29]||(e[29]=[a(" Speicher-Ladeleistung unterhalb Mindest-SoC ",-1)])]),_:1}),i(g,{title:"Nur eine bestimmte Ladeleistung reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?{name:"help",fn:r(()=>[e[30]||(e[30]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten!",-1)),e[31]||(e[31]=c("br",null,null,-1)),e[32]||(e[32]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er mit der hier eingestellten Speicherladeleistung geladen. Verbleibender Überschuss wird in die Fahrzeuge geladen. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[33]||(e[33]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er priorisiert geladen. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(o(),b(_,{key:1,title:"Reservierte Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",n*1e3))},null,8,["model-value"])):s("",!0),i(h,null,{default:r(()=>[...e[34]||(e[34]=[a(" Speicher-SoC oberhalb Maximal-SoC ",-1)])]),_:1}),i(g,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?{name:"help",fn:r(()=>[e[35]||(e[35]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Entladeleistung des Speichers nicht überschreiten! Wird der Maximal-SoC überschritten, wird die PV-Ladung mit der hier eingestellten Speicherentladeleistung unterstützt. Der Speicher darf bis zum Mindest-SoC entladen werden. Die erlaubte Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[36]||(e[36]=a(" Oberhalb des Maximal-SoC wird der Speicher nicht für die Fahrzeugladung mitgenutzt. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(o(),b(_,{key:2,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",n*1e3))},null,8,["model-value"])):s("",!0)])):s("",!0)]))]),_:1}),i(w,{title:"Aktive Speichersteuerung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",J,[i(u,{subtype:"info"},{default:r(()=>[...e[37]||(e[37]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",j,[i(u,{subtype:"info",class:"mb-3"},{default:r(()=>[e[38]||(e[38]=c("p",null,[a(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht vom Hersteller freigegebene Informationen beinhalten."),c("br"),a(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),i(g,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateState("openWB/bat/config/bat_control_permitted",n))},null,8,["model-value"])]),_:1}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(o(),l("div",G,[i(h,{class:"mt-0"},{default:r(()=>[...e[39]||(e[39]=[a(" Regelmodi der aktiven Speichersteuerung ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[40]||(e[40]=[a(" Die aktive Speichersteuerung kann Speicherentladung begrenzen oder den Speicher zur Ladung zwingen. Die erlaubte Entladeleistung des Speichers (Speicherbeachtung PV) wird bei aktiver Speichersteuerung überschrieben, da Speicherentladung unter Umständen aktiv begrenzt wird. ",-1)])]),_:1}),i(g,{title:"Speicher aktiv Steuern",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_activated"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/bat/config/bat_control_activated",n))},k({_:2},[t.$store.state.mqtt["openWB/bat/config/bat_control_activated"]?{name:"help",fn:r(()=>[e[41]||(e[41]=a(" Speicher wird aktiv gesteuert. Grundlage ist die nachfolgende Konfiguration. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[42]||(e[42]=a(" Speicher wird nicht aktiv gesteuert, sondern regelt eigenständig.",-1)),e[43]||(e[43]=c("br",null,null,-1)),e[44]||(e[44]=a(" Es greifen die Regelparameter der Speicherbeachtung. ",-1))]),key:"1"}]),1032,["model-value"]),i(w,{title:"Aktiv steuerbare Speicher"},{default:r(()=>[p.containsNormalBatteries?(o(),b(u,{key:0,subtype:"danger"},{default:r(()=>[...e[45]||(e[45]=[a(" Es sind weitere, nicht steuerbare Speicher im System vorhanden. Solche Speicher führen gewöhnlich eigenständig eine Nullpunktausregelung durch, versuchen also Überschuss zu speichern (Einspeisung zu verhindern) und Netzbezug durch eigene Entladung zu vermeiden.",-1),c("br",null,null,-1),a(" Ein solcher Speicher versucht ebenso aktiv gesteuerte Speicher auszugleichen. ",-1)])]),_:1})):s("",!0),(o(!0),l(M,null,U(p.batteryConfigs,(n,B)=>(o(),l("div",{key:B},[t.$store.state.mqtt["openWB/bat/"+n.id+"/get/power_limit_controllable"]===!0?(o(),b(w,{key:B,title:n.name+" (ID: "+n.id+")",collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[i(f,{icon:["fas","fa-car-battery"]}),a(" "+q(n.name)+" (ID: "+q(n.id)+") ",1)]),default:r(()=>[(o(),b(_,{key:B,title:"Maximale Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_discharge_power"]/-1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_discharge_power",W*-1e3)},null,8,["model-value","onUpdate:modelValue"])),(o(),b(_,{key:B,title:"Maximale Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_charge_power"]/1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_charge_power",W*1e3)},null,8,["model-value","onUpdate:modelValue"]))]),_:2},1032,["title"])):s("",!0)]))),128))]),_:1}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(o(),l("div",K,[i(v,{title:"Untere Entladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"],"onUpdate:modelValue":e[9]||(e[9]=n=>(t.updateState("openWB/bat/config/bat_control_min_soc",n),t.updateState("openWB/bat/config/bat_control_max_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"][...e[46]||(e[46]=[a(' Speicher, welche durch die aktive Steuerung entladen werden, schalten unterhalb des eingestellten SoC auf "Eigenregelung", um mögliche Tiefentladung zu verhindern. Die aktive Ladung ist weiterhin möglich. ',-1)])]),_:1},8,["model-value"]),i(v,{title:"Obere Ladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"],"onUpdate:modelValue":e[10]||(e[10]=n=>(t.updateState("openWB/bat/config/bat_control_max_soc",n),t.updateState("openWB/bat/config/bat_control_min_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"]>t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]?t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]:n)))},{help:r(()=>[...e[47]||(e[47]=[a(" Speicher, welche aktiv geladen werden, sperren oberhalb des eingestellten SoC die Entladung oder schalten auf Eigenregelung des Speichers. ",-1)])]),_:1},8,["model-value"]),i(g,{title:"Regellimit",buttons:[{buttonValue:"mode_no_discharge",text:"volle Entladesperre"},{buttonValue:"mode_discharge_home_consumption",text:"Nur Hausverbrauch entladen"},{buttonValue:"mode_charge_pv_production",text:"PV-Ertrag speichern"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateState("openWB/bat/config/power_limit_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_no_discharge"?(o(),l("div",Q," Die Speicherentladung wird komplett gesperrt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom und ggfs. vorhandenen PV-Überschuss versorgt. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_discharge_home_consumption"?(o(),l("div",X,' Es wird nur der Hausverbrauch durch den Speicher ausgeglichen. Die Speicherentladung in Fahrzeuge wird komplett gesperrt! Fahrzeugladung, die nicht durch PV-Überschuss gedeckt werden kann, erzeugt Netzbezug statt Speicherentladung. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_charge_pv_production"?(o(),l("div",Y," PV-Ertrag wird vorrangig in den Speicher geladen (aktive Ladung)! Weiterer Verbrauch (Hausverbrauch/ Fahrzeugladung) erzeugt Netzbezug. ")):s("",!0)]),_:1},8,["model-value"]),i(g,{title:"Regelbedingung",buttons:[{buttonValue:"manual",text:"Manuell"},{buttonValue:"vehicle_charging",text:"Fahrzeugladung aktiv"},{buttonValue:"price_limit",text:"Preisgrenze"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_condition"],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateState("openWB/bat/config/power_limit_condition",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",Z," Der Speicher regelt direkt entsprechend der manuellen Einstellung. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",x," Das oben eingestellte Regellimit wird angewendet, sobald ein oder mehrere Fahrzeuge Laden. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",ee," Regelung nach Preisgrenze bei variablen Strompreisen. ")):s("",!0)]),_:1},8,["model-value"]),e[55]||(e[55]=c("hr",null,null,-1)),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",te,[i(h,{class:"mt-0"},{default:r(()=>[...e[48]||(e[48]=[a(" Manuell ",-1)])]),_:1}),i(g,{title:"Speichersteuerung",buttons:[{buttonValue:"manual_disable",text:"Aus"},{buttonValue:"manual_limit",text:"Regellimit anwenden"},{buttonValue:"manual_charge",text:"Speicher laden"}],"model-value":t.$store.state.mqtt["openWB/bat/config/manual_mode"],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateState("openWB/bat/config/manual_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_disable"?(o(),l("div",ne," Aktive Speichersteuerung deaktivieren (Eigenregelung des Speichers). ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_limit"?(o(),l("div",re," Es wird das weiter oben konfigurierte Regellimit angewendet. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_charge"?(o(),l("div",ie," Alle Speicher werden mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ")):s("",!0)]),_:1},8,["model-value"])])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",ae,[i(h,{class:"mt-0"},{default:r(()=>[...e[49]||(e[49]=[a(" Fahrzeugladung aktiv ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[50]||(e[50]=[a(" Dieser Modus bietet keine weiteren Einstellungen. Sobald mindestens ein Fahrzeug lädt greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1})])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",oe,[i(h,{class:"mt-0"},{default:r(()=>[...e[51]||(e[51]=[a(" Preisgrenze (Variable Strompreise) ",-1)])]),_:1}),!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(o(),b(u,{key:0,subtype:"warning"},{default:r(()=>[...e[52]||(e[52]=[a(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter schaltet der Speicher auf Eigenregelung. ",-1)])]),_:1})):s("",!0),i(g,{title:"Preisgrenze für Netzbezug statt Speicherentladung",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_limit_activated"],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateState("openWB/bat/config/price_limit_activated",n))},{help:r(()=>[...e[53]||(e[53]=[a(" Fällt der variable Strompreis unter diesen Wert, greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/price_limit"]*1e5,"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/bat/config/price_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"]),i(g,{title:"Preisgrenze für Speicherladung mit Netzbezug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_charge_activated"],"onUpdate:modelValue":e[16]||(e[16]=n=>t.updateState("openWB/bat/config/price_charge_activated",n))},{help:r(()=>[...e[54]||(e[54]=[a(" Fällt der variable Strompreis unter diesen Wert werden alle Speicher mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Speicherladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/charge_limit"]*1e5,"onUpdate:modelValue":e[17]||(e[17]=n=>t.updateState("openWB/bat/config/charge_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"])])):s("",!0)])):(o(),l("div",le,[i(u,{subtype:"info"},{default:r(()=>[...e[56]||(e[56]=[a(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])]),_:1})]))])):s("",!0)]))]),_:1}),i(y,{"form-name":"batteryConfigForm",onSave:e[18]||(e[18]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[19]||(e[19]=n=>t.$emit("reset")),onDefaults:e[20]||(e[20]=n=>t.$emit("defaults"))})])])}const he=N(D,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ActiveBatControlConfiguration.vue"]]);export{he as default}; diff --git a/web/settings/assets/ChargeLog-Bgx1bSon.js b/web/settings/assets/ChargeLog-CZQ0QwMY.js similarity index 99% rename from web/settings/assets/ChargeLog-Bgx1bSon.js rename to web/settings/assets/ChargeLog-CZQ0QwMY.js index fca5289ec0..4226c03459 100644 --- a/web/settings/assets/ChargeLog-Bgx1bSon.js +++ b/web/settings/assets/ChargeLog-CZQ0QwMY.js @@ -1,3 +1,3 @@ -import{F as N,l as k,a8 as E,a9 as R}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,a0 as S,l as h,k as _,e as u,m as c,q as o,A as d,x as s,J as n,y as W,j as w,O as m,u as V}from"./vendor-Bo8v-nQD.js";import{C as y}from"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";k.add(E,R);const I={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:N},mixins:[y],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"Kilometerstand",field:"vehicle_odometer",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 Laden Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Laden Ende",field:"chargepoint_imported_at_end",sortable:!0},{label:"Entladene Energie",field:"data_exported_since_mode_switch",sortable:!0},{label:"Zähler Entladen Beginn",field:"chargepoint_exported_at_start",sortable:!0},{label:"Zähler Entladen Ende",field:"chargepoint_exported_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:"Entladene Energie",field:"exported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?null:`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:null},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),r=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_exported_at_start:t.chargepoint.exported_at_start,chargepoint_exported_at_end:t.chargepoint.exported_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_odometer:t.vehicle.odometer,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:r/1e3,time_end:isNaN(r)?null:this.dateTimeFormat.format(new Date(r)),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,data_exported_since_plugged:t.data.exported_since_plugged,data_exported_since_mode_switch:t.data.exported_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"','"Kilometerstand"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Geladene Energie"','"Entladene Energie"','"Reichweite"','"Zählerstand Laden Beginn"','"Zählerstand Laden Ende"','"Zählerstand Entladen Beginn"','"Zählerstand Entladen Ende"','"Energie seit Anstecken"','"Entladene 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_odometer==null?"":'"'+e.vehicle_odometer+'"',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_exported_since_mode_switch||0)/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.chargepoint_exported_at_start||0)/1e3,2),this.formatNumber((e.chargepoint_exported_at_end||0)/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2),this.formatNumber((e.data_exported_since_plugged||0)/1e3,2)])].map(e=>e.join(";")).join(` +import{F as N,l as k,a8 as E,a9 as R}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,a0 as S,l as h,k as _,e as u,m as c,q as o,A as d,x as s,J as n,y as W,j as w,O as m,u as V}from"./vendor-Bo8v-nQD.js";import{C as y}from"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";k.add(E,R);const I={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:N},mixins:[y],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"Kilometerstand",field:"vehicle_odometer",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 Laden Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Laden Ende",field:"chargepoint_imported_at_end",sortable:!0},{label:"Entladene Energie",field:"data_exported_since_mode_switch",sortable:!0},{label:"Zähler Entladen Beginn",field:"chargepoint_exported_at_start",sortable:!0},{label:"Zähler Entladen Ende",field:"chargepoint_exported_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:"Entladene Energie",field:"exported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?null:`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:null},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),r=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_exported_at_start:t.chargepoint.exported_at_start,chargepoint_exported_at_end:t.chargepoint.exported_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_odometer:t.vehicle.odometer,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:r/1e3,time_end:isNaN(r)?null:this.dateTimeFormat.format(new Date(r)),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,data_exported_since_plugged:t.data.exported_since_plugged,data_exported_since_mode_switch:t.data.exported_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"','"Kilometerstand"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Geladene Energie"','"Entladene Energie"','"Reichweite"','"Zählerstand Laden Beginn"','"Zählerstand Laden Ende"','"Zählerstand Entladen Beginn"','"Zählerstand Entladen Ende"','"Energie seit Anstecken"','"Entladene 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_odometer==null?"":'"'+e.vehicle_odometer+'"',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_exported_since_mode_switch||0)/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.chargepoint_exported_at_start||0)/1e3,2),this.formatNumber((e.chargepoint_exported_at_end||0)/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2),this.formatNumber((e.data_exported_since_plugged||0)/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(r=>({value:r,text:this.translateChargeMode(r)}));const e=t.map(r=>r.value);return t.unshift({value:e,text:"Alle"}),t},chargePointList(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const[,r]of Object.entries(t))e.push({value:r.id,text:r.name});if(e.length>1){const r=e.map(g=>g.value);e.unshift({value:r,text:"Alle"})}return e},vehicleList(){let t=this.getWildcardTopics("openWB/vehicle/+/info");var e=[];for(const r of Object.keys(t)){let g=parseInt(r.match(/\/([0-9]+)\/info$/)[1]);const l=this.$store.state.mqtt["openWB/vehicle/"+g+"/name"];e.push({value:g,text:l||`Fahrzeug ${g}`})}if(e.length>1){const r=e.map(g=>g.value);e.unshift({value:r,text:"Alle"})}return e}},beforeMount(){this.mqttTopics.push({topic:"openWB/log/"+this.mqttClientId+"/data",writeable:!1});const t=new Date;this.currentMonth=this.chargeLogDate=t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0")},mounted(){window.setTimeout(()=>{console.debug("initial charge log request"),console.debug("vehicle List on init:",JSON.stringify(this.vehicleList)),console.debug("charge Point List on init:",JSON.stringify(this.chargePointList)),this.requestChargeLog()},500)},methods:{cleanRequestData(){const t=r=>r==null?[]:Array.isArray(r)?r.length===1&&Array.isArray(r[0])?r[0]:r:[r],e=this.chargeLogRequestData.filter;if(e.vehicle.id=t(e.vehicle.id).filter(r=>r!==void 0),e.vehicle.chargemode=t(e.vehicle.chargemode).filter(r=>r!==void 0),e.chargepoint.id=t(e.chargepoint.id).filter(r=>r!==void 0),e.vehicle.id.length===0&&this.vehicleList.length>0){const r=this.vehicleList[0].value;e.vehicle.id=Array.isArray(r)?r:[r]}if(e.chargepoint.id.length===0&&this.chargePointList.length>0){const r=this.chargePointList[0].value;e.chargepoint.id=Array.isArray(r)?r:[r]}e.vehicle.prio===null&&(e.vehicle.prio=void 0),console.debug("cleaned request data",JSON.stringify(this.chargeLogRequestData))},requestChargeLog(){if(console.debug("requesting charge log with data:",JSON.stringify(this.chargeLogRequestData)),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 r=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?r+"kW":r},formatWh(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?r+"kWh":r},formatRange(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,0));return e?r+"km":r},formatOdometer(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,0));return e?r+"km":r},formatSoc(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,0));return e?r+"%":r},formatCosts(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,2));return e?r+"€":r},dashIfNotSet(t){return t==null||t==""||t==null?"-":t},getChargeModeClass(t){switch(t){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Eco":case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}}},F={class:"chargeLog"},T={key:0},U={key:1},A={name:"chargeLogForm"},M=["href"],O=["href"],P={key:1},Z={class:"td-end"},z={class:"td-end"},j=["title"],J=["aria-valuenow"],K=["aria-valuenow"],Y=["aria-valuenow"],G=["aria-valuenow"],H={key:1,class:"td-center"},Q={class:"td-end"},X={class:"no-wrap"},$={class:"no-wrap"},ee={class:"td-end"},te={class:"no-wrap"},ae={class:"no-wrap"},re={class:"td-end"},ie={class:"no-wrap"},se={class:"no-wrap"},oe={class:"td-end"},ne={class:"no-wrap"},le={class:"td-end"},de={class:"td-end"},ce={class:"td-end"},he={class:"td-end"},ge={key:0},_e={class:"row justify-content-center"},ue={ref:"downloadChargeLogLink",class:"hide"},me={class:"td-end"},pe={class:"td-end"},fe={class:"td-end"},be={class:"td-end"},ve={class:"td-end"};function Le(t,e,r,g,l,i){const p=h("openwb-base-alert"),C=h("openwb-base-text-input"),b=h("font-awesome-icon"),D=h("openwb-base-button-group-input"),f=h("openwb-base-select-input"),x=h("openwb-base-array-input"),v=h("openwb-base-card"),L=h("vue3-table-lite"),q=h("openwb-base-click-button");return _(),u("div",F,[t.$store.state.mqtt["openWB/general/extern"]===!0?(_(),u("div",T,[c(p,{subtype:"info"},{default:o(()=>[...e[13]||(e[13]=[d(' Das Ladeprotokoll ist nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Ladevorgänge in der openWB, die sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(_(),u("div",U,[s("form",A,[c(v,{title:"Filter"},{default:o(()=>[c(C,{modelValue:i.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>i.chargeLogDate=a),e[1]||(e[1]=a=>i.requestChargeLog())],title:"Zeitraum",subtype:"month",min:"2018-01","show-quick-buttons":!0,max:l.currentMonth},null,8,["modelValue","max"]),c(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:o(()=>[c(b,{icon:["fas","filter"]}),e[14]||(e[14]=d(" Erweiterte Optionen ",-1))]),default:o(()=>[c(D,{modelValue:l.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[e[2]||(e[2]=a=>l.chargeLogRequestData.filter.vehicle.prio=a),e[3]||(e[3]=a=>i.requestChargeLog())],title:"Priorität",buttons:[{buttonValue:null,text:"Alle",class:"btn-outline-info"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),c(f,{modelValue:l.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[e[4]||(e[4]=a=>l.chargeLogRequestData.filter.vehicle.chargemode=a),e[5]||(e[5]=a=>i.requestChargeLog())],title:"Lademodus",multiple:"",options:i.chargeModeList},{help:o(()=>[...e[15]||(e[15]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),c(f,{modelValue:l.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[e[6]||(e[6]=a=>l.chargeLogRequestData.filter.chargepoint.id=a),e[7]||(e[7]=a=>i.requestChargeLog())],title:"Ladepunkt",multiple:"",options:i.chargePointList},{help:o(()=>[...e[16]||(e[16]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),c(f,{modelValue:l.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[e[8]||(e[8]=a=>l.chargeLogRequestData.filter.vehicle.id=a),e[9]||(e[9]=a=>i.requestChargeLog())],title:"Fahrzeug",multiple:"",options:i.vehicleList},{help:o(()=>[...e[17]||(e[17]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),c(x,{modelValue:l.chargeLogRequestData.filter.vehicle.tag,"onUpdate:modelValue":[e[10]||(e[10]=a=>l.chargeLogRequestData.filter.vehicle.tag=a),e[11]||(e[11]=a=>i.requestChargeLog())],title:"ID-Tags"},{help:o(()=>[...e[18]||(e[18]=[d(" Es können mehrere Tags als Filter verwendet werden. ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1}),c(p,{subtype:"info"},{default:o(()=>[e[19]||(e[19]=d(" Das Ladeprotokoll kann monatsweise automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:i.downloadUrlMonth},n(i.downloadUrlMonth),9,M),e[20]||(e[20]=d()),e[21]||(e[21]=s("br",null,null,-1)),e[22]||(e[22]=d(" Das komplette Ladeprotokoll für das gesamte Jahr kann automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:i.downloadUrlYear},n(i.downloadUrlYear),9,O)]),_:1}),i.chargeLogRead?(_(),u("div",P,[c(L,{class:"charge-log-table","is-static-mode":!0,columns:i.chargeLogColumns,rows:i.chargeLogDataset,total:i.totalRecordCount,sortable:l.table.sortable,messages:l.table.messages,"page-options":l.table.pageOptions,limit:25,"is-slot-mode":!0},{time_begin:o(a=>[d(n(i.dashIfNotSet(a.value.time_begin)),1)]),time_end:o(a=>[d(n(i.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:o(a=>[s("div",Z,n(a.value.time_time_charged),1)]),data_costs:o(a=>[s("div",z,n(i.formatCosts(a.value.data_costs)),1)]),data_power_source:o(a=>[a.value.data_power_source?(_(),u("div",{key:0,class:"progress td-center",title:i.getProgressTitle(a.value.data_power_source)},[s("div",{class:"progress-bar bg-danger",role:"progressbar",style:m({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),s("div",{class:"progress-bar bg-primary",role:"progressbar",style:m({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),s("div",{class:"progress-bar bg-warning",role:"progressbar",style:m({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,Y),s("div",{class:"progress-bar bg-success",role:"progressbar",style:m({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G)],8,j)):(_(),u("div",H," - "))]),vehicle_chargemode:o(a=>[s("div",{class:w(["td-center tag",i.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:o(a=>[s("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(i.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:o(a=>[d(n(i.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_odometer:o(a=>[d(n(i.formatOdometer(a.value.vehicle_odometer)),1)]),vehicle_soc_at_start:o(a=>[s("div",Q,[s("span",X,n(i.formatSoc(a.value.vehicle_soc_at_start)),1),s("span",$," ("+n(i.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:o(a=>[s("div",ee,[s("span",te,n(i.formatSoc(a.value.vehicle_soc_at_end)),1),s("span",ae," ("+n(i.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:o(a=>[d(n(i.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:o(a=>[d(n(i.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:o(a=>[s("div",re,[s("span",ie,n(i.formatWh(a.value.data_imported_since_mode_switch)),1),s("span",se," ("+n(i.formatRange(a.value.data_range_charged))+") ",1)])]),data_exported_since_mode_switch:o(a=>[s("div",oe,[s("span",ne,n(i.formatWh(a.value.data_exported_since_mode_switch||0)),1)])]),chargepoint_imported_at_start:o(a=>[s("div",le,n(i.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:o(a=>[s("div",de,n(i.formatWh(a.value.chargepoint_imported_at_end)),1)]),chargepoint_exported_at_start:o(a=>[s("div",ce,n(i.formatWh(a.value.chargepoint_exported_at_start||0)),1)]),chargepoint_exported_at_end:o(a=>[s("div",he,n(i.formatWh(a.value.chargepoint_exported_at_end||0)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),i.totalRecordCount>0?(_(),u("div",ge,[s("div",_e,[c(q,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>i.downloadChargeLog())},{default:o(()=>[e[24]||(e[24]=d(" Als CSV exportieren ",-1)),c(b,{icon:["fas","download"]})]),_:1}),s("a",ue,null,512)]),e[25]||(e[25]=s("div",{class:"row"},[s("div",{class:"col"},[s("h2",null,"Summe")])],-1)),c(L,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:l.totals.columns,rows:i.chargeLogTotals,total:1,"is-slot-mode":!0},{time_charged:o(a=>[s("div",me,n(a.value.time_charged),1)]),imported_since_mode_switch:o(a=>[s("div",pe,n(i.formatWh(a.value.imported_since_mode_switch)),1)]),exported_since_mode_switch:o(a=>[s("div",fe,n(i.formatWh(a.value.exported_since_mode_switch||0)),1)]),range_charged:o(a=>[s("div",be,n(i.formatRange(a.value.range_charged)),1)]),costs:o(a=>[s("div",ve,n(i.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):V("",!0)])):(_(),W(p,{key:0,subtype:"info"},{default:o(()=>[...e[23]||(e[23]=[d(" Es wurden noch keine Daten abgerufen. ",-1)])]),_:1}))])]))])}const ke=B(I,[["render",Le],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{ke as default}; diff --git a/web/settings/assets/ChargePointInstallation-C3IshOKk.js b/web/settings/assets/ChargePointInstallation-BeNMkMOi.js similarity index 96% rename from web/settings/assets/ChargePointInstallation-C3IshOKk.js rename to web/settings/assets/ChargePointInstallation-BeNMkMOi.js index dd70b91485..b53f122125 100644 --- a/web/settings/assets/ChargePointInstallation-C3IshOKk.js +++ b/web/settings/assets/ChargePointInstallation-BeNMkMOi.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chargePoint-BsAFaJWO.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/chargePoint-Cu68pCda.js","assets/chargePoint-BxYclOKe.js","assets/chargePoint-DHvT86qo.js","assets/chargePoint-CLglsVkD.js","assets/chargePoint-mAO4xa7T.js","assets/chargePoint-f_Y7TEQC.js","assets/commands-Dy4aruCr.js","assets/commands-CZXUCdhE.js"])))=>i.map(i=>d[i]); -import{F as M,l as j,aj as R,av as N,H as Z,aw as $,ax as H,P as ee,d as te,X as ne,ay as ae}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as L,C as J}from"./index-CyH1Au4V.js";import{S as oe}from"./SystemVersion-DQAfG1DR.js";import{_ as T}from"./dynamic-import-helper-BheWnx7M.js";import{_ as z,l as p,k as l,e as u,y as h,q as o,A as i,J as w,m as a,x as m,a1 as O,a2 as F,K as A,u as g,L as U,z as E,j as le,D as ie}from"./vendor-Bo8v-nQD.js";const se={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},re=z(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),ue={name:"ChargePointConfigFallback",mixins:[re]},de={class:"charge-point-config-fallback"},pe={key:1};function me(t,e,c,v,_,n){const y=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",de,[Object.keys(t.chargePoint.configuration).length==0?(l(),h(y,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+w(t.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",pe,[a(y,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+w(t.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":t.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=P=>t.updateConfiguration(P,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(y,{subtype:"info"},{default:o(()=>[m("pre",null,w(JSON.stringify(t.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const ge=z(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ce={props:{chargePoint:{type:Object,required:!0}}},be=z(ce,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),fe={name:"ChargePointCommandsFallback",mixins:[be]},he={class:"charge-point-commands-fallback"};function _e(t,e,c,v,_,n){return l(),u("div",he)}const ke=z(fe,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),we={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-BsAFaJWO.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-Cu68pCda.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11])),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-BxYclOKe.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-DHvT86qo.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-CLglsVkD.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-mAO4xa7T.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11])),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-f_Y7TEQC.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/chargePoint.vue`,3),errorComponent:ge})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-Dy4aruCr.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-CZXUCdhE.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/commands.vue`,3),errorComponent:ke})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ve(t,e,c,v,_,n){const y=p("openwb-base-heading");return l(),u(A,null,[a(y,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>n.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(y,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const ye=z(we,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);j.add(R,N,Z,$,H);const Ce={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:M},mixins:[J],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(t){this.$emit("update:modelValue",t)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(t){this.showRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Pe={key:0},Ve={key:1},Le={key:2},Be={key:1},We={key:2};function Ae(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-avatar"),C=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(y,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removePlan},{default:o(()=>[i(' Willst Du den Autolock Zeitplan "'+w(n.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:n.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:le(["pill clickable",n.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=E(k=>n.plan.active=!n.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+w(n.plan.time[0])+" - "+w(n.plan.time[1])+" ",1),n.plan.frequency.selected=="once"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-day"]}),i(" "+w(t.formatDate(n.plan.frequency.once[0])==t.formatDate(n.plan.frequency.once[1])?t.formatDate(n.plan.frequency.once[0]):t.formatDate(n.plan.frequency.once[0])+" - "+t.formatDate(n.plan.frequency.once[1])),1)])):g("",!0),n.plan.frequency.selected=="daily"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("span",Le,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Be,[a(P,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=E(k=>n.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(P,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=E(k=>n.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(C,{modelValue:n.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>n.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:n.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>n.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>n.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>n.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:n.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>n.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),n.plan.frequency.selected=="once"?(l(),h(C,{key:0,modelValue:n.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>n.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),n.plan.frequency.selected=="once"?(l(),h(C,{key:1,modelValue:n.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>n.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:n.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("div",We,[(l(!0),u(A,null,U(t.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:n.plan.frequency.weekly[k],"onUpdate:modelValue":V=>n.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const ze=z(Ce,[["render",Ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);j.add(te,R,N,Z,$,H,ne,ae);const Ie={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:M,FontAwesomeLayers:ee,OpenwbChargePointProxy:ye,TemplateAutoLockPlan:ze},mixins:[J,oe],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!0},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ocpp/config",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/chargepoints",writeable:!1},{topic:"openWB/system/configurable/chargepoints_internal",writeable:!1}],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,v]of Object.entries(t))(v&&typeof v=="object"&&v.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=v);return e}},chargePointTemplates(){const t=this.getWildcardTopics("openWB/chargepoint/template/+");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},chargePointTemplateList:{get(){let t=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),v=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;t.push({value:c,text:v})}),t}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(t,e){t.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(t,e){this.showChargePointModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(t){return this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"].name:"Ladepunkt "+t},getChargePointTemplateIndex(t){return parseInt(t.match(/([^/]+)$/)[0])},getChargePointTemplateName(t){return this.$store.state.mqtt["openWB/chargepoint/template/"+t]?this.$store.state.mqtt["openWB/chargepoint/template/"+t].name:"Profil "+t},addChargePointTemplate(t,e){t.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(t,e){t.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(t,e){this.showChargePointTemplateModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(t){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(t)}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},De={class:"chargePointInstallation"},Ue={name:"chargePointInstallationForm"},Ee=["href"],Se={key:0},xe={key:2},qe={key:0},Te={key:0,class:"border-secondary"},Oe={key:0},Fe={key:1},Me={key:1},je={key:0},Re={key:0},Ne={key:1},Ze={key:2},$e={key:1},He={key:0},Je={key:2},Ge={key:4};function Qe(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-alert"),C=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),D=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(y,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Willst Du den Ladepunkt "'+w(n.getChargePointName(_.modalChargePointIndex))+'" (ID: '+w(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(y,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Willst Du das Ladepunkt-Profil "'+w(n.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+w(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",De,[m("form",Ue,[a(D,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(P,{subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1)),m("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:konfiguration:ladepunkte:openwb`,target:"_blank",rel:"noopener noreferrer"},"Wiki",8,Ee),e[9]||(e[9]=i(" . ",-1))]),_:1}),(l(!0),u(A,null,U(n.installedChargePoints,(s,d)=>(l(),h(D,{key:d,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(C,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>n.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":r=>t.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[d].type},null,8,["model-value"]),s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Se,[a(I,{title:"Ladepunkt-Profil",options:n.chargePointTemplateList,"model-value":t.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>t.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s?.ocpp_chargebox_id,"onUpdate:modelValue":r=>t.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[10]||(e[10]=[i(" Bitte gib hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):g("",!0),e[16]||(e[16]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>n.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1)&&s?.charging_type!=="DC"?(l(),u("div",xe,[e[15]||(e[15]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[11]||(e[11]=[i(" Hardware-Optionen ",-1)])]),_:1}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.auto_phase_switch_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.control_pilot_interruption_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[12]||(e[12]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[13]||(e[13]=[i(" Elektrischer Anschluss ",-1)])]),_:1}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s?.connected_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s?.phase_1,"onUpdate:modelValue":r=>t.updateState(d,r,"phase_1")},{help:o(()=>[...e[14]||(e[14]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedChargePoints).length>0?(l(),u("hr",qe)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:n.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":n.addChargePoint},{help:o(()=>[...e[17]||(e[17]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),t.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",Te)):g("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(D,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[18]||(e[18]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:n.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",Oe,[a(P,{subtype:"info"},{default:o(()=>[...e[19]||(e[19]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),u("div",Fe,[(l(!0),u(A,null,U(n.chargePointTemplates,(s,d)=>(l(),h(D,{key:d,title:`${s.name} (ID: ${n.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>n.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1},8,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(C,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>n.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>t.updateState(d,r,"name")},ie({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[20]||(e[20]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),n.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>t.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[40]||(e[40]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Me,[a(k,null,{default:o(()=>[...e[21]||(e[21]=[i(" Zugangskontrolle ",-1)])]),_:1}),s.valid_tags.length>0?(l(),u("div",je,[a(P,{subtype:"info"},{default:o(()=>[e[23]||(e[23]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[22]||(e[22]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[24]||(e[24]=i(". ",-1)),t.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Re," Ladepunkte mit diesem Profil werden automatisch beim Abstecken eines Fahrzeugs gesperrt und müssen für den nächsten Ladevorgang mit einem ID-Tag entsperrt werden. ")):t.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(l(),u("div",Ne," Die Zugangskontrolle ist aktuell deaktiviert. ")):(l(),u("div",Ze," Die Zugangskontrolle ist aktiviert, jedoch werden Ladepunkte mit diesem Profil nicht automatisch nach dem Abstecken eines Fahrzeugs gesperrt. "))]),_:2},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":s.valid_tags},{help:o(()=>[...e[25]||(e[25]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Ladepunkt-Profil zugeordnet sind. Nur mit diesen ID-Tags können Ladepunkte, denen dieses Profil zugeordnet ist, entsperrt werden. ",-1)])]),_:1},8,["model-value"])])):(l(),u("div",$e,[a(P,{subtype:"info"},{default:o(()=>[e[27]||(e[27]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[26]||(e[26]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[28]||(e[28]=i(".",-1)),e[29]||(e[29]=m("br",null,null,-1)),e[30]||(e[30]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})]))])),e[41]||(e[41]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[31]||(e[31]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1}),a(P,{subtype:"info"},{default:o(()=>[e[32]||(e[32]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[33]||(e[33]=m("br",null,null,-1)),e[34]||(e[34]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",He," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2},1024),s.charging_type==="AC"||n.dcChargingEnabled!==!0?(l(),u("div",Je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":t.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>t.updateState(d,t.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Ge,[e[39]||(e[39]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[35]||(e[35]=[i(" Sperren nach Uhrzeit (Komplettsperrung - Freischaltung per Identifikation möglich) ",-1)])]),_:1}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.active")},{help:o(()=>[...e[36]||(e[36]=[i(" Wird Sperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist aber eine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich, wenn Identifikation aktiviert ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[37]||(e[37]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(C,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:E(r=>n.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:o(()=>[e[38]||(e[38]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2},1024)])),(l(!0),u(A,null,U(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":S=>t.updateState(d,S,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=S=>t.$emit("sendCommand",S))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[5]||(e[5]=s=>t.$emit("reset")),onDefaults:e[6]||(e[6]=s=>t.$emit("defaults"))})])])],64)}const Xe=z(Ie,[["render",Qe],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),at=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{re as C,be as a,Xe as b,at as c}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chargePoint-Dedwz5Jy.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/chargePoint-sYavUqxv.js","assets/chargePoint-CZkD_QGG.js","assets/chargePoint-UK4SBHnE.js","assets/chargePoint-DWLMU56i.js","assets/chargePoint-Bd2Kp2l0.js","assets/chargePoint-CIyU28Hf.js","assets/commands-DVXr5SHv.js","assets/commands-WVGU9z4_.js"])))=>i.map(i=>d[i]); +import{F as M,l as j,aj as R,av as N,H as Z,aw as $,ax as H,P as ee,d as te,X as ne,ay as ae}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as L,C as J}from"./index-D_eD74fL.js";import{S as oe}from"./SystemVersion-DQAfG1DR.js";import{_ as T}from"./dynamic-import-helper-BheWnx7M.js";import{_ as z,l as p,k as l,e as u,y as h,q as o,A as i,J as w,m as a,x as m,a1 as O,a2 as F,K as A,u as g,L as U,z as E,j as le,D as ie}from"./vendor-Bo8v-nQD.js";const se={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},re=z(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),ue={name:"ChargePointConfigFallback",mixins:[re]},de={class:"charge-point-config-fallback"},pe={key:1};function me(t,e,c,v,_,n){const y=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",de,[Object.keys(t.chargePoint.configuration).length==0?(l(),h(y,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+w(t.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",pe,[a(y,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+w(t.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":t.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=P=>t.updateConfiguration(P,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(y,{subtype:"info"},{default:o(()=>[m("pre",null,w(JSON.stringify(t.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const ge=z(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ce={props:{chargePoint:{type:Object,required:!0}}},be=z(ce,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),fe={name:"ChargePointCommandsFallback",mixins:[be]},he={class:"charge-point-commands-fallback"};function _e(t,e,c,v,_,n){return l(),u("div",he)}const ke=z(fe,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),we={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-Dedwz5Jy.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-sYavUqxv.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11])),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-CZkD_QGG.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-UK4SBHnE.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-DWLMU56i.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-Bd2Kp2l0.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11])),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-CIyU28Hf.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/chargePoint.vue`,3),errorComponent:ge})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-DVXr5SHv.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-WVGU9z4_.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/commands.vue`,3),errorComponent:ke})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ve(t,e,c,v,_,n){const y=p("openwb-base-heading");return l(),u(A,null,[a(y,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>n.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(y,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const ye=z(we,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);j.add(R,N,Z,$,H);const Ce={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:M},mixins:[J],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(t){this.$emit("update:modelValue",t)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(t){this.showRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Pe={key:0},Ve={key:1},Le={key:2},Be={key:1},We={key:2};function Ae(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-avatar"),C=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(y,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removePlan},{default:o(()=>[i(' Willst Du den Autolock Zeitplan "'+w(n.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:n.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:le(["pill clickable",n.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=E(k=>n.plan.active=!n.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+w(n.plan.time[0])+" - "+w(n.plan.time[1])+" ",1),n.plan.frequency.selected=="once"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-day"]}),i(" "+w(t.formatDate(n.plan.frequency.once[0])==t.formatDate(n.plan.frequency.once[1])?t.formatDate(n.plan.frequency.once[0]):t.formatDate(n.plan.frequency.once[0])+" - "+t.formatDate(n.plan.frequency.once[1])),1)])):g("",!0),n.plan.frequency.selected=="daily"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("span",Le,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Be,[a(P,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=E(k=>n.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(P,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=E(k=>n.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(C,{modelValue:n.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>n.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:n.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>n.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>n.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>n.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:n.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>n.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),n.plan.frequency.selected=="once"?(l(),h(C,{key:0,modelValue:n.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>n.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),n.plan.frequency.selected=="once"?(l(),h(C,{key:1,modelValue:n.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>n.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:n.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("div",We,[(l(!0),u(A,null,U(t.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:n.plan.frequency.weekly[k],"onUpdate:modelValue":V=>n.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const ze=z(Ce,[["render",Ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);j.add(te,R,N,Z,$,H,ne,ae);const Ie={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:M,FontAwesomeLayers:ee,OpenwbChargePointProxy:ye,TemplateAutoLockPlan:ze},mixins:[J,oe],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!0},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ocpp/config",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/chargepoints",writeable:!1},{topic:"openWB/system/configurable/chargepoints_internal",writeable:!1}],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,v]of Object.entries(t))(v&&typeof v=="object"&&v.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=v);return e}},chargePointTemplates(){const t=this.getWildcardTopics("openWB/chargepoint/template/+");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},chargePointTemplateList:{get(){let t=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),v=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;t.push({value:c,text:v})}),t}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(t,e){t.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(t,e){this.showChargePointModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(t){return this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"].name:"Ladepunkt "+t},getChargePointTemplateIndex(t){return parseInt(t.match(/([^/]+)$/)[0])},getChargePointTemplateName(t){return this.$store.state.mqtt["openWB/chargepoint/template/"+t]?this.$store.state.mqtt["openWB/chargepoint/template/"+t].name:"Profil "+t},addChargePointTemplate(t,e){t.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(t,e){t.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(t,e){this.showChargePointTemplateModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(t){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(t)}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},De={class:"chargePointInstallation"},Ue={name:"chargePointInstallationForm"},Ee=["href"],Se={key:0},xe={key:2},qe={key:0},Te={key:0,class:"border-secondary"},Oe={key:0},Fe={key:1},Me={key:1},je={key:0},Re={key:0},Ne={key:1},Ze={key:2},$e={key:1},He={key:0},Je={key:2},Ge={key:4};function Qe(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-alert"),C=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),D=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(y,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Willst Du den Ladepunkt "'+w(n.getChargePointName(_.modalChargePointIndex))+'" (ID: '+w(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(y,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Willst Du das Ladepunkt-Profil "'+w(n.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+w(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",De,[m("form",Ue,[a(D,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(P,{subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1)),m("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:konfiguration:ladepunkte:openwb`,target:"_blank",rel:"noopener noreferrer"},"Wiki",8,Ee),e[9]||(e[9]=i(" . ",-1))]),_:1}),(l(!0),u(A,null,U(n.installedChargePoints,(s,d)=>(l(),h(D,{key:d,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(C,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>n.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":r=>t.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[d].type},null,8,["model-value"]),s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Se,[a(I,{title:"Ladepunkt-Profil",options:n.chargePointTemplateList,"model-value":t.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>t.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s?.ocpp_chargebox_id,"onUpdate:modelValue":r=>t.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[10]||(e[10]=[i(" Bitte gib hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):g("",!0),e[16]||(e[16]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>n.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1)&&s?.charging_type!=="DC"?(l(),u("div",xe,[e[15]||(e[15]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[11]||(e[11]=[i(" Hardware-Optionen ",-1)])]),_:1}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.auto_phase_switch_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.control_pilot_interruption_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[12]||(e[12]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[13]||(e[13]=[i(" Elektrischer Anschluss ",-1)])]),_:1}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s?.connected_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s?.phase_1,"onUpdate:modelValue":r=>t.updateState(d,r,"phase_1")},{help:o(()=>[...e[14]||(e[14]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedChargePoints).length>0?(l(),u("hr",qe)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:n.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":n.addChargePoint},{help:o(()=>[...e[17]||(e[17]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),t.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",Te)):g("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(D,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[18]||(e[18]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:n.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",Oe,[a(P,{subtype:"info"},{default:o(()=>[...e[19]||(e[19]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),u("div",Fe,[(l(!0),u(A,null,U(n.chargePointTemplates,(s,d)=>(l(),h(D,{key:d,title:`${s.name} (ID: ${n.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>n.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1},8,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(C,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>n.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>t.updateState(d,r,"name")},ie({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[20]||(e[20]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),n.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>t.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[40]||(e[40]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Me,[a(k,null,{default:o(()=>[...e[21]||(e[21]=[i(" Zugangskontrolle ",-1)])]),_:1}),s.valid_tags.length>0?(l(),u("div",je,[a(P,{subtype:"info"},{default:o(()=>[e[23]||(e[23]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[22]||(e[22]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[24]||(e[24]=i(". ",-1)),t.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Re," Ladepunkte mit diesem Profil werden automatisch beim Abstecken eines Fahrzeugs gesperrt und müssen für den nächsten Ladevorgang mit einem ID-Tag entsperrt werden. ")):t.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(l(),u("div",Ne," Die Zugangskontrolle ist aktuell deaktiviert. ")):(l(),u("div",Ze," Die Zugangskontrolle ist aktiviert, jedoch werden Ladepunkte mit diesem Profil nicht automatisch nach dem Abstecken eines Fahrzeugs gesperrt. "))]),_:2},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":s.valid_tags},{help:o(()=>[...e[25]||(e[25]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Ladepunkt-Profil zugeordnet sind. Nur mit diesen ID-Tags können Ladepunkte, denen dieses Profil zugeordnet ist, entsperrt werden. ",-1)])]),_:1},8,["model-value"])])):(l(),u("div",$e,[a(P,{subtype:"info"},{default:o(()=>[e[27]||(e[27]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[26]||(e[26]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[28]||(e[28]=i(".",-1)),e[29]||(e[29]=m("br",null,null,-1)),e[30]||(e[30]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})]))])),e[41]||(e[41]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[31]||(e[31]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1}),a(P,{subtype:"info"},{default:o(()=>[e[32]||(e[32]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[33]||(e[33]=m("br",null,null,-1)),e[34]||(e[34]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",He," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2},1024),s.charging_type==="AC"||n.dcChargingEnabled!==!0?(l(),u("div",Je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":t.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>t.updateState(d,t.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Ge,[e[39]||(e[39]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[35]||(e[35]=[i(" Sperren nach Uhrzeit (Komplettsperrung - Freischaltung per Identifikation möglich) ",-1)])]),_:1}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.active")},{help:o(()=>[...e[36]||(e[36]=[i(" Wird Sperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist aber eine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich, wenn Identifikation aktiviert ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[37]||(e[37]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(C,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:E(r=>n.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:o(()=>[e[38]||(e[38]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2},1024)])),(l(!0),u(A,null,U(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":S=>t.updateState(d,S,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=S=>t.$emit("sendCommand",S))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[5]||(e[5]=s=>t.$emit("reset")),onDefaults:e[6]||(e[6]=s=>t.$emit("defaults"))})])])],64)}const Xe=z(Ie,[["render",Qe],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),at=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{re as C,be as a,Xe as b,at as c}; diff --git a/web/settings/assets/Chart-q4SmWErO.js b/web/settings/assets/Chart-CR-tn1oB.js similarity index 99% rename from web/settings/assets/Chart-q4SmWErO.js rename to web/settings/assets/Chart-CR-tn1oB.js index ea8cdf164b..699dca9e18 100644 --- a/web/settings/assets/Chart-q4SmWErO.js +++ b/web/settings/assets/Chart-CR-tn1oB.js @@ -1 +1 @@ -import{F as H,l as B,X as V,a4 as z,a3 as M,a2 as O,aa as j,ab as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as E}from"./index-CyH1Au4V.js";import{L as N,g as P,C as F,p as K,a as Z,b as J,c as X,B as G,f as U,P as Y,d as Q,T as ee,i as te,e as ae}from"./vendor-chartjs-0RUe1kvq.js";import{_ as D,k as s,e as l,K as f,L as _,j as w,x as g,J as v,l as d,y as b,m as p,q as h,A as x,u as A,n as re}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";const ne={name:"LegendStandard",props:{items:{type:Array,default:()=>[]}},emits:["toggle"]},ie={class:"custom-legend d-flex flex-wrap justify-content-center"},oe=["onClick"],se={width:"20",height:"6",class:"mr-1"},le=["stroke","stroke-dasharray"];function ce(e,t,a,n,i,r){return s(),l("div",ie,[(s(!0),l(f,null,_(a.items,o=>(s(),l("div",{key:o.label,class:w(["legend-item d-flex align-items-center m-1",{"legend-item-hidden":o.hidden}]),role:"button",onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",se,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,le)])),g("span",{class:w(["legend-label",{"text-line-through":o.hidden}])},v(o.label),3)],10,oe))),128))])}const de=D(ne,[["render",ce],["__scopeId","data-v-40ecb731"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendStandard.vue"]]),ue={name:"LegendCategory",props:{label:{type:String,default:""},items:{type:Array,default:()=>[]}},emits:["toggle"]},pe={class:"dropdown m-1"},he={class:"btn btn-secondary dropdown-toggle",type:"button","data-toggle":"dropdown","aria-expanded":"false"},ge={class:"dropdown-menu"},be=["onClick"],me={width:"20",height:"6",class:"mr-1"},ye=["stroke","stroke-dasharray"];function fe(e,t,a,n,i,r){return s(),l("div",pe,[g("button",he,v(a.label),1),g("ul",ge,[(s(!0),l(f,null,_(a.items,o=>(s(),l("li",{key:o.label,class:w(["dropdown-item",{"legend-item-hidden":o.hidden}]),onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",me,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,ye)])),g("span",{class:w({"text-line-through":o.hidden})},v(o.label),3)],10,be))),128))])])}const _e=D(ue,[["render",fe],["__scopeId","data-v-1ce49a26"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategory.vue"]]),ke={name:"LegendCategoriesGroup",components:{LegendCategory:_e},props:{categorizedItems:{type:Object,default:()=>({chargepoint:[],vehicle:[],component:[]})}},emits:["toggle"],data(){return{categoryLabels:{component:"Komponenten",chargepoint:"Ladepunkte",vehicle:"Fahrzeuge"}}}},xe={class:"d-flex flex-wrap justify-content-center"};function ve(e,t,a,n,i,r){const o=d("LegendCategory");return s(),l("div",xe,[(s(!0),l(f,null,_(a.categorizedItems,(c,k)=>(s(),b(o,{key:k,label:i.categoryLabels[k],items:c,onToggle:t[0]||(t[0]=y=>e.$emit("toggle",y))},null,8,["label","items"]))),128))])}const De=D(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategoriesGroup.vue"]]),Ce={name:"ChartLegend",components:{LegendCategoriesGroup:De,LegendStandard:de},props:{chart:{type:Object,default:()=>null},range:{type:String,default:"day"}},computed:{legendItems(){if(!this.chart||!this.chart.data)return[];const e=this.$store.state.chartLegend.hiddenDatasets;return this.chart.data.datasets.map((t,a)=>({label:t.label,index:a,category:t.category||"component",hidden:e.includes(t.label),borderColor:t.borderColor,borderDash:t.borderDash}))},categorizedLegendItems(){if(!this.chart)return{chargepoint:[],vehicle:[],component:[]};let e={};const t=this.$store.state.chartLegend.hiddenDatasets;return this.range==="day"?e={chargepoint:[],vehicle:[],component:[]}:e={chargepoint:[],component:[]},(this.chart?.data?.datasets||[]).forEach((n,i)=>{const r=n.category||"component";e[r]||(e[r]=[]),e[r].push({label:n.label,index:i,hidden:t.includes(n.label),borderColor:n.borderColor,borderDash:n.borderDash})}),e},showStandardLegend(){return this.legendItems.length<12}},watch:{chart(e){this.defaultHiddenDatasets(e)}},mounted(){this.defaultHiddenDatasets(this.chart)},methods:{toggleDataset(e){if(!this.chart)return;const t=this.chart.data.datasets.find(a=>a.label===e);t&&(this.$store.commit("chartLegend/toggleDataset",t.label),this.applyHiddenDatasetsToChart())},defaultHiddenDatasets(e){if(e&&e.data&&e.data.datasets.length){const t=e.data.datasets.filter(a=>a.hidden).map(a=>a.label);this.$store.commit("chartLegend/setHiddenDatasets",t),this.applyHiddenDatasetsToChart()}},applyHiddenDatasetsToChart(){if(!this.chart||!this.chart.data)return;const e=this.$store.state.chartLegend.hiddenDatasets;this.chart.data.datasets.forEach(t=>{t.hidden=e.includes(t.label)}),this.chart.update()}}};function we(e,t,a,n,i,r){const o=d("LegendStandard"),c=d("LegendCategoriesGroup");return r.showStandardLegend?(s(),b(o,{key:a.range,items:r.legendItems,onToggle:r.toggleDataset},null,8,["items","onToggle"])):(s(),b(c,{key:1,"categorized-items":r.categorizedLegendItems,onToggle:r.toggleDataset},null,8,["categorized-items","onToggle"]))}const Ae=D(Ce,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/ChartLegend.vue"]]);B.add(V,z,M,O,j,q);F.register(K,Z,J,X,G,U,Y,Q,ee,te,ae);const Se={name:"OpenwbChartView",components:{ChartjsLine:N,FontAwesomeIcon:H,ChartLegend:Ae},mixins:[E],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{chartInstance:null,mqttTopics:[{topic:"openWB/bat/+/get/power",writeable:!1},{topic:"openWB/bat/get/power",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1},{topic:"openWB/counter/+/get/power",writeable:!1},{topic:"openWB/counter/set/home_consumption",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/log/daily/#",writeable:!1},{topic:"openWB/log/monthly/#",writeable:!1},{topic:"openWB/log/yearly/#",writeable:!1},{topic:"openWB/pv/+/get/power",writeable:!1},{topic:"openWB/pv/get/power",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",category:"component",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",category:"component",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",category:"component",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"chargepoint",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",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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",category:"vehicle",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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)",category:"component",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)",category:"component",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)",category:"component",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:!1},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return Object.keys(e).forEach(t=>{Object.keys(e[t]).forEach(a=>{this.objectAccessible(t,a)||(console.debug(`Removing totals for ${t} - ${a} due to missing access rights.`),delete e[t][a])}),Object.keys(e[t]).length===0&&(console.debug(`Removing empty totals for ${t}.`),delete e[t])}),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);let t={};return JSON.parse(JSON.stringify(e)).forEach(a=>{a.timestamp=a.timestamp*1e3,t[a.timestamp]=a}),Object.values(t)}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}},objectAccessible(){return(e,t)=>{let a;const n=parseInt(t.match(/\d+$/)?.[0]||"");switch(e){case"hc":a="openWB/counter/set/home_consumption";break;case"cp":t=="all"?a="openWB/chargepoint/get/power":isNaN(n)||(a=`openWB/chargepoint/${n}/config`);break;case"ev":isNaN(n)||(a=`openWB/vehicle/${n}/info`);break;case"pv":t=="all"?a="openWB/pv/get/power":isNaN(n)||(a=`openWB/pv/${n}/get/power`);break;case"bat":t=="all"?a="openWB/bat/get/power":isNaN(n)||(a=`openWB/bat/${n}/get/power`);break;case"counter":isNaN(n)||(a=`openWB/counter/${n}/get/power`);break}return a?this.$store.state.mqtt[a]!==void 0:!0}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},updated(){this.$nextTick(()=>{this.$refs.myChart?.chart&&(this.chartInstance=this.$refs.myChart.chart)})},mounted(){this.init(),re(()=>{this.chartInstance=this.$refs.myChart?.chart})},methods:{getChartInstance(){return this.$refs.myChart?this.$refs.myChart.chart:null},refreshLegend(){this.$nextTick(()=>{this.chartInstance=this.$refs.myChart?.chart})},handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=P(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var o="",c="";switch(this.chartRange){case"month":o=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),c="day";break;case"year":o=r.substring(0,4)+"-"+r.substring(4,6),c="month";break}this.blockChartInit=!0,this.chartDate=o,this.chartRange=c},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":i=["Speicher"],a==="soc"&&i.push("SoC");break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"];break}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.category=this.datasetTemplates[i].category,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){if(!this.objectAccessible(e,t)){console.debug("skipping dataset due to missing rights:",e,t,a);return}let n;this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&this.addDataset(e,t,a,i)}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm?.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},Re={class:"chart"},Ie={key:0},Le={key:1},We={name:"chartFilterForm"},Te={key:1},$e={key:1},He={class:"openwb-chart"},Be={name:"chartTotalsForm"},Ve={key:1};function ze(e,t,a,n,i,r){const o=d("openwb-base-alert"),c=d("openwb-base-select-input"),k=d("openwb-base-text-input"),y=d("openwb-base-card"),R=d("chartjs-line"),I=d("ChartLegend"),L=d("font-awesome-icon"),W=d("openwb-base-heading");return s(),l("div",Re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),l("div",Ie,[p(o,{subtype:"info"},{default:h(()=>[...t[3]||(t[3]=[x(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(s(),l("div",Le,[p(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:h(()=>[g("form",We,[p(c,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=m=>i.chartRange=m),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),p(k,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=m=>r.chartDate=m),t[2]||(t[2]=m=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[4]||(t[4]=[x(" Daten werden geladen... ",-1)])]),_:1})):(s(),l("div",Te,[r.chartDataHasEntries?(s(),l("div",$e,[p(y,{title:"Diagramm",collapsible:!0,collapsed:!1,onExpanded:r.refreshLegend},{default:h(()=>[g("div",He,[p(R,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])]),i.chartInstance?(s(),b(I,{key:i.chartDatasets.datasets.length,ref:"chartLegend",range:i.chartRange,chart:r.getChartInstance()},null,8,["range","chart"])):A("",!0)]),_:1},8,["onExpanded"]),p(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:h(()=>[g("form",Be,[(s(!0),l(f,null,_(Object.fromEntries(Object.entries(r.chartTotals).filter(([m,u])=>Object.keys(u).length>0)),(m,u)=>(s(),b(y,{key:u,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(u)},{header:h(()=>[p(L,{icon:r.getCardIcon(u)},null,8,["icon"]),x(" "+v(r.getTotalsLabel(u)),1)]),default:h(()=>[(s(!0),l(f,null,_(m,(T,C)=>(s(),l("div",{key:C},[u!=="hc"?(s(),b(W,{key:0},{default:h(()=>[x(v(r.getTotalsLabel(u,C)),1)]),_:2},1024)):A("",!0),(s(!0),l(f,null,_(T,($,S)=>(s(),l("div",{key:S},[p(k,{title:r.getTotalsLabel(u,C,S),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber($/1e3,3)},null,8,["title","model-value"])]))),128)),C=="all"&&u!="hc"?(s(),l("hr",Ve)):A("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[5]||(t[5]=[x(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])]),_:1}))]))]))])}const Ke=D(Se,[["render",ze],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{Ke as default}; +import{F as H,l as B,X as V,a4 as z,a3 as M,a2 as O,aa as j,ab as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as E}from"./index-D_eD74fL.js";import{L as N,g as P,C as F,p as K,a as Z,b as J,c as X,B as G,f as U,P as Y,d as Q,T as ee,i as te,e as ae}from"./vendor-chartjs-0RUe1kvq.js";import{_ as D,k as s,e as l,K as f,L as _,j as w,x as g,J as v,l as d,y as b,m as p,q as h,A as x,u as A,n as re}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";const ne={name:"LegendStandard",props:{items:{type:Array,default:()=>[]}},emits:["toggle"]},ie={class:"custom-legend d-flex flex-wrap justify-content-center"},oe=["onClick"],se={width:"20",height:"6",class:"mr-1"},le=["stroke","stroke-dasharray"];function ce(e,t,a,n,i,r){return s(),l("div",ie,[(s(!0),l(f,null,_(a.items,o=>(s(),l("div",{key:o.label,class:w(["legend-item d-flex align-items-center m-1",{"legend-item-hidden":o.hidden}]),role:"button",onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",se,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,le)])),g("span",{class:w(["legend-label",{"text-line-through":o.hidden}])},v(o.label),3)],10,oe))),128))])}const de=D(ne,[["render",ce],["__scopeId","data-v-40ecb731"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendStandard.vue"]]),ue={name:"LegendCategory",props:{label:{type:String,default:""},items:{type:Array,default:()=>[]}},emits:["toggle"]},pe={class:"dropdown m-1"},he={class:"btn btn-secondary dropdown-toggle",type:"button","data-toggle":"dropdown","aria-expanded":"false"},ge={class:"dropdown-menu"},be=["onClick"],me={width:"20",height:"6",class:"mr-1"},ye=["stroke","stroke-dasharray"];function fe(e,t,a,n,i,r){return s(),l("div",pe,[g("button",he,v(a.label),1),g("ul",ge,[(s(!0),l(f,null,_(a.items,o=>(s(),l("li",{key:o.label,class:w(["dropdown-item",{"legend-item-hidden":o.hidden}]),onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",me,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,ye)])),g("span",{class:w({"text-line-through":o.hidden})},v(o.label),3)],10,be))),128))])])}const _e=D(ue,[["render",fe],["__scopeId","data-v-1ce49a26"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategory.vue"]]),ke={name:"LegendCategoriesGroup",components:{LegendCategory:_e},props:{categorizedItems:{type:Object,default:()=>({chargepoint:[],vehicle:[],component:[]})}},emits:["toggle"],data(){return{categoryLabels:{component:"Komponenten",chargepoint:"Ladepunkte",vehicle:"Fahrzeuge"}}}},xe={class:"d-flex flex-wrap justify-content-center"};function ve(e,t,a,n,i,r){const o=d("LegendCategory");return s(),l("div",xe,[(s(!0),l(f,null,_(a.categorizedItems,(c,k)=>(s(),b(o,{key:k,label:i.categoryLabels[k],items:c,onToggle:t[0]||(t[0]=y=>e.$emit("toggle",y))},null,8,["label","items"]))),128))])}const De=D(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategoriesGroup.vue"]]),Ce={name:"ChartLegend",components:{LegendCategoriesGroup:De,LegendStandard:de},props:{chart:{type:Object,default:()=>null},range:{type:String,default:"day"}},computed:{legendItems(){if(!this.chart||!this.chart.data)return[];const e=this.$store.state.chartLegend.hiddenDatasets;return this.chart.data.datasets.map((t,a)=>({label:t.label,index:a,category:t.category||"component",hidden:e.includes(t.label),borderColor:t.borderColor,borderDash:t.borderDash}))},categorizedLegendItems(){if(!this.chart)return{chargepoint:[],vehicle:[],component:[]};let e={};const t=this.$store.state.chartLegend.hiddenDatasets;return this.range==="day"?e={chargepoint:[],vehicle:[],component:[]}:e={chargepoint:[],component:[]},(this.chart?.data?.datasets||[]).forEach((n,i)=>{const r=n.category||"component";e[r]||(e[r]=[]),e[r].push({label:n.label,index:i,hidden:t.includes(n.label),borderColor:n.borderColor,borderDash:n.borderDash})}),e},showStandardLegend(){return this.legendItems.length<12}},watch:{chart(e){this.defaultHiddenDatasets(e)}},mounted(){this.defaultHiddenDatasets(this.chart)},methods:{toggleDataset(e){if(!this.chart)return;const t=this.chart.data.datasets.find(a=>a.label===e);t&&(this.$store.commit("chartLegend/toggleDataset",t.label),this.applyHiddenDatasetsToChart())},defaultHiddenDatasets(e){if(e&&e.data&&e.data.datasets.length){const t=e.data.datasets.filter(a=>a.hidden).map(a=>a.label);this.$store.commit("chartLegend/setHiddenDatasets",t),this.applyHiddenDatasetsToChart()}},applyHiddenDatasetsToChart(){if(!this.chart||!this.chart.data)return;const e=this.$store.state.chartLegend.hiddenDatasets;this.chart.data.datasets.forEach(t=>{t.hidden=e.includes(t.label)}),this.chart.update()}}};function we(e,t,a,n,i,r){const o=d("LegendStandard"),c=d("LegendCategoriesGroup");return r.showStandardLegend?(s(),b(o,{key:a.range,items:r.legendItems,onToggle:r.toggleDataset},null,8,["items","onToggle"])):(s(),b(c,{key:1,"categorized-items":r.categorizedLegendItems,onToggle:r.toggleDataset},null,8,["categorized-items","onToggle"]))}const Ae=D(Ce,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/ChartLegend.vue"]]);B.add(V,z,M,O,j,q);F.register(K,Z,J,X,G,U,Y,Q,ee,te,ae);const Se={name:"OpenwbChartView",components:{ChartjsLine:N,FontAwesomeIcon:H,ChartLegend:Ae},mixins:[E],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{chartInstance:null,mqttTopics:[{topic:"openWB/bat/+/get/power",writeable:!1},{topic:"openWB/bat/get/power",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1},{topic:"openWB/counter/+/get/power",writeable:!1},{topic:"openWB/counter/set/home_consumption",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/log/daily/#",writeable:!1},{topic:"openWB/log/monthly/#",writeable:!1},{topic:"openWB/log/yearly/#",writeable:!1},{topic:"openWB/pv/+/get/power",writeable:!1},{topic:"openWB/pv/get/power",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",category:"component",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",category:"component",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",category:"component",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"chargepoint",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",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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",category:"vehicle",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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)",category:"component",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)",category:"component",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)",category:"component",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:!1},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return Object.keys(e).forEach(t=>{Object.keys(e[t]).forEach(a=>{this.objectAccessible(t,a)||(console.debug(`Removing totals for ${t} - ${a} due to missing access rights.`),delete e[t][a])}),Object.keys(e[t]).length===0&&(console.debug(`Removing empty totals for ${t}.`),delete e[t])}),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);let t={};return JSON.parse(JSON.stringify(e)).forEach(a=>{a.timestamp=a.timestamp*1e3,t[a.timestamp]=a}),Object.values(t)}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}},objectAccessible(){return(e,t)=>{let a;const n=parseInt(t.match(/\d+$/)?.[0]||"");switch(e){case"hc":a="openWB/counter/set/home_consumption";break;case"cp":t=="all"?a="openWB/chargepoint/get/power":isNaN(n)||(a=`openWB/chargepoint/${n}/config`);break;case"ev":isNaN(n)||(a=`openWB/vehicle/${n}/info`);break;case"pv":t=="all"?a="openWB/pv/get/power":isNaN(n)||(a=`openWB/pv/${n}/get/power`);break;case"bat":t=="all"?a="openWB/bat/get/power":isNaN(n)||(a=`openWB/bat/${n}/get/power`);break;case"counter":isNaN(n)||(a=`openWB/counter/${n}/get/power`);break}return a?this.$store.state.mqtt[a]!==void 0:!0}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},updated(){this.$nextTick(()=>{this.$refs.myChart?.chart&&(this.chartInstance=this.$refs.myChart.chart)})},mounted(){this.init(),re(()=>{this.chartInstance=this.$refs.myChart?.chart})},methods:{getChartInstance(){return this.$refs.myChart?this.$refs.myChart.chart:null},refreshLegend(){this.$nextTick(()=>{this.chartInstance=this.$refs.myChart?.chart})},handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=P(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var o="",c="";switch(this.chartRange){case"month":o=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),c="day";break;case"year":o=r.substring(0,4)+"-"+r.substring(4,6),c="month";break}this.blockChartInit=!0,this.chartDate=o,this.chartRange=c},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":i=["Speicher"],a==="soc"&&i.push("SoC");break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"];break}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.category=this.datasetTemplates[i].category,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){if(!this.objectAccessible(e,t)){console.debug("skipping dataset due to missing rights:",e,t,a);return}let n;this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&this.addDataset(e,t,a,i)}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm?.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},Re={class:"chart"},Ie={key:0},Le={key:1},We={name:"chartFilterForm"},Te={key:1},$e={key:1},He={class:"openwb-chart"},Be={name:"chartTotalsForm"},Ve={key:1};function ze(e,t,a,n,i,r){const o=d("openwb-base-alert"),c=d("openwb-base-select-input"),k=d("openwb-base-text-input"),y=d("openwb-base-card"),R=d("chartjs-line"),I=d("ChartLegend"),L=d("font-awesome-icon"),W=d("openwb-base-heading");return s(),l("div",Re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),l("div",Ie,[p(o,{subtype:"info"},{default:h(()=>[...t[3]||(t[3]=[x(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(s(),l("div",Le,[p(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:h(()=>[g("form",We,[p(c,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=m=>i.chartRange=m),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),p(k,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=m=>r.chartDate=m),t[2]||(t[2]=m=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[4]||(t[4]=[x(" Daten werden geladen... ",-1)])]),_:1})):(s(),l("div",Te,[r.chartDataHasEntries?(s(),l("div",$e,[p(y,{title:"Diagramm",collapsible:!0,collapsed:!1,onExpanded:r.refreshLegend},{default:h(()=>[g("div",He,[p(R,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])]),i.chartInstance?(s(),b(I,{key:i.chartDatasets.datasets.length,ref:"chartLegend",range:i.chartRange,chart:r.getChartInstance()},null,8,["range","chart"])):A("",!0)]),_:1},8,["onExpanded"]),p(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:h(()=>[g("form",Be,[(s(!0),l(f,null,_(Object.fromEntries(Object.entries(r.chartTotals).filter(([m,u])=>Object.keys(u).length>0)),(m,u)=>(s(),b(y,{key:u,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(u)},{header:h(()=>[p(L,{icon:r.getCardIcon(u)},null,8,["icon"]),x(" "+v(r.getTotalsLabel(u)),1)]),default:h(()=>[(s(!0),l(f,null,_(m,(T,C)=>(s(),l("div",{key:C},[u!=="hc"?(s(),b(W,{key:0},{default:h(()=>[x(v(r.getTotalsLabel(u,C)),1)]),_:2},1024)):A("",!0),(s(!0),l(f,null,_(T,($,S)=>(s(),l("div",{key:S},[p(k,{title:r.getTotalsLabel(u,C,S),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber($/1e3,3)},null,8,["title","model-value"])]))),128)),C=="all"&&u!="hc"?(s(),l("hr",Ve)):A("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[5]||(t[5]=[x(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])]),_:1}))]))]))])}const Ke=D(Se,[["render",ze],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{Ke as default}; diff --git a/web/settings/assets/CloudConfiguration-Cu4M2u7m.js b/web/settings/assets/CloudConfiguration-DOLVcdWg.js similarity index 99% rename from web/settings/assets/CloudConfiguration-Cu4M2u7m.js rename to web/settings/assets/CloudConfiguration-DOLVcdWg.js index 83c8fe0fec..a306ae9bdc 100644 --- a/web/settings/assets/CloudConfiguration-Cu4M2u7m.js +++ b/web/settings/assets/CloudConfiguration-DOLVcdWg.js @@ -1 +1 @@ -import{F as h,l as q,ai as P}from"./vendor-fortawesome-CBc-2W7w.js";import{C as S}from"./index-CyH1Au4V.js";import{_ as z,l as d,k as l,e as w,m as s,q as n,A as r,x as i,y as p,u as m,D as Z,j as _,K as I}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";q.add(P);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:h},mixins:[S],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0},{topic:"openWB/system/mqtt/valid_partner_ids",writeable:!0}],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,C]of Object.entries(t))C.remote.is_openwb_cloud||delete t[e];return t}},cloudBridgeKey:{get(){for(const[t,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return t}},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(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(t){t.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(t){this.showCloudRemoveModal=!1,t=="confirm"&&(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"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},T={class:"row justify-content-center"},U={key:2,name:"cloudConfigured"},A={class:"row justify-content-center"};function N(t,e,C,j,u,a){const D=d("openwb-base-modal-dialog"),c=d("router-link"),g=d("openwb-base-alert"),b=d("openwb-base-text-input"),B=d("openwb-base-button-group-input"),f=d("font-awesome-icon"),y=d("openwb-base-array-input"),v=d("openwb-base-click-button"),k=d("openwb-base-card"),V=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return l(),w(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>a.removeCloud(o))},{default:n(()=>[...e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])]),_:1},8,["show"]),i("div",M,[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:n(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1})):(l(),w("div",x,[s(g,{subtype:"success"},{default:n(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})),a.cloudBridgeKey?m("",!0):(l(),w("form",R,[s(k,{title:"Vorhandenen Zugang einrichten"},Z({default:n(()=>[s(g,{subtype:"info"},{default:n(()=>[...e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:tutorials:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])]),_:1}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:n(()=>[...e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:2},[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:n(()=>[i("div",T,[s(v,{class:_(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:a.connectCloud},{default:n(()=>[...e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),a.cloudBridgeKey?(l(),w("form",U,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})):m("",!0),s(k,{title:"Vorhandener Cloud Zugang"},{footer:n(()=>[i("div",A,[s(v,{class:_(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>a.removeCloudModal(o))},{default:n(()=>[...e[29]||(e[29]=[r(" Zugang löschen ",-1)])]),_:1},8,["class","disabled"])])]),default:n(()=>[s(V,null,{default:n(()=>[...e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])]),_:1}),s(b,{modelValue:a.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>a.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:a.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>a.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":a.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>t.updateState(a.cloudBridgeKey,o,"access.partner"))},{help:n(()=>[...e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["model-value"]),a.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:1})])):m("",!0),a.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[11]||(e[11]=o=>t.$emit("reset")),onDefaults:e[12]||(e[12]=o=>t.$emit("defaults"))})):m("",!0)]))])],64)}const J=z(K,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfiguration.vue"]]);export{J as default}; +import{F as h,l as q,ai as P}from"./vendor-fortawesome-CBc-2W7w.js";import{C as S}from"./index-D_eD74fL.js";import{_ as z,l as d,k as l,e as w,m as s,q as n,A as r,x as i,y as p,u as m,D as Z,j as _,K as I}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";q.add(P);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:h},mixins:[S],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0},{topic:"openWB/system/mqtt/valid_partner_ids",writeable:!0}],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,C]of Object.entries(t))C.remote.is_openwb_cloud||delete t[e];return t}},cloudBridgeKey:{get(){for(const[t,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return t}},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(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(t){t.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(t){this.showCloudRemoveModal=!1,t=="confirm"&&(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"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},T={class:"row justify-content-center"},U={key:2,name:"cloudConfigured"},A={class:"row justify-content-center"};function N(t,e,C,j,u,a){const D=d("openwb-base-modal-dialog"),c=d("router-link"),g=d("openwb-base-alert"),b=d("openwb-base-text-input"),B=d("openwb-base-button-group-input"),f=d("font-awesome-icon"),y=d("openwb-base-array-input"),v=d("openwb-base-click-button"),k=d("openwb-base-card"),V=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return l(),w(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>a.removeCloud(o))},{default:n(()=>[...e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])]),_:1},8,["show"]),i("div",M,[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:n(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1})):(l(),w("div",x,[s(g,{subtype:"success"},{default:n(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})),a.cloudBridgeKey?m("",!0):(l(),w("form",R,[s(k,{title:"Vorhandenen Zugang einrichten"},Z({default:n(()=>[s(g,{subtype:"info"},{default:n(()=>[...e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:tutorials:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])]),_:1}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:n(()=>[...e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:2},[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:n(()=>[i("div",T,[s(v,{class:_(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:a.connectCloud},{default:n(()=>[...e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),a.cloudBridgeKey?(l(),w("form",U,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})):m("",!0),s(k,{title:"Vorhandener Cloud Zugang"},{footer:n(()=>[i("div",A,[s(v,{class:_(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>a.removeCloudModal(o))},{default:n(()=>[...e[29]||(e[29]=[r(" Zugang löschen ",-1)])]),_:1},8,["class","disabled"])])]),default:n(()=>[s(V,null,{default:n(()=>[...e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])]),_:1}),s(b,{modelValue:a.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>a.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:a.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>a.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":a.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>t.updateState(a.cloudBridgeKey,o,"access.partner"))},{help:n(()=>[...e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["model-value"]),a.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:1})])):m("",!0),a.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[11]||(e[11]=o=>t.$emit("reset")),onDefaults:e[12]||(e[12]=o=>t.$emit("defaults"))})):m("",!0)]))])],64)}const J=z(K,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfiguration.vue"]]);export{J as default}; diff --git a/web/settings/assets/DataManagement-FAi2cjUn.js b/web/settings/assets/DataManagement-C57poL-r.js similarity index 97% rename from web/settings/assets/DataManagement-FAi2cjUn.js rename to web/settings/assets/DataManagement-C57poL-r.js index 94a98a9674..7bd7108332 100644 --- a/web/settings/assets/DataManagement-FAi2cjUn.js +++ b/web/settings/assets/DataManagement-C57poL-r.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/backup_cloud-C1Vw5Mh4.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/backup_cloud-mhyMQPm9.js","assets/backup_cloud-ChCyb_mM.js","assets/backup_cloud-Dr6eBKwO.js","assets/monitoring-BMLL0nfh.js"])))=>i.map(i=>d[i]); -import{F as A,l as P,ac as L,ad as T,aC as H,aD as N,aE as K,aF as I,aG as G}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as J}from"./index-CyH1Au4V.js";import{_ as j}from"./dynamic-import-helper-BheWnx7M.js";import{_ as C,l as m,k as d,e as g,y as h,q as i,A as o,J as f,m as t,x as s,a1 as E,a2 as R,K as M,u as k,j as W,L as z,D as V}from"./vendor-Bo8v-nQD.js";const Z={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Q=C(Z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),X={name:"BackupCloudConfigFallback",mixins:[Q]},Y={class:"backup-cloud-fallback"},ee={key:1};function ne(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",Y,[Object.keys(n.backupCloud.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+f(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",ee,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+f(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const te=C(X,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);P.add(L,T);const oe={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),E({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-C1Vw5Mh4.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-mhyMQPm9.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-ChCyb_mM.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-Dr6eBKwO.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10]))}),`./${this.backupCloud.type}/backup_cloud.vue`,3),errorComponent:te})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function ie(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.backupCloud.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+f(r.backupCloud.name)+'" ',1)]),_:1}),(d(),h(R(u.getBackupCloudComponent()),{"backup-cloud":r.backupCloud,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w)),onSendCommand:e[1]||(e[1]=w=>u.sendCommand(w))},null,40,["backup-cloud"]))],64)}const se=C(oe,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),ae={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},re=C(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),le={name:"MonitoringConfigFallback",mixins:[re]},ue={class:"monitoring-fallback"},de={key:1};function pe(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",ue,[Object.keys(n.monitoring.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+f(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",de,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+f(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const ce=C(le,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);P.add(L,T);const me={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),E({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-BMLL0nfh.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10]))}),`./${this.monitoring.type}/monitoring.vue`,3),errorComponent:ce})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ge(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.monitoring.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Modul "'+f(r.monitoring.name)+'" ',1)]),_:1}),(d(),h(R(u.getMonitoringComponent()),{monitoring:r.monitoring,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w))},null,40,["monitoring"]))],64)}const fe=C(me,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);P.add(H,N,K,I,G);const be={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:se,OpenwbMonitoringProxy:fe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_configured",writeable:!1},{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_name",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/monitoring/config",writeable:!1},{topic:"openWB/system/backup_cloud/backup_before_update",writeable:!1},{topic:"openWB/system/backup_cloud/config",writeable:!1},{topic:"openWB/system/backup_password",writeable:!1},{topic:"openWB/system/configurable/backup_clouds",writeable:!1},{topic:"openWB/system/configurable/monitoring",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,restorePassword:void 0,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const r of Object.values(n))e.push({value:r.id,text:r.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[r,y]of Object.entries(n)){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:y})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[r,y]of Object.entries(n))if(y==1){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e},disableRestoreUpload(){return!this.selectedRestoreFile||this.selectedRestoreFile?.name?.endsWith(".gpg")&&!(this.restorePassword||this.$store.state.mqtt["openWB/system/backup_password"])}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,r,y={}){return new Promise(l=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let u=new FormData;u.append("file",e),u.append("target",n);for(const[p,c]of Object.entries(y))u.append(p,c);this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",u,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(r,"success"),l(!0)}).catch(p=>{if(p.response){console.error(p.response.status,p.response.data);var c="Hochladen der Datei fehlgeschlagen!
"+p.response.status+": "+p.response.data}else p.request?(console.error(p.request),c+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",p.message),c+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(c,"danger"),l(!1)})}else console.error("no file selected for upload"),l(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n,[void 0,null,""].includes(this.restorePassword)?void 0:{restorePassword:this.restorePassword})},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},he={class:"system"},ke={key:1},ye={name:"backupPasswordForm"},ve={name:"backupForm"},we={class:"row justify-content-center"},_e={class:"col-md-4 d-flex py-1 justify-content-center"},Ce={key:0,name:"restoreForm"},Be={class:"input-group mb-2"},De={class:"input-group-prepend"},Se={class:"input-group-text"},We={class:"custom-file"},Me={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Oe={class:"input-group-append"},Fe=["disabled"],Ae={class:"row justify-content-center"},Pe={class:"col-md-4 d-flex py-1 justify-content-center"},ze={key:1},Ve={key:0,name:"cloudBackupForm"},Le={key:0},Te={name:"dataMigrationForm"},je={class:"input-group"},Ee={class:"input-group-prepend"},Re={class:"input-group-text"},Ue={class:"custom-file"},qe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},xe={class:"input-group-append"},$e=["disabled"],He={class:"row justify-content-center"},Ne={class:"col-md-4 d-flex py-1 justify-content-center"},Ke={key:1,name:"resetForm"},Ie={class:"row justify-content-center"},Ge={class:"col-md-4 d-flex py-1 justify-content-center"},Je={key:2,name:"monitoringForm"},Ze={key:1},Qe={key:0};function Xe(n,e,r,y,l,u){const p=m("openwb-base-button-group-input"),c=m("openwb-base-alert"),b=m("openwb-base-heading"),w=m("openwb-base-text-input"),O=m("openwb-base-submit-buttons"),v=m("font-awesome-icon"),D=m("openwb-base-click-button"),F=m("openwb-base-select-input"),U=m("openwb-base-button-input"),q=m("openwb-backup-cloud-proxy"),S=m("openwb-base-card"),x=m("openwb-monitoring-proxy");return d(),g("div",he,[r.installAssistantActive?k("",!0):(d(),h(c,{key:0,subtype:"danger"},{default:i(()=>[e[25]||(e[25]=s("h2",null,"Achtung!",-1)),e[26]||(e[26]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=a=>l.warningAcknowledged=a),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),l.warningAcknowledged||r.installAssistantActive?(d(),g("div",ke,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!r.installAssistantActive},{default:i(()=>[s("form",ye,[t(b,null,{default:i(()=>[...e[27]||(e[27]=[o("Allgemein",-1)])]),_:1}),t(w,{title:"Kennwort für Sicherungen",subtype:"password","model-value":n.$store.state.mqtt["openWB/system/backup_password"],"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateState("openWB/system/backup_password",a))},{help:i(()=>[...e[28]||(e[28]=[o(" Ist hier ein Kennwort gesetzt, werden alle Sicherungen mit einem Kennwortschutz versehen. Diese Option sollte genutzt werden, wenn die Sicherungsdatei über unsichere Kanäle (z.B. eine Backup-Cloud im Internet) übertragen wird.",-1),s("br",null,null,-1),o(" Wichtig: Das Kennwort wird nicht in der Sicherung gespeichert! Ohne gültiges Kennwort kann eine geschützte Sicherung nicht wiederhergestellt werden! ",-1)])]),_:1},8,["model-value"]),t(O,{"form-name":"backupPasswordForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveBackupPassword",onSave:e[2]||(e[2]=a=>n.$emit("save",["openWB/system/backup_password"])),onReset:e[3]||(e[3]=a=>n.$emit("reset"))}),e[29]||(e[29]=s("hr",null,null,-1))]),s("form",ve,[t(b,null,{default:i(()=>[...e[30]||(e[30]=[o("Sicherung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[31]||(e[31]=[o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[32]||(e[32]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. ",-1)])]),_:1}),s("div",we,[s("div",_e,[t(D,{class:"btn-success clickable",onButtonClicked:e[4]||(e[4]=a=>u.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[33]||(e[33]=o(" Sicherung erstellen ",-1)),t(v,{icon:["fas","archive"]})]),_:1})])])]),l.showRestoreSection?(d(),g("form",Ce,[e[39]||(e[39]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[34]||(e[34]=[o("Wiederherstellung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[35]||(e[35]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),s("div",Be,[s("div",De,[s("div",Se,[t(v,{icon:["fas","file-archive"]})])]),s("div",We,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,.openwb-backup,application/gzip,application/tar+gzip,.openwb-backup.gpg,application/gzip+gpg,application/tar+gzip+gpg",onChange:e[5]||(e[5]=a=>u.updateSelectedRestoreFile(a))},null,32),s("label",Me,f(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Oe,[s("button",{class:W(["btn",u.disableRestoreUpload?"btn-outline-success":"btn-success clickable"]),disabled:u.disableRestoreUpload,type:"button",onClick:e[6]||(e[6]=a=>u.uploadRestoreFile())},[e[36]||(e[36]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,Fe)])]),l.selectedRestoreFile?.name?.endsWith(".gpg")?(d(),h(w,{key:0,modelValue:l.restorePassword,"onUpdate:modelValue":e[7]||(e[7]=a=>l.restorePassword=a),title:"Kennwort dieser Sicherung",subtype:"password"},{help:i(()=>[...e[37]||(e[37]=[o(' Wenn die Sicherung mit einem Kennwortschutz versehen wurde, wird zuerst eine Entschlüsselung mit dem unter "Allgemein" hinterlegten Kennwort versucht. Falls die Sicherung mit einem anderen Kennwort geschützt wurde, muss dieses hier eingegeben werden. ',-1)])]),_:1},8,["modelValue"])):k("",!0),s("div",Ae,[s("div",Pe,[t(D,{class:W(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[8]||(e[8]=a=>u.restoreBackup())},{default:i(()=>[e[38]||(e[38]=o(" Wiederherstellung starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):k("",!0),r.installAssistantActive?k("",!0):(d(),g("div",ze,[r.showBackupCloudSection?(d(),g("form",Ve,[e[43]||(e[43]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[40]||(e[40]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[41]||(e[41]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Backup-Cloud",options:u.backupCloudList,"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type,"onUpdate:modelValue":e[9]||(e[9]=a=>u.updateSelectedBackupCloud(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type?(d(),g("div",Le,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[10]||(e[10]=a=>n.updateState("openWB/system/backup_cloud/backup_before_update",a))},{help:i(()=>[...e[42]||(e[42]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])]),_:1},8,["model-value"]),t(U,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[11]||(e[11]=a=>u.sendSystemCommand("createCloudBackup",{}))}),t(q,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[12]||(e[12]=a=>u.updateConfiguration("openWB/system/backup_cloud/config",a)),onSendCommand:e[13]||(e[13]=a=>u.sendSystemCommand(a.command,a.args))},null,8,["backup-cloud"])])):k("",!0),t(O,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveCloudBackup",onSave:e[14]||(e[14]=a=>n.$emit("save",["openWB/system/backup_cloud/backup_before_update","openWB/system/backup_cloud/config"])),onReset:e[15]||(e[15]=a=>n.$emit("reset")),onDefaults:e[16]||(e[16]=a=>n.$emit("defaults"))})])):k("",!0)]))]),_:1},8,["collapsed"]),!r.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(d(),h(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Te,[t(c,{subtype:"info"},{default:i(()=>[...e[44]||(e[44]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[45]||(e[45]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])]),_:1}),s("div",je,[s("div",Ee,[s("div",Re,[t(v,{icon:["fas","file-archive"]})])]),s("div",Ue,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[17]||(e[17]=a=>u.updateSelectedDataMigrationFile(a))},null,32),s("label",qe,f(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",xe,[s("button",{class:W(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[18]||(e[18]=a=>u.uploadDataMigrationFile())},[e[46]||(e[46]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,$e)])]),t(b,null,{default:i(()=>[...e[47]||(e[47]=[o(" Zuordnung der Komponenten ",-1)])]),_:1}),(d(!0),g(M,null,z(l.dataMigrationConfig,a=>(d(),g("div",{key:a.sectionName},[t(b,null,{default:i(()=>[o(f(a.sectionName),1)]),_:2},1024),(d(!0),g(M,null,z(a.sectionComponents,_=>(d(),h(F,{key:_.key,modelValue:l.dataMigrationMapping[_.key],"onUpdate:modelValue":$=>l.dataMigrationMapping[_.key]=$,title:_.label,options:u.getMigrationOptions(_.validTypes)},V({_:2},[_.help?{name:"help",fn:i(()=>[o(f(_.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",He,[s("div",Ne,[t(D,{class:W(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[19]||(e[19]=a=>u.dataMigration())},{default:i(()=>[e[48]||(e[48]=o(" Datenübernahme starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})):k("",!0),r.installAssistantActive?k("",!0):(d(),g("form",Ke,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",Ie,[s("div",Ge,[t(D,{class:"btn-danger clickable",onButtonClicked:e[20]||(e[20]=a=>u.factoryReset())},{default:i(()=>[t(v,{icon:["fas","skull-crossbones"]}),e[50]||(e[50]=o(" Zurücksetzen ",-1)),t(v,{icon:["fas","skull-crossbones"]})]),_:1})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>[...e[49]||(e[49]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])]),_:1})]),_:1})])),r.installAssistantActive?k("",!0):(d(),g("form",Je,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},V({default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),h(c,{key:0,subtype:"info"},{default:i(()=>[...e[51]||(e[51]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(d(),g("div",Ze,[t(c,{subtype:"info"},{default:i(()=>[...e[52]||(e[52]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Anbieter",options:u.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[21]||(e[21]=a=>u.updateSelectedMonitoring(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(d(),g("div",Qe,[t(x,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[22]||(e[22]=a=>u.updateConfiguration("openWB/optional/monitoring/config",a))},null,8,["monitoring"])])):k("",!0)]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]!==!0?{name:"footer",fn:i(()=>[t(O,{"form-name":"monitoringForm","hide-defaults":!0,"save-id":"saveMonitoring",onSave:e[23]||(e[23]=a=>n.$emit("save",["openWB/optional/monitoring/config"])),onReset:e[24]||(e[24]=a=>n.$emit("reset"))})]),key:"0"}:void 0]),1024)]))])):k("",!0)])}const Ye=C(be,[["render",Xe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),sn=Object.freeze(Object.defineProperty({__proto__:null,default:Ye},Symbol.toStringTag,{value:"Module"}));export{Q as B,Ye as D,re as M,sn as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/backup_cloud-CDlXI8NQ.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/backup_cloud-CXDQV4ep.js","assets/backup_cloud-CPUdKiBb.js","assets/backup_cloud-CzI98uku.js","assets/monitoring-oAy7LKTI.js"])))=>i.map(i=>d[i]); +import{F as A,l as P,ac as L,ad as T,aC as H,aD as N,aE as K,aF as I,aG as G}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as J}from"./index-D_eD74fL.js";import{_ as j}from"./dynamic-import-helper-BheWnx7M.js";import{_ as C,l as m,k as d,e as g,y as h,q as i,A as o,J as f,m as t,x as s,a1 as E,a2 as R,K as M,u as k,j as W,L as z,D as V}from"./vendor-Bo8v-nQD.js";const Z={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Q=C(Z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),X={name:"BackupCloudConfigFallback",mixins:[Q]},Y={class:"backup-cloud-fallback"},ee={key:1};function ne(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",Y,[Object.keys(n.backupCloud.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+f(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",ee,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+f(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const te=C(X,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);P.add(L,T);const oe={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),E({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CDlXI8NQ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CXDQV4ep.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CPUdKiBb.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CzI98uku.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10]))}),`./${this.backupCloud.type}/backup_cloud.vue`,3),errorComponent:te})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function ie(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.backupCloud.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+f(r.backupCloud.name)+'" ',1)]),_:1}),(d(),h(R(u.getBackupCloudComponent()),{"backup-cloud":r.backupCloud,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w)),onSendCommand:e[1]||(e[1]=w=>u.sendCommand(w))},null,40,["backup-cloud"]))],64)}const se=C(oe,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),ae={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},re=C(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),le={name:"MonitoringConfigFallback",mixins:[re]},ue={class:"monitoring-fallback"},de={key:1};function pe(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",ue,[Object.keys(n.monitoring.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+f(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",de,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+f(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const ce=C(le,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);P.add(L,T);const me={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),E({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-oAy7LKTI.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10]))}),`./${this.monitoring.type}/monitoring.vue`,3),errorComponent:ce})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ge(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.monitoring.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Modul "'+f(r.monitoring.name)+'" ',1)]),_:1}),(d(),h(R(u.getMonitoringComponent()),{monitoring:r.monitoring,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w))},null,40,["monitoring"]))],64)}const fe=C(me,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);P.add(H,N,K,I,G);const be={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:se,OpenwbMonitoringProxy:fe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_configured",writeable:!1},{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_name",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/monitoring/config",writeable:!1},{topic:"openWB/system/backup_cloud/backup_before_update",writeable:!1},{topic:"openWB/system/backup_cloud/config",writeable:!1},{topic:"openWB/system/backup_password",writeable:!1},{topic:"openWB/system/configurable/backup_clouds",writeable:!1},{topic:"openWB/system/configurable/monitoring",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,restorePassword:void 0,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const r of Object.values(n))e.push({value:r.id,text:r.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[r,y]of Object.entries(n)){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:y})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[r,y]of Object.entries(n))if(y==1){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e},disableRestoreUpload(){return!this.selectedRestoreFile||this.selectedRestoreFile?.name?.endsWith(".gpg")&&!(this.restorePassword||this.$store.state.mqtt["openWB/system/backup_password"])}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,r,y={}){return new Promise(l=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let u=new FormData;u.append("file",e),u.append("target",n);for(const[p,c]of Object.entries(y))u.append(p,c);this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",u,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(r,"success"),l(!0)}).catch(p=>{if(p.response){console.error(p.response.status,p.response.data);var c="Hochladen der Datei fehlgeschlagen!
"+p.response.status+": "+p.response.data}else p.request?(console.error(p.request),c+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",p.message),c+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(c,"danger"),l(!1)})}else console.error("no file selected for upload"),l(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n,[void 0,null,""].includes(this.restorePassword)?void 0:{restorePassword:this.restorePassword})},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},he={class:"system"},ke={key:1},ye={name:"backupPasswordForm"},ve={name:"backupForm"},we={class:"row justify-content-center"},_e={class:"col-md-4 d-flex py-1 justify-content-center"},Ce={key:0,name:"restoreForm"},Be={class:"input-group mb-2"},De={class:"input-group-prepend"},Se={class:"input-group-text"},We={class:"custom-file"},Me={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Oe={class:"input-group-append"},Fe=["disabled"],Ae={class:"row justify-content-center"},Pe={class:"col-md-4 d-flex py-1 justify-content-center"},ze={key:1},Ve={key:0,name:"cloudBackupForm"},Le={key:0},Te={name:"dataMigrationForm"},je={class:"input-group"},Ee={class:"input-group-prepend"},Re={class:"input-group-text"},Ue={class:"custom-file"},qe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},xe={class:"input-group-append"},$e=["disabled"],He={class:"row justify-content-center"},Ne={class:"col-md-4 d-flex py-1 justify-content-center"},Ke={key:1,name:"resetForm"},Ie={class:"row justify-content-center"},Ge={class:"col-md-4 d-flex py-1 justify-content-center"},Je={key:2,name:"monitoringForm"},Ze={key:1},Qe={key:0};function Xe(n,e,r,y,l,u){const p=m("openwb-base-button-group-input"),c=m("openwb-base-alert"),b=m("openwb-base-heading"),w=m("openwb-base-text-input"),O=m("openwb-base-submit-buttons"),v=m("font-awesome-icon"),D=m("openwb-base-click-button"),F=m("openwb-base-select-input"),U=m("openwb-base-button-input"),q=m("openwb-backup-cloud-proxy"),S=m("openwb-base-card"),x=m("openwb-monitoring-proxy");return d(),g("div",he,[r.installAssistantActive?k("",!0):(d(),h(c,{key:0,subtype:"danger"},{default:i(()=>[e[25]||(e[25]=s("h2",null,"Achtung!",-1)),e[26]||(e[26]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=a=>l.warningAcknowledged=a),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),l.warningAcknowledged||r.installAssistantActive?(d(),g("div",ke,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!r.installAssistantActive},{default:i(()=>[s("form",ye,[t(b,null,{default:i(()=>[...e[27]||(e[27]=[o("Allgemein",-1)])]),_:1}),t(w,{title:"Kennwort für Sicherungen",subtype:"password","model-value":n.$store.state.mqtt["openWB/system/backup_password"],"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateState("openWB/system/backup_password",a))},{help:i(()=>[...e[28]||(e[28]=[o(" Ist hier ein Kennwort gesetzt, werden alle Sicherungen mit einem Kennwortschutz versehen. Diese Option sollte genutzt werden, wenn die Sicherungsdatei über unsichere Kanäle (z.B. eine Backup-Cloud im Internet) übertragen wird.",-1),s("br",null,null,-1),o(" Wichtig: Das Kennwort wird nicht in der Sicherung gespeichert! Ohne gültiges Kennwort kann eine geschützte Sicherung nicht wiederhergestellt werden! ",-1)])]),_:1},8,["model-value"]),t(O,{"form-name":"backupPasswordForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveBackupPassword",onSave:e[2]||(e[2]=a=>n.$emit("save",["openWB/system/backup_password"])),onReset:e[3]||(e[3]=a=>n.$emit("reset"))}),e[29]||(e[29]=s("hr",null,null,-1))]),s("form",ve,[t(b,null,{default:i(()=>[...e[30]||(e[30]=[o("Sicherung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[31]||(e[31]=[o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[32]||(e[32]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. ",-1)])]),_:1}),s("div",we,[s("div",_e,[t(D,{class:"btn-success clickable",onButtonClicked:e[4]||(e[4]=a=>u.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[33]||(e[33]=o(" Sicherung erstellen ",-1)),t(v,{icon:["fas","archive"]})]),_:1})])])]),l.showRestoreSection?(d(),g("form",Ce,[e[39]||(e[39]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[34]||(e[34]=[o("Wiederherstellung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[35]||(e[35]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),s("div",Be,[s("div",De,[s("div",Se,[t(v,{icon:["fas","file-archive"]})])]),s("div",We,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,.openwb-backup,application/gzip,application/tar+gzip,.openwb-backup.gpg,application/gzip+gpg,application/tar+gzip+gpg",onChange:e[5]||(e[5]=a=>u.updateSelectedRestoreFile(a))},null,32),s("label",Me,f(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Oe,[s("button",{class:W(["btn",u.disableRestoreUpload?"btn-outline-success":"btn-success clickable"]),disabled:u.disableRestoreUpload,type:"button",onClick:e[6]||(e[6]=a=>u.uploadRestoreFile())},[e[36]||(e[36]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,Fe)])]),l.selectedRestoreFile?.name?.endsWith(".gpg")?(d(),h(w,{key:0,modelValue:l.restorePassword,"onUpdate:modelValue":e[7]||(e[7]=a=>l.restorePassword=a),title:"Kennwort dieser Sicherung",subtype:"password"},{help:i(()=>[...e[37]||(e[37]=[o(' Wenn die Sicherung mit einem Kennwortschutz versehen wurde, wird zuerst eine Entschlüsselung mit dem unter "Allgemein" hinterlegten Kennwort versucht. Falls die Sicherung mit einem anderen Kennwort geschützt wurde, muss dieses hier eingegeben werden. ',-1)])]),_:1},8,["modelValue"])):k("",!0),s("div",Ae,[s("div",Pe,[t(D,{class:W(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[8]||(e[8]=a=>u.restoreBackup())},{default:i(()=>[e[38]||(e[38]=o(" Wiederherstellung starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):k("",!0),r.installAssistantActive?k("",!0):(d(),g("div",ze,[r.showBackupCloudSection?(d(),g("form",Ve,[e[43]||(e[43]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[40]||(e[40]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[41]||(e[41]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Backup-Cloud",options:u.backupCloudList,"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type,"onUpdate:modelValue":e[9]||(e[9]=a=>u.updateSelectedBackupCloud(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type?(d(),g("div",Le,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[10]||(e[10]=a=>n.updateState("openWB/system/backup_cloud/backup_before_update",a))},{help:i(()=>[...e[42]||(e[42]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])]),_:1},8,["model-value"]),t(U,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[11]||(e[11]=a=>u.sendSystemCommand("createCloudBackup",{}))}),t(q,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[12]||(e[12]=a=>u.updateConfiguration("openWB/system/backup_cloud/config",a)),onSendCommand:e[13]||(e[13]=a=>u.sendSystemCommand(a.command,a.args))},null,8,["backup-cloud"])])):k("",!0),t(O,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveCloudBackup",onSave:e[14]||(e[14]=a=>n.$emit("save",["openWB/system/backup_cloud/backup_before_update","openWB/system/backup_cloud/config"])),onReset:e[15]||(e[15]=a=>n.$emit("reset")),onDefaults:e[16]||(e[16]=a=>n.$emit("defaults"))})])):k("",!0)]))]),_:1},8,["collapsed"]),!r.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(d(),h(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Te,[t(c,{subtype:"info"},{default:i(()=>[...e[44]||(e[44]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[45]||(e[45]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])]),_:1}),s("div",je,[s("div",Ee,[s("div",Re,[t(v,{icon:["fas","file-archive"]})])]),s("div",Ue,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[17]||(e[17]=a=>u.updateSelectedDataMigrationFile(a))},null,32),s("label",qe,f(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",xe,[s("button",{class:W(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[18]||(e[18]=a=>u.uploadDataMigrationFile())},[e[46]||(e[46]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,$e)])]),t(b,null,{default:i(()=>[...e[47]||(e[47]=[o(" Zuordnung der Komponenten ",-1)])]),_:1}),(d(!0),g(M,null,z(l.dataMigrationConfig,a=>(d(),g("div",{key:a.sectionName},[t(b,null,{default:i(()=>[o(f(a.sectionName),1)]),_:2},1024),(d(!0),g(M,null,z(a.sectionComponents,_=>(d(),h(F,{key:_.key,modelValue:l.dataMigrationMapping[_.key],"onUpdate:modelValue":$=>l.dataMigrationMapping[_.key]=$,title:_.label,options:u.getMigrationOptions(_.validTypes)},V({_:2},[_.help?{name:"help",fn:i(()=>[o(f(_.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",He,[s("div",Ne,[t(D,{class:W(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[19]||(e[19]=a=>u.dataMigration())},{default:i(()=>[e[48]||(e[48]=o(" Datenübernahme starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})):k("",!0),r.installAssistantActive?k("",!0):(d(),g("form",Ke,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",Ie,[s("div",Ge,[t(D,{class:"btn-danger clickable",onButtonClicked:e[20]||(e[20]=a=>u.factoryReset())},{default:i(()=>[t(v,{icon:["fas","skull-crossbones"]}),e[50]||(e[50]=o(" Zurücksetzen ",-1)),t(v,{icon:["fas","skull-crossbones"]})]),_:1})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>[...e[49]||(e[49]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])]),_:1})]),_:1})])),r.installAssistantActive?k("",!0):(d(),g("form",Je,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},V({default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),h(c,{key:0,subtype:"info"},{default:i(()=>[...e[51]||(e[51]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(d(),g("div",Ze,[t(c,{subtype:"info"},{default:i(()=>[...e[52]||(e[52]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Anbieter",options:u.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[21]||(e[21]=a=>u.updateSelectedMonitoring(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(d(),g("div",Qe,[t(x,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[22]||(e[22]=a=>u.updateConfiguration("openWB/optional/monitoring/config",a))},null,8,["monitoring"])])):k("",!0)]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]!==!0?{name:"footer",fn:i(()=>[t(O,{"form-name":"monitoringForm","hide-defaults":!0,"save-id":"saveMonitoring",onSave:e[23]||(e[23]=a=>n.$emit("save",["openWB/optional/monitoring/config"])),onReset:e[24]||(e[24]=a=>n.$emit("reset"))})]),key:"0"}:void 0]),1024)]))])):k("",!0)])}const Ye=C(be,[["render",Xe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),sn=Object.freeze(Object.defineProperty({__proto__:null,default:Ye},Symbol.toStringTag,{value:"Module"}));export{Q as B,Ye as D,re as M,sn as a}; diff --git a/web/settings/assets/DebugConfiguration-D4jVRy6l.js b/web/settings/assets/DebugConfiguration-C2vm4vM4.js similarity index 99% rename from web/settings/assets/DebugConfiguration-D4jVRy6l.js rename to web/settings/assets/DebugConfiguration-C2vm4vM4.js index ae530facc0..4b6d08c939 100644 --- a/web/settings/assets/DebugConfiguration-D4jVRy6l.js +++ b/web/settings/assets/DebugConfiguration-C2vm4vM4.js @@ -1,2 +1,2 @@ -import{C as x}from"./index-CyH1Au4V.js";import{F as B,l as W,ak as V,al as z,k as P,am as T,g as N}from"./vendor-fortawesome-CBc-2W7w.js";import{a as y}from"./vendor-axios-DdFvNBv9.js";import{_ as F,a3 as M,l,k as u,y as p,q as r,A as h,J as v,x as b,m as g,u as f,z as L,j as m,e as C,K as S,L as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";W.add(V,z,P,T,N);const I={name:"OpenwbLogCard",components:{FontAwesomeIcon:B},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! +import{C as x}from"./index-D_eD74fL.js";import{F as B,l as W,ak as V,al as z,k as P,am as T,g as N}from"./vendor-fortawesome-CBc-2W7w.js";import{a as y}from"./vendor-axios-DdFvNBv9.js";import{_ as F,a3 as M,l,k as u,y as p,q as r,A as h,J as v,x as b,m as g,u as f,z as L,j as m,e as C,K as S,L as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";W.add(V,z,P,T,N);const I={name:"OpenwbLogCard",components:{FontAwesomeIcon:B},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! `+s.response.status+" "+s.response.statusText+": "+s.response.request.responseURL:s.request?s.request:s.message})},async loadLog(o,e=""){this.logData="wird aktualisiert...",this.loading=!0,this.pastebinLink="";var n="";e&&(o=o.replace(".log",`.${e}.log`));for(let t=4;t>=1;t--){const s=await this.getFilePromise(o+"."+t,!0);n+=s}const a=await this.getFilePromise(o);n+=a,this.logData=n,this.loading=!1},async checkLatestLog(o){const e=[{suffix:"latest",title:"Letzten 3 Durchläufe",description:"Logs der Letzten 3 Durchläufe laden"},{suffix:"current",title:"Letzter Durchlauf",description:"Logs des letzten Durchlaufs laden"},{suffix:"latest-warning",title:"Letzter Durchlauf mit Warnung oder Fehler",description:"Fehlerprotokoll laden"}];this.foundFiles=[];for(const n of e){const a=o.replace(".log",`.${n.suffix}.log`);try{await this.getFilePromise(a,!1,!1,!0),this.foundFiles.push(n),n.suffix==="latest"&&(this.selectedVariant="latest",console.log("Found latest log file: ",a))}catch(t){console.log(t)}}this.foundFiles.length>0&&this.foundFiles.push({suffix:"",title:"Vollständiges Log",description:"Vollständiges Log laden"})},async onCardExpand(){await this.checkLatestLog(this.logFile),this.loadLog(this.logFile,this.selectedVariant)},copyToClipboard(o=this.logData,e=!0){if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(o).then(()=>{e&&this.showCopyMessage()}).catch(n=>{console.error("Fehler beim Kopieren in die Zwischenablage: ",n)});else{const n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select();try{document.execCommand("copy"),e&&this.showCopyMessage()}catch(a){console.error("Fehler beim Kopieren in die Zwischenablage: ",a)}document.body.removeChild(n)}},showCopyMessage(){this.copyMessage=!0,this.$root.postClientMessage("Log in die Zwischenablage kopiert.","info"),setTimeout(()=>{this.copyMessage=!1},3e3)},async postToPastebin(){try{const o=M.gzip(this.logData),e=await y.post("https://bytebin.openwb.de/post",o,{headers:{"Content-Type":"text/log","Content-Encoding":"gzip"}});if(!e.data.key)throw new Error("Key is missing in the response");const n=e.data.key;this.pastebinLink=`https://paste.openwb.de/${n}`,console.log("Pastebin link:",this.pastebinLink),this.copyToClipboard(this.pastebinLink,!1),this.$root.postClientMessage(`Log an Pastebin gesendet.
Key: ${n}
Der Link wurde in die Zwischenablage kopiert.`,"info")}catch(o){console.error("Fehler beim Posten auf paste.openwb.de: ",o)}}}},E={class:"log-data mb-0"};function K(o,e,n,a,t,s){const d=l("font-awesome-icon"),c=l("openwb-base-avatar"),w=l("openwb-base-select-input"),k=l("openwb-base-alert"),_=l("openwb-base-card");return u(),p(_,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?f("",!0):(u(),p(c,{key:0,class:m(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),title:t.pastebinLink?"Link in die Zwischenablage kopiert":"Log auf paste.openwb.de teilen",onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[g(d,{icon:t.pastebinLink?["fas","check"]:["fas","share-nodes"]},null,8,["icon"])]),_:1},8,["class","title","onClick"])),i?f("",!0):(u(),p(c,{key:1,class:m(["clickable mr-1",t.copyMessage?"bg-success":"bg-info"]),title:t.copyMessage?"Log in die Zwischenablage kopiert":"Log kopieren",onClick:e[0]||(e[0]=L(D=>s.copyToClipboard(t.logData),["stop"]))},{default:r(()=>[g(d,{icon:t.copyMessage?["fas","check"]:["fas","clipboard"]},null,8,["icon"])]),_:1},8,["class","title"])),i?f("",!0):(u(),p(c,{key:2,class:m(["clickable",t.loading?"bg-success":"bg-info"]),title:"Log laden/aktualisieren",onClick:e[1]||(e[1]=L(D=>s.loadLog(n.logFile,t.selectedVariant),["stop"]))},{default:r(()=>[g(d,{class:m(t.loading?"fa-spin-pulse":""),icon:t.loading?["fas","spinner"]:["fas","file-download"]},null,8,["class","icon"])]),_:1},8,["class"]))]),default:r(()=>[t.foundFiles.length>0?(u(),p(k,{key:0,subtype:"info"},{default:r(()=>[h(" Im "+v(n.title)+" stehen unterschiedliche Logauszüge zur Verfügung. Standardmässig werden Logs der letzten 3 Durchläufe geladen, für viele Fälle sollte dies ausreichen. Optional kann auch das gesamte Log geladen werden.",1),e[4]||(e[4]=b("br",null,null,-1)),e[5]||(e[5]=h(" Wurde eine Warnung oder ein Fehler protokolliert steht zusätzlich der letzte Durchlauf mit Warnungen und Fehlern zur Verfügung.",-1)),e[6]||(e[6]=b("br",null,null,-1)),g(w,{modelValue:t.selectedVariant,"onUpdate:modelValue":e[2]||(e[2]=i=>t.selectedVariant=i),title:"Logfile",required:"",options:t.foundFiles.map(i=>({value:i.suffix,text:i.title})),onChange:e[3]||(e[3]=i=>s.loadLog(n.logFile,t.selectedVariant))},null,8,["modelValue","options"])]),_:1})):f("",!0),b("pre",E,v(t.logData),1)]),_:1},8,["title","onExpanded"])}const A=F(I,[["render",K],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),Z={name:"OpenwbDebuggingView",components:{OpenwbLogCard:A},mixins:[x],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/debug_level",writeable:!0}],logFiles:[{title:"Main-Log",fileName:"/openWB/ramdisk/main.log"},{title:"Log des internen Ladepunktes",fileName:"/openWB/ramdisk/internal_chargepoint.log"},{title:"MQTT-Log",fileName:"/openWB/ramdisk/mqtt.log"},{title:"SoC-Log",fileName:"/openWB/ramdisk/soc.log"},{title:"Protokoll des letzten Updates",fileName:"/openWB/data/log/update.log"},{title:"Protokoll des Remote-Dienstes",fileName:"/openWB/ramdisk/remote_support.log"},{title:"Protokoll des SmartHome Dienstes",fileName:"/openWB/ramdisk/smarthome.log"},{title:"Protokoll der Sicherung",fileName:"/openWB/data/log/backup.log"},{title:"Protokoll der Wiederherstellung",fileName:"/openWB/data/log/restore.log"},{title:"Protokoll der Datenmigration",fileName:"/openWB/data/log/data_migration.log"},{title:"Protokoll über die Schaltvorgänge von steuerbaren Verbrauchseinrichtungen",fileName:"/openWB/data/log/steuve_control_command.log"},{title:"Thread-Errors",fileName:"/openWB/ramdisk/thread_errors.log"}]}}},O={class:"debugging"},R={name:"debugConfigForm"};function U(o,e,n,a,t,s){const d=l("openwb-base-button-group-input"),c=l("openwb-base-alert"),w=l("openwb-base-card"),k=l("openwb-base-submit-buttons"),_=l("openwb-log-card");return u(),C("div",O,[b("form",R,[g(w,{title:"Protokollierung"},{default:r(()=>[g(d,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":o.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateState("openWB/system/debug_level",i))},{help:r(()=>[...e[4]||(e[4]=[h(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ',-1)])]),_:1},8,["model-value"]),g(c,{subtype:"warning"},{default:r(()=>[...e[5]||(e[5]=[h(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Passwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ',-1)])]),_:1})]),_:1}),g(k,{"form-name":"debugConfigForm",onSave:e[1]||(e[1]=i=>o.$emit("save",o.mqttTopicsToPublish)),onReset:e[2]||(e[2]=i=>o.$emit("reset")),onDefaults:e[3]||(e[3]=i=>o.$emit("defaults"))})]),(u(!0),C(S,null,q(t.logFiles,i=>(u(),p(_,{key:i.fileName,title:i.title,"log-file":i.fileName},null,8,["title","log-file"]))),128))])}const Y=F(Z,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfiguration.vue"]]);export{Y as default}; diff --git a/web/settings/assets/DisplayConfiguration-BEaqDSWf.js b/web/settings/assets/DisplayConfiguration-h7XEuoXV.js similarity index 97% rename from web/settings/assets/DisplayConfiguration-BEaqDSWf.js rename to web/settings/assets/DisplayConfiguration-h7XEuoXV.js index 2eaeb23f00..1dbf20a99f 100644 --- a/web/settings/assets/DisplayConfiguration-BEaqDSWf.js +++ b/web/settings/assets/DisplayConfiguration-h7XEuoXV.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/displayTheme-D2mZh2_2.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-CyH1Au4V.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/displayTheme-DSCxcdhW.js"])))=>i.map(i=>d[i]); -import{_ as B,C}from"./index-CyH1Au4V.js";import{_ as $}from"./dynamic-import-helper-BheWnx7M.js";import{F as z,l as S,ac as O,ad as V,ae as q,af as E}from"./vendor-fortawesome-CBc-2W7w.js";import{_,l as p,k as r,e as d,y as f,q as a,A as n,J as m,m as i,x as o,a1 as M,a2 as P,K as A,u as c}from"./vendor-Bo8v-nQD.js";const j={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},L=_(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),N={name:"DisplayThemeFallback",mixins:[L]},F={class:"display-theme-fallback"},I={key:1};function U(t,e,l,w,v,b){const u=p("openwb-base-alert"),y=p("openwb-base-textarea");return r(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(r(),f(u,{key:0,subtype:"info"},{default:a(()=>[n(' Das Display-Theme "'+m(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),d("div",I,[i(u,{subtype:"warning"},{default:a(()=>[n(' Es wurde keine Konfigurationsseite für das Display-Theme "'+m(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),i(y,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=g=>t.updateConfiguration(g,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[n(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),i(u,{subtype:"info"},{default:a(()=>[o("pre",null,m(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const x=_(N,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);S.add(O,V,q,E);const J={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:z},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),M({loader:()=>$(Object.assign({"./cards/displayTheme.vue":()=>B(()=>import("./displayTheme-D2mZh2_2.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./colors/displayTheme.vue":()=>B(()=>import("./displayTheme-DSCxcdhW.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10]))}),`./${this.displayTheme.type}/displayTheme.vue`,3),errorComponent:x})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function R(t,e,l,w,v,b){const u=p("font-awesome-icon"),y=p("openwb-base-alert"),g=p("openwb-base-heading");return r(),d(A,null,[l.displayTheme.official?(r(),f(y,{key:0,subtype:"success"},{default:a(()=>[i(u,{icon:["fas","certificate"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(y,{key:1,subtype:"info"},{default:a(()=>[i(u,{icon:["fas","people-group"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),i(y,{subtype:l.displayTheme.userManagementSupported?"success":"warning"},{default:a(()=>[i(u,{icon:["fas",l.displayTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" unterstützt die Benutzerverwaltung'+m(l.displayTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),i(g,null,{default:a(()=>[n(' Einstellungen für Display Theme "'+m(l.displayTheme.name)+'" ',1)]),_:1}),(r(),f(P(b.getDisplayThemeComponent()),{"display-theme":l.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>b.updateConfiguration(h))},null,40,["display-theme"]))],64)}const H=_(J,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),G={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:H},mixins:[C],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/int_display/active",writeable:!0},{topic:"openWB/optional/int_display/on_if_plugged_in",writeable:!0},{topic:"openWB/optional/int_display/only_local_charge_points",writeable:!0},{topic:"openWB/optional/int_display/rotation",writeable:!0},{topic:"openWB/optional/int_display/standby",writeable:!0},{topic:"openWB/optional/int_display/theme",writeable:!0},{topic:"openWB/system/configurable/display_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.displayThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(l=>l.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},K={class:"optionalComponents"},Z={name:"optionalComponentsForm"},Q={key:0},X={key:1},Y={key:2},ee={key:0};function te(t,e,l,w,v,b){const u=p("openwb-base-button-group-input"),y=p("openwb-base-heading"),g=p("openwb-base-range-input"),h=p("openwb-base-alert"),D=p("openwb-base-select-input"),T=p("openwb-display-theme-proxy"),W=p("openwb-base-card"),k=p("openwb-base-submit-buttons");return r(),d("div",K,[o("form",Z,[i(W,{title:"Display (intern oder extern)"},{default:a(()=>[i(u,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/optional/int_display/active",s))},{help:a(()=>[...e[9]||(e[9]=[n(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(r(),d("div",Q,[i(u,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=s=>t.updateState("openWB/optional/int_display/rotation",s))},{help:a(()=>[...e[10]||(e[10]=[n(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),o("br",null,null,-1),n(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])]),_:1},8,["model-value"]),e[13]||(e[13]=o("hr",null,null,-1)),i(y,null,{default:a(()=>[...e[11]||(e[11]=[n(" Display Standby ",-1)])]),_:1}),i(g,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/optional/int_display/standby",s))},{help:a(()=>[...e[12]||(e[12]=[n(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])]),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),d("div",X,[e[15]||(e[15]=o("hr",null,null,-1)),i(h,{subtype:"info"},{default:a(()=>[...e[14]||(e[14]=[n(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),d("div",Y,[e[19]||(e[19]=o("hr",null,null,-1)),i(u,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=s=>t.updateState("openWB/optional/int_display/only_local_charge_points",s))},{help:a(()=>[...e[16]||(e[16]=[n(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])]),_:1},8,["model-value"]),i(h,{subtype:"info",class:"mb-3"},{default:a(()=>[...e[17]||(e[17]=[o("p",null,[n(" Wenn die "),o("strong",null,"Benutzerverwaltung"),n(" aktiviert ist, werden nur die Ladepunkte angezeigt, für welche dem jeweiligen Display-Benutzer auch Zugriffsrechte gegeben wurden. Ebenfalls ist es möglich, dass bestimmte Daten von Wechselrichtern, Fahrzeugen, etc. nicht angezeigt werden, wenn der Benutzer hierfür keine Berechtigung besitzt. ")],-1),o("p",null,' Bei aktivierter Benutzerverwaltung wird empfohlen, die Anzeige auf "Alle" Ladepunkte zu setzen, damit es nicht zu Überschneidungen zwischen diesen Einschränkungen kommt. ',-1),o("p",null,[n(" Das "),o("strong",null,"integrierte Display"),n(' einer openWB series2 oder standalone verwendet automatisch den Benutzer "Display-Intern". Für '),o("strong",null,"externe openWB"),n(' im Steuerungsmodus "secondary" werden automatisch Benutzer mit dem Namen "Display-'),o("i",null,"IP"),n('", wobei '),o("i",null,"IP"),n(" für die jeweilige IP-Adresse der secondary openWB steht, angelegt. ")],-1)])]),_:1}),e[20]||(e[20]=o("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(r(),d("div",ee,[i(D,{class:"mb-2",title:"Theme des Displays",groups:b.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=s=>b.updateSelectedDisplayTheme(s))},{help:a(()=>[...e[18]||(e[18]=[n(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])]),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(r(),f(T,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=s=>b.updateConfiguration("openWB/optional/int_display/theme",s))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),i(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[7]||(e[7]=s=>t.$emit("reset")),onDefaults:e[8]||(e[8]=s=>t.$emit("defaults"))})])])}const ne=_(G,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DisplayConfiguration.vue"]]),le=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"}));export{L as D,le as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/displayTheme-BlhJueVr.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-D_eD74fL.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/displayTheme-TNZXyuYb.js"])))=>i.map(i=>d[i]); +import{_ as B,C}from"./index-D_eD74fL.js";import{_ as $}from"./dynamic-import-helper-BheWnx7M.js";import{F as z,l as S,ac as O,ad as V,ae as q,af as E}from"./vendor-fortawesome-CBc-2W7w.js";import{_,l as p,k as r,e as d,y as f,q as a,A as n,J as m,m as i,x as o,a1 as M,a2 as P,K as A,u as c}from"./vendor-Bo8v-nQD.js";const j={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},L=_(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),N={name:"DisplayThemeFallback",mixins:[L]},F={class:"display-theme-fallback"},I={key:1};function U(t,e,l,w,v,b){const u=p("openwb-base-alert"),y=p("openwb-base-textarea");return r(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(r(),f(u,{key:0,subtype:"info"},{default:a(()=>[n(' Das Display-Theme "'+m(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),d("div",I,[i(u,{subtype:"warning"},{default:a(()=>[n(' Es wurde keine Konfigurationsseite für das Display-Theme "'+m(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),i(y,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=g=>t.updateConfiguration(g,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[n(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),i(u,{subtype:"info"},{default:a(()=>[o("pre",null,m(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const x=_(N,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);S.add(O,V,q,E);const J={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:z},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),M({loader:()=>$(Object.assign({"./cards/displayTheme.vue":()=>B(()=>import("./displayTheme-BlhJueVr.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./colors/displayTheme.vue":()=>B(()=>import("./displayTheme-TNZXyuYb.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10]))}),`./${this.displayTheme.type}/displayTheme.vue`,3),errorComponent:x})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function R(t,e,l,w,v,b){const u=p("font-awesome-icon"),y=p("openwb-base-alert"),g=p("openwb-base-heading");return r(),d(A,null,[l.displayTheme.official?(r(),f(y,{key:0,subtype:"success"},{default:a(()=>[i(u,{icon:["fas","certificate"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(y,{key:1,subtype:"info"},{default:a(()=>[i(u,{icon:["fas","people-group"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),i(y,{subtype:l.displayTheme.userManagementSupported?"success":"warning"},{default:a(()=>[i(u,{icon:["fas",l.displayTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" unterstützt die Benutzerverwaltung'+m(l.displayTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),i(g,null,{default:a(()=>[n(' Einstellungen für Display Theme "'+m(l.displayTheme.name)+'" ',1)]),_:1}),(r(),f(P(b.getDisplayThemeComponent()),{"display-theme":l.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>b.updateConfiguration(h))},null,40,["display-theme"]))],64)}const H=_(J,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),G={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:H},mixins:[C],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/int_display/active",writeable:!0},{topic:"openWB/optional/int_display/on_if_plugged_in",writeable:!0},{topic:"openWB/optional/int_display/only_local_charge_points",writeable:!0},{topic:"openWB/optional/int_display/rotation",writeable:!0},{topic:"openWB/optional/int_display/standby",writeable:!0},{topic:"openWB/optional/int_display/theme",writeable:!0},{topic:"openWB/system/configurable/display_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.displayThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(l=>l.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},K={class:"optionalComponents"},Z={name:"optionalComponentsForm"},Q={key:0},X={key:1},Y={key:2},ee={key:0};function te(t,e,l,w,v,b){const u=p("openwb-base-button-group-input"),y=p("openwb-base-heading"),g=p("openwb-base-range-input"),h=p("openwb-base-alert"),D=p("openwb-base-select-input"),T=p("openwb-display-theme-proxy"),W=p("openwb-base-card"),k=p("openwb-base-submit-buttons");return r(),d("div",K,[o("form",Z,[i(W,{title:"Display (intern oder extern)"},{default:a(()=>[i(u,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/optional/int_display/active",s))},{help:a(()=>[...e[9]||(e[9]=[n(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(r(),d("div",Q,[i(u,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=s=>t.updateState("openWB/optional/int_display/rotation",s))},{help:a(()=>[...e[10]||(e[10]=[n(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),o("br",null,null,-1),n(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])]),_:1},8,["model-value"]),e[13]||(e[13]=o("hr",null,null,-1)),i(y,null,{default:a(()=>[...e[11]||(e[11]=[n(" Display Standby ",-1)])]),_:1}),i(g,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/optional/int_display/standby",s))},{help:a(()=>[...e[12]||(e[12]=[n(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])]),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),d("div",X,[e[15]||(e[15]=o("hr",null,null,-1)),i(h,{subtype:"info"},{default:a(()=>[...e[14]||(e[14]=[n(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),d("div",Y,[e[19]||(e[19]=o("hr",null,null,-1)),i(u,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=s=>t.updateState("openWB/optional/int_display/only_local_charge_points",s))},{help:a(()=>[...e[16]||(e[16]=[n(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])]),_:1},8,["model-value"]),i(h,{subtype:"info",class:"mb-3"},{default:a(()=>[...e[17]||(e[17]=[o("p",null,[n(" Wenn die "),o("strong",null,"Benutzerverwaltung"),n(" aktiviert ist, werden nur die Ladepunkte angezeigt, für welche dem jeweiligen Display-Benutzer auch Zugriffsrechte gegeben wurden. Ebenfalls ist es möglich, dass bestimmte Daten von Wechselrichtern, Fahrzeugen, etc. nicht angezeigt werden, wenn der Benutzer hierfür keine Berechtigung besitzt. ")],-1),o("p",null,' Bei aktivierter Benutzerverwaltung wird empfohlen, die Anzeige auf "Alle" Ladepunkte zu setzen, damit es nicht zu Überschneidungen zwischen diesen Einschränkungen kommt. ',-1),o("p",null,[n(" Das "),o("strong",null,"integrierte Display"),n(' einer openWB series2 oder standalone verwendet automatisch den Benutzer "Display-Intern". Für '),o("strong",null,"externe openWB"),n(' im Steuerungsmodus "secondary" werden automatisch Benutzer mit dem Namen "Display-'),o("i",null,"IP"),n('", wobei '),o("i",null,"IP"),n(" für die jeweilige IP-Adresse der secondary openWB steht, angelegt. ")],-1)])]),_:1}),e[20]||(e[20]=o("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(r(),d("div",ee,[i(D,{class:"mb-2",title:"Theme des Displays",groups:b.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=s=>b.updateSelectedDisplayTheme(s))},{help:a(()=>[...e[18]||(e[18]=[n(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])]),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(r(),f(T,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=s=>b.updateConfiguration("openWB/optional/int_display/theme",s))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),i(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[7]||(e[7]=s=>t.$emit("reset")),onDefaults:e[8]||(e[8]=s=>t.$emit("defaults"))})])])}const ne=_(G,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DisplayConfiguration.vue"]]),le=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"}));export{L as D,le as a}; diff --git a/web/settings/assets/GeneralChargeConfiguration-tvikf7OT.js b/web/settings/assets/GeneralChargeConfiguration-kMS02s2g.js similarity index 93% rename from web/settings/assets/GeneralChargeConfiguration-tvikf7OT.js rename to web/settings/assets/GeneralChargeConfiguration-kMS02s2g.js index 7815ee616d..c5c4d72c05 100644 --- a/web/settings/assets/GeneralChargeConfiguration-tvikf7OT.js +++ b/web/settings/assets/GeneralChargeConfiguration-kMS02s2g.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/flexible_tariff-w7-xLoOe.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-CyH1Au4V.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/flexible_tariff-B7GMl0Rk.js","assets/flexible_tariff-CYFz2wtm.js","assets/flexible_tariff-BXSuQZLV.js","assets/flexible_tariff-gwuyMP87.css","assets/flexible_tariff-DTKfP5xv.js","assets/flexible_tariff-CTd9X6xC.js","assets/flexible_tariff-Dd4agfmV.js","assets/flexible_tariff-D2I_bbD1.js","assets/flexible_tariff-DguwaAtd.js","assets/flexible_tariff-DBcMB1Nb.js","assets/flexible_tariff-BmnVQBW5.js","assets/grid_fee-BoQDv0Kx.js","assets/grid_fee-Cs94pth1.css"])))=>i.map(i=>d[i]); -import{_ as b,C as L}from"./index-CyH1Au4V.js";import{_ as F}from"./dynamic-import-helper-BheWnx7M.js";import{F as C,l as P,ac as S,ad as $}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as w,l,k as a,e as p,y as _,q as i,A as o,J as m,m as n,x as u,a1 as O,a2 as T,K as z,u as y}from"./vendor-Bo8v-nQD.js";const A={props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},N=w(A,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/FlexibleTariffConfigMixin.vue"]]),G={name:"FlexibleTariffConfigFallback",mixins:[N]},U={class:"flexible-tariff-fallback"},I={key:1};function R(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",U,[Object.keys(t.flexibleTariff.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.flexibleTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",I,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.flexibleTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.flexibleTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.flexibleTariff.configuration,void 0,2)),1)]),_:1})]))])}const j=w(G,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffConfigFallback.vue"]]);P.add(S,$);const M={name:"OpenwbFlexibleTariffProxy",components:{FontAwesomeIcon:C},props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading flexible tariff: ${this.flexibleTariff.type}`),O({loader:()=>F(Object.assign({"./awattar/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-w7-xLoOe.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./ekz/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-B7GMl0Rk.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./energycharts/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CYFz2wtm.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./fixed_hours/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-BXSuQZLV.js"),__vite__mapDeps([13,1,2,4,3,5,6,7,8,9,10,14])),"./groupe_e/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DTKfP5xv.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./octopusenergy/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CTd9X6xC.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./ostrom/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Dd4agfmV.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./rabot/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-D2I_bbD1.js"),__vite__mapDeps([18,8,1,2,3,4,5,6,7,9,10])),"./tibber/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DguwaAtd.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./voltego/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DBcMB1Nb.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./westfalen_wind/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-BmnVQBW5.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10]))}),`./${this.flexibleTariff.type}/flexible_tariff.vue`,3),errorComponent:j})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Z(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.flexibleTariff.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.flexibleTariff.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"flexible-tariff":d.flexibleTariff,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["flexible-tariff"]))],64)}const K=w(M,[["render",Z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffProxy.vue"]]),J={props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},H=w(J,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/GridFeeConfigMixin.vue"]]),Q={name:"GridFeeConfigFallback",mixins:[H]},X={class:"grid-fee-fallback"},Y={key:1};function ee(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",X,[Object.keys(t.gridFee.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.gridFee.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",Y,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.gridFee.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.gridFee.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.gridFee.configuration,void 0,2)),1)]),_:1})]))])}const te=w(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeConfigFallback.vue"]]);P.add(S,$);const ne={name:"OpenwbGridFeeProxy",components:{FontAwesomeIcon:C},props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading grid fee: ${this.gridFee.type}`),O({loader:()=>F(Object.assign({"./fixed_hours/grid_fee.vue":()=>b(()=>import("./grid_fee-BoQDv0Kx.js"),__vite__mapDeps([22,1,2,4,3,5,6,7,8,9,10,23]))}),`./${this.gridFee.type}/grid_fee.vue`,3),errorComponent:te})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ie(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.gridFee.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.gridFee.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"grid-fee":d.gridFee,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["grid-fee"]))],64)}const oe=w(ne,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeProxy.vue"]]),re={name:"OpenwbGeneralChargeConfigView",components:{OpenwbFlexibleTariffProxy:K,OpenwbGridFeeProxy:oe},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/chargemode_config/unbalanced_load",writeable:!0},{topic:"openWB/general/chargemode_config/unbalanced_load_limit",writeable:!0},{topic:"openWB/general/prices/bat",writeable:!0},{topic:"openWB/general/prices/grid",writeable:!0},{topic:"openWB/general/prices/pv",writeable:!0},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!0},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!0},{topic:"openWB/optional/ocpp/config",writeable:!0},{topic:"openWB/system/configurable/flexible_tariffs",writeable:!1},{topic:"openWB/system/configurable/grid_fees",writeable:!1}]}},computed:{flexibleTariffList(){return this.$store.state.mqtt["openWB/system/configurable/flexible_tariffs"]},gridFeeList(){return this.$store.state.mqtt["openWB/system/configurable/grid_fees"]}},methods:{getFlexibleTariffDefaultConfiguration(t){const e=this.flexibleTariffList.find(d=>d.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedFlexibleTariff(t){this.updateState("openWB/optional/ep/flexible_tariff/provider",t,"type"),this.updateState("openWB/optional/ep/flexible_tariff/provider",this.getFlexibleTariffDefaultConfiguration(t))},getGridFeeDefaultConfiguration(t){const e=this.gridFeeList.find(d=>d.value==t);return e&&Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for grid fee type!",t),{})},updateSelectedGridFee(t){this.updateState("openWB/optional/ep/grid_fee/provider",t,"type"),this.updateState("openWB/optional/ep/grid_fee/provider",this.getGridFeeDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalChargeConfig"},le={name:"generalChargeConfigForm"},se={key:0},de={key:1},ue={key:0},pe={key:1},fe={key:1},ge={key:2},be={key:0},me={key:1},_e={key:0};function ce(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-button-group-input"),c=l("openwb-base-range-input"),v=l("openwb-base-card"),B=l("openwb-base-heading"),W=l("openwb-base-number-input"),x=l("openwb-base-select-input"),E=l("openwb-flexible-tariff-proxy"),D=l("openwb-grid-fee-proxy"),V=l("openwb-base-text-input"),q=l("openwb-base-submit-buttons");return a(),p("div",ae,[u("form",le,[n(v,{title:"Allgemein"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",se,[n(s,{subtype:"info"},{default:i(()=>[...e[15]||(e[15]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",de,[n(g,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load",r))},{help:i(()=>[...e[16]||(e[16]=[o(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),u("br",null,null,-1),o(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),_(c,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",r))},{help:i(()=>[...e[17]||(e[17]=[o(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])]),_:1},8,["model-value"])):y("",!0)]))]),_:1}),n(v,{title:"Energiekosten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",ue,[n(s,{subtype:"info"},{default:i(()=>[...e[18]||(e[18]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",pe,[n(B,{class:"mt-0"},{help:i(()=>[...e[19]||(e[19]=[o(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),u("br",null,null,-1),o(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])]),default:i(()=>[e[20]||(e[20]=o(" Berechnung der Ladekosten ",-1))]),_:1}),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[...e[21]||(e[21]=[o(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])]),_:1})):y("",!0),n(W,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/general/prices/grid",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateState("openWB/general/prices/bat",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateState("openWB/general/prices/pv",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),e[26]||(e[26]=u("hr",null,null,-1)),n(B,null,{default:i(()=>[...e[22]||(e[22]=[o(" Variable Strompreise ",-1)])]),_:1}),n(s,{subtype:"info"},{default:i(()=>[...e[23]||(e[23]=[u("p",null,' Ist in den Lademodi Eco und Zeitladen "Preisbasiertes Laden" gewählt, wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Zeiten geladen. ',-1),u("p",null,' Wenn keine Preise abgefragt werden können oder "Preisbasiertes Laden" abgewählt wurde, wird in Modus Eco immer geladen bzw. bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ',-1),u("p",null," Wenn sowohl dynamische Stromtarife als auch Netzentgelte konfiguriert sind, werden beide zum Gesamt-Strompreis verrechnet. Dabei wird angenommen, dass der Standardpreis der Netzentgelte in dem Stromtarif enthalten ist. Dementsprechend wird die Differenz zwischen dem Standardpreis der Netzentgelte und den aktuellen Netzentgelten zum Strompreis addiert, um den Gesamt-Strompreis zu ermitteln. ",-1),u("p",null,"Beispiel:",-1),u("ul",null,[u("li",null,"Standardpreis der Netzentgelte: 10 ct/kWh"),u("li",null,"Aktueller Preis der Netzentgelte: 5 ct/kWh"),u("li",null,"Strompreis: 20 ct/kWh"),u("li",null,"Gesamt-Strompreis: 20 + (5 - 10) = 15 ct/kWh")],-1)])]),_:1}),n(B,null,{default:i(()=>[...e[24]||(e[24]=[o(" Dynamische Stromtarife ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.flexibleTariffList,"model-value":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type:"","onUpdate:modelValue":e[5]||(e[5]=r=>f.updateSelectedFlexibleTariff(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),p("div",fe,[n(E,{"flexible-tariff":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"],"onUpdate:configuration":e[6]||(e[6]=r=>f.updateConfiguration("openWB/optional/ep/flexible_tariff/provider",r))},null,8,["flexible-tariff"])])):y("",!0),n(B,null,{default:i(()=>[...e[25]||(e[25]=[o(" Dynamische Netzentgelte ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.gridFeeList,"model-value":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=r=>f.updateSelectedGridFee(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]&&t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type?(a(),p("div",ge,[n(D,{"grid-fee":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"],"onUpdate:configuration":e[8]||(e[8]=r=>f.updateConfiguration("openWB/optional/ep/grid_fee/provider",r))},null,8,["grid-fee"])])):y("",!0)]))]),_:1}),n(v,{title:"OCPP Anbindung"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",be,[n(s,{subtype:"info"},{default:i(()=>[...e[27]||(e[27]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",me,[n(g,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active,"onUpdate:modelValue":e[9]||(e[9]=r=>t.updateState("openWB/optional/ocpp/config",r,"active"))},null,8,["model-value"]),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(a(),p("div",_e,[n(s,{subtype:"info"},{default:i(()=>[...e[28]||(e[28]=[o(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens sowie alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),u("br",null,null,-1),o(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB unter Einstellungen -> Konfiguration im zugehörigen -> Ladepunkt eingetragen werden. ",-1)])]),_:1}),n(V,{title:"URL des OCPP-Backends",subtype:"url","model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.url,"onUpdate:modelValue":e[10]||(e[10]=r=>t.updateState("openWB/optional/ocpp/config",r,"url"))},null,8,["model-value"]),n(x,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.version,"onUpdate:modelValue":e[11]||(e[11]=r=>t.updateState("openWB/optional/ocpp/config",r,"version"))},null,8,["model-value"])])):y("",!0)]))]),_:1}),n(q,{"form-name":"generalChargeConfigForm",onSave:e[12]||(e[12]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[13]||(e[13]=r=>t.$emit("reset")),onDefaults:e[14]||(e[14]=r=>t.$emit("defaults"))})])])}const ve=w(re,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfiguration.vue"]]),Be=Object.freeze(Object.defineProperty({__proto__:null,default:ve},Symbol.toStringTag,{value:"Module"}));export{N as F,H as G,Be as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/flexible_tariff-DAlfbB0X.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-D_eD74fL.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/flexible_tariff-B5Q9TiRz.js","assets/flexible_tariff-DDPKc8IS.js","assets/flexible_tariff-Cm72-IRP.js","assets/flexible_tariff-gwuyMP87.css","assets/flexible_tariff-DNlNO1mw.js","assets/flexible_tariff-D1CoTmby.js","assets/flexible_tariff-Cwtdxcdq.js","assets/flexible_tariff-DUAjEH5H.js","assets/flexible_tariff-DJxxQB8n.js","assets/flexible_tariff-BsviT0dT.js","assets/flexible_tariff-CiZLGcR6.js","assets/grid_fee-vdJ6pKGQ.js","assets/grid_fee-Cs94pth1.css"])))=>i.map(i=>d[i]); +import{_ as b,C as L}from"./index-D_eD74fL.js";import{_ as F}from"./dynamic-import-helper-BheWnx7M.js";import{F as C,l as P,ac as S,ad as $}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as w,l,k as a,e as p,y as _,q as i,A as o,J as m,m as n,x as u,a1 as O,a2 as T,K as z,u as y}from"./vendor-Bo8v-nQD.js";const A={props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},N=w(A,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/FlexibleTariffConfigMixin.vue"]]),G={name:"FlexibleTariffConfigFallback",mixins:[N]},U={class:"flexible-tariff-fallback"},I={key:1};function R(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",U,[Object.keys(t.flexibleTariff.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.flexibleTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",I,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.flexibleTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.flexibleTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.flexibleTariff.configuration,void 0,2)),1)]),_:1})]))])}const j=w(G,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffConfigFallback.vue"]]);P.add(S,$);const M={name:"OpenwbFlexibleTariffProxy",components:{FontAwesomeIcon:C},props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading flexible tariff: ${this.flexibleTariff.type}`),O({loader:()=>F(Object.assign({"./awattar/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DAlfbB0X.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./ekz/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-B5Q9TiRz.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./energycharts/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DDPKc8IS.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./fixed_hours/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Cm72-IRP.js"),__vite__mapDeps([13,1,2,4,3,5,6,7,8,9,10,14])),"./groupe_e/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DNlNO1mw.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./octopusenergy/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-D1CoTmby.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./ostrom/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Cwtdxcdq.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./rabot/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DUAjEH5H.js"),__vite__mapDeps([18,8,1,2,3,4,5,6,7,9,10])),"./tibber/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DJxxQB8n.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./voltego/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-BsviT0dT.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./westfalen_wind/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CiZLGcR6.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10]))}),`./${this.flexibleTariff.type}/flexible_tariff.vue`,3),errorComponent:j})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Z(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.flexibleTariff.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.flexibleTariff.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"flexible-tariff":d.flexibleTariff,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["flexible-tariff"]))],64)}const K=w(M,[["render",Z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffProxy.vue"]]),J={props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},H=w(J,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/GridFeeConfigMixin.vue"]]),Q={name:"GridFeeConfigFallback",mixins:[H]},X={class:"grid-fee-fallback"},Y={key:1};function ee(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",X,[Object.keys(t.gridFee.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.gridFee.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",Y,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.gridFee.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.gridFee.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.gridFee.configuration,void 0,2)),1)]),_:1})]))])}const te=w(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeConfigFallback.vue"]]);P.add(S,$);const ne={name:"OpenwbGridFeeProxy",components:{FontAwesomeIcon:C},props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading grid fee: ${this.gridFee.type}`),O({loader:()=>F(Object.assign({"./fixed_hours/grid_fee.vue":()=>b(()=>import("./grid_fee-vdJ6pKGQ.js"),__vite__mapDeps([22,1,2,4,3,5,6,7,8,9,10,23]))}),`./${this.gridFee.type}/grid_fee.vue`,3),errorComponent:te})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ie(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.gridFee.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.gridFee.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"grid-fee":d.gridFee,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["grid-fee"]))],64)}const oe=w(ne,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeProxy.vue"]]),re={name:"OpenwbGeneralChargeConfigView",components:{OpenwbFlexibleTariffProxy:K,OpenwbGridFeeProxy:oe},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/chargemode_config/unbalanced_load",writeable:!0},{topic:"openWB/general/chargemode_config/unbalanced_load_limit",writeable:!0},{topic:"openWB/general/prices/bat",writeable:!0},{topic:"openWB/general/prices/grid",writeable:!0},{topic:"openWB/general/prices/pv",writeable:!0},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!0},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!0},{topic:"openWB/optional/ocpp/config",writeable:!0},{topic:"openWB/system/configurable/flexible_tariffs",writeable:!1},{topic:"openWB/system/configurable/grid_fees",writeable:!1}]}},computed:{flexibleTariffList(){return this.$store.state.mqtt["openWB/system/configurable/flexible_tariffs"]},gridFeeList(){return this.$store.state.mqtt["openWB/system/configurable/grid_fees"]}},methods:{getFlexibleTariffDefaultConfiguration(t){const e=this.flexibleTariffList.find(d=>d.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedFlexibleTariff(t){this.updateState("openWB/optional/ep/flexible_tariff/provider",t,"type"),this.updateState("openWB/optional/ep/flexible_tariff/provider",this.getFlexibleTariffDefaultConfiguration(t))},getGridFeeDefaultConfiguration(t){const e=this.gridFeeList.find(d=>d.value==t);return e&&Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for grid fee type!",t),{})},updateSelectedGridFee(t){this.updateState("openWB/optional/ep/grid_fee/provider",t,"type"),this.updateState("openWB/optional/ep/grid_fee/provider",this.getGridFeeDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalChargeConfig"},le={name:"generalChargeConfigForm"},se={key:0},de={key:1},ue={key:0},pe={key:1},fe={key:1},ge={key:2},be={key:0},me={key:1},_e={key:0};function ce(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-button-group-input"),c=l("openwb-base-range-input"),v=l("openwb-base-card"),B=l("openwb-base-heading"),W=l("openwb-base-number-input"),x=l("openwb-base-select-input"),E=l("openwb-flexible-tariff-proxy"),D=l("openwb-grid-fee-proxy"),V=l("openwb-base-text-input"),q=l("openwb-base-submit-buttons");return a(),p("div",ae,[u("form",le,[n(v,{title:"Allgemein"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",se,[n(s,{subtype:"info"},{default:i(()=>[...e[15]||(e[15]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",de,[n(g,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load",r))},{help:i(()=>[...e[16]||(e[16]=[o(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),u("br",null,null,-1),o(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),_(c,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",r))},{help:i(()=>[...e[17]||(e[17]=[o(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])]),_:1},8,["model-value"])):y("",!0)]))]),_:1}),n(v,{title:"Energiekosten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",ue,[n(s,{subtype:"info"},{default:i(()=>[...e[18]||(e[18]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",pe,[n(B,{class:"mt-0"},{help:i(()=>[...e[19]||(e[19]=[o(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),u("br",null,null,-1),o(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])]),default:i(()=>[e[20]||(e[20]=o(" Berechnung der Ladekosten ",-1))]),_:1}),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[...e[21]||(e[21]=[o(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])]),_:1})):y("",!0),n(W,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/general/prices/grid",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateState("openWB/general/prices/bat",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateState("openWB/general/prices/pv",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),e[26]||(e[26]=u("hr",null,null,-1)),n(B,null,{default:i(()=>[...e[22]||(e[22]=[o(" Variable Strompreise ",-1)])]),_:1}),n(s,{subtype:"info"},{default:i(()=>[...e[23]||(e[23]=[u("p",null,' Ist in den Lademodi Eco und Zeitladen "Preisbasiertes Laden" gewählt, wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Zeiten geladen. ',-1),u("p",null,' Wenn keine Preise abgefragt werden können oder "Preisbasiertes Laden" abgewählt wurde, wird in Modus Eco immer geladen bzw. bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ',-1),u("p",null," Wenn sowohl dynamische Stromtarife als auch Netzentgelte konfiguriert sind, werden beide zum Gesamt-Strompreis verrechnet. Dabei wird angenommen, dass der Standardpreis der Netzentgelte in dem Stromtarif enthalten ist. Dementsprechend wird die Differenz zwischen dem Standardpreis der Netzentgelte und den aktuellen Netzentgelten zum Strompreis addiert, um den Gesamt-Strompreis zu ermitteln. ",-1),u("p",null,"Beispiel:",-1),u("ul",null,[u("li",null,"Standardpreis der Netzentgelte: 10 ct/kWh"),u("li",null,"Aktueller Preis der Netzentgelte: 5 ct/kWh"),u("li",null,"Strompreis: 20 ct/kWh"),u("li",null,"Gesamt-Strompreis: 20 + (5 - 10) = 15 ct/kWh")],-1)])]),_:1}),n(B,null,{default:i(()=>[...e[24]||(e[24]=[o(" Dynamische Stromtarife ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.flexibleTariffList,"model-value":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type:"","onUpdate:modelValue":e[5]||(e[5]=r=>f.updateSelectedFlexibleTariff(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),p("div",fe,[n(E,{"flexible-tariff":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"],"onUpdate:configuration":e[6]||(e[6]=r=>f.updateConfiguration("openWB/optional/ep/flexible_tariff/provider",r))},null,8,["flexible-tariff"])])):y("",!0),n(B,null,{default:i(()=>[...e[25]||(e[25]=[o(" Dynamische Netzentgelte ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.gridFeeList,"model-value":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=r=>f.updateSelectedGridFee(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]&&t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type?(a(),p("div",ge,[n(D,{"grid-fee":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"],"onUpdate:configuration":e[8]||(e[8]=r=>f.updateConfiguration("openWB/optional/ep/grid_fee/provider",r))},null,8,["grid-fee"])])):y("",!0)]))]),_:1}),n(v,{title:"OCPP Anbindung"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",be,[n(s,{subtype:"info"},{default:i(()=>[...e[27]||(e[27]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",me,[n(g,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active,"onUpdate:modelValue":e[9]||(e[9]=r=>t.updateState("openWB/optional/ocpp/config",r,"active"))},null,8,["model-value"]),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(a(),p("div",_e,[n(s,{subtype:"info"},{default:i(()=>[...e[28]||(e[28]=[o(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens sowie alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),u("br",null,null,-1),o(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB unter Einstellungen -> Konfiguration im zugehörigen -> Ladepunkt eingetragen werden. ",-1)])]),_:1}),n(V,{title:"URL des OCPP-Backends",subtype:"url","model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.url,"onUpdate:modelValue":e[10]||(e[10]=r=>t.updateState("openWB/optional/ocpp/config",r,"url"))},null,8,["model-value"]),n(x,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.version,"onUpdate:modelValue":e[11]||(e[11]=r=>t.updateState("openWB/optional/ocpp/config",r,"version"))},null,8,["model-value"])])):y("",!0)]))]),_:1}),n(q,{"form-name":"generalChargeConfigForm",onSave:e[12]||(e[12]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[13]||(e[13]=r=>t.$emit("reset")),onDefaults:e[14]||(e[14]=r=>t.$emit("defaults"))})])])}const ve=w(re,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfiguration.vue"]]),Be=Object.freeze(Object.defineProperty({__proto__:null,default:ve},Symbol.toStringTag,{value:"Module"}));export{N as F,H as G,Be as a}; diff --git a/web/settings/assets/GeneralConfiguration-CMMYSFfh.js b/web/settings/assets/GeneralConfiguration-b09cPY_w.js similarity index 97% rename from web/settings/assets/GeneralConfiguration-CMMYSFfh.js rename to web/settings/assets/GeneralConfiguration-b09cPY_w.js index cd90681216..488c7f4d77 100644 --- a/web/settings/assets/GeneralConfiguration-CMMYSFfh.js +++ b/web/settings/assets/GeneralConfiguration-b09cPY_w.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/webTheme-DQBJkymH.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/webTheme-CUZsmlbL.js","assets/OpenwbSortableList-BORHS8nd.js","assets/OpenwbSortableList-C11EhIQj.css","assets/webTheme-D6gb9Bne.js"])))=>i.map(i=>d[i]); -import{F as S,l as k,ac as z,ad as E,ae as C,af as D,a6 as N,X as A,G as L,ap as U,aq as P,ar as J}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as O}from"./index-CyH1Au4V.js";import{S as M}from"./SystemVersion-DQAfG1DR.js";import{_ as R}from"./dynamic-import-helper-BheWnx7M.js";import{_ as v,l as p,k as r,e as m,y as f,q as o,A as s,J as c,m as n,x as d,a1 as F,a2 as x,K as I,u as b}from"./vendor-Bo8v-nQD.js";const j={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},G=v(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),H={name:"WebThemeFallback",mixins:[G]},Z={class:"web-theme-fallback"},K={key:1};function Q(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-textarea");return r(),m("div",Z,[Object.keys(t.webTheme.configuration).length==0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[s(' Das Web Theme "'+c(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),m("div",K,[n(g,{subtype:"warning"},{default:o(()=>[s(' Es wurde keine Konfigurationsseite für das Web Theme "'+c(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[s(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(g,{subtype:"info"},{default:o(()=>[d("pre",null,c(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const X=v(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);k.add(z,E,C,D);const Y={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:S},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),F({loader:()=>R(Object.assign({"./colors/webTheme.vue":()=>B(()=>import("./webTheme-DQBJkymH.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./koala/webTheme.vue":()=>B(()=>import("./webTheme-CUZsmlbL.js"),__vite__mapDeps([12,13,4,1,2,3,5,6,7,8,9,14,10,11])),"./standard_legacy/webTheme.vue":()=>B(()=>import("./webTheme-D6gb9Bne.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.webTheme.type}/webTheme.vue`,3),errorComponent:X})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ee(t,e,u,W,V,_){const g=p("font-awesome-icon"),l=p("openwb-base-alert"),h=p("openwb-base-heading");return r(),m(I,null,[u.webTheme.official?(r(),f(l,{key:0,subtype:"success"},{default:o(()=>[n(g,{icon:["fas","certificate"]}),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(l,{key:1,subtype:"info"},{default:o(()=>[n(g,{icon:["fas","people-group"]}),e[1]||(e[1]=s(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1})),n(l,{subtype:u.webTheme.userManagementSupported?"success":"warning"},{default:o(()=>[n(g,{icon:["fas",u.webTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" unterstützt die Benutzerverwaltung'+c(u.webTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),n(h,null,{default:o(()=>[s(' Einstellungen für Web Theme "'+c(u.webTheme.name)+'" ',1)]),_:1}),(r(),f(x(_.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=w=>_.updateConfiguration(w))},null,40,["web-theme"]))],64)}const te=v(Y,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);k.add(N,A,L,U,P,J);const ne={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:te,FontAwesomeIcon:S},mixins:[O,M],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/allow_unencrypted_access",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!0},{topic:"openWB/general/control_interval",writeable:!0},{topic:"openWB/general/extern",writeable:!0},{topic:"openWB/general/grid_protection_configured",writeable:!0},{topic:"openWB/general/http_api",writeable:!0},{topic:"openWB/general/modbus_control",writeable:!0},{topic:"openWB/general/range_unit",writeable:!0},{topic:"openWB/general/temporary_charge_templates_active",writeable:!0},{topic:"openWB/general/web_theme",writeable:!0},{topic:"openWB/system/configurable/web_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.webThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},disableExternModeSwitch(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||this.$store.state.mqtt["openWB/general/allow_unencrypted_access"]===!1}},methods:{getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalConfig"},oe={name:"generalConfigForm"},se={key:1},le={key:1},re={key:2},ie={key:0},ue={key:0},de={key:1},ge={key:0},me={key:1},pe=["href"],be={key:0},fe={key:0},_e={key:1};function ce(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-button-group-input"),h=p("RouterLink"),w=p("openwb-base-card"),y=p("openwb-base-heading"),T=p("openwb-base-select-input"),q=p("openwb-web-theme-proxy"),i=p("font-awesome-icon"),$=p("openwb-base-submit-buttons");return r(),m("div",ae,[d("form",oe,[n(w,{title:"Steuerungsmodus"},{default:o(()=>[n(g,{subtype:"info"},{default:o(()=>[...e[32]||(e[32]=[d("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Diese werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),d("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])]),_:1}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],disabled:_.disableExternModeSwitch,"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateState("openWB/general/extern",a))},null,8,["disabled","model-value"]),_.disableExternModeSwitch?(r(),f(g,{key:0,subtype:"warning"},{default:o(()=>[e[34]||(e[34]=s(" Die Benutzerverwaltung ist aktiviert oder der unverschlüsselte Zugriff ist nicht erlaubt. Um den Steuerungsmodus ändern zu können, muss die Benutzerverwaltung im Bereich ",-1)),n(h,{to:"/System/SecurityConfiguration"},{default:o(()=>[...e[33]||(e[33]=[s("Sicherheit",-1)])]),_:1}),e[35]||(e[35]=s(" zunächst deaktiviert und der unverschlüsselte Zugang erlaubt werden. ",-1))]),_:1})):b("",!0),u.installAssistantActive?b("",!0):(r(),m("div",se,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),f(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateState("openWB/general/modbus_control",a))},{help:o(()=>[...e[36]||(e[36]=[s(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),d("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),s(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])]),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),m("div",le,[n(g,{subtype:"info",class:"mb-2"},{default:o(()=>[...e[37]||(e[37]=[s(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])]),_:1})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),m("div",re,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=a=>t.updateState("openWB/general/http_api",a))},{help:o(()=>[...e[38]||(e[38]=[d("p",null,[s(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),d("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),s(" dokumentiert. ")],-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/system/security/user_management_active"]===!0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[...e[39]||(e[39]=[s(" Die Benutzerverwaltung ist aktiviert. Es muss bei jedem HTTP-API Zugriff ein gültiger Benutzername und Passwort mittels HTTP Basic Auth übermittelt werden. Es wird empfohlen, hierfür einen separaten Benutzer mit eingeschränkten Rechten anzulegen. ",-1)])]),_:1})):b("",!0)]))]),_:1}),u.installAssistantActive?b("",!0):(r(),m("div",ie,[n(w,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ue,[n(g,{subtype:"info"},{default:o(()=>[...e[40]||(e[40]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),m("div",de,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=a=>t.updateState("openWB/general/control_interval",a))},{help:o(()=>[...e[41]||(e[41]=[s(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),d("br",null,null,-1),d("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])]),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=a=>t.updateState("openWB/general/grid_protection_configured",a))},{help:o(()=>[...e[42]||(e[42]=[s(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),d("br",null,null,-1),d("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])]),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),f(w,{key:1,title:"Bedienung & Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ge,[n(g,{subtype:"info"},{default:o(()=>[...e[43]||(e[43]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",me,[n(l,{title:"Temporäre Ladeeinstellungen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/temporary_charge_templates_active"],"onUpdate:modelValue":e[5]||(e[5]=a=>t.updateState("openWB/general/temporary_charge_templates_active",a))},{help:o(()=>[e[45]||(e[45]=d("p",null,[s(' Bei Auswahl "Ja" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB als "temporäre" Eingaben behandelt. Dies erlaubt z.B. das schnelle, temporäre Umschalten des Lademodus oder deren Detaileinstellungen für eine unplanmäßige Ladeanforderung (Bsp. Voreinstellung -> PV-Laden / unplanmäßig -> Sofort-Laden für Laden wegen unplanmäßigen Termins). '),d("br"),s(" Alle Einstellungen, die unter Einstellungen → Konfiguration → Fahrzeuge → Lade-Profil für das jeweilige Fahrzeug konfiguriert sind, gelten als persistent (dauerhaft). Diese werden bei jedem Abstecken des jeweiligen Fahrzeugs neu geladen - sind also Voreinstellungen (default). ")],-1)),e[46]||(e[46]=d("p",null,' Bei Auswahl "Nein" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB direkt als "persistente" (dauerhafte) Eingaben behandelt. ',-1)),d("p",null,[e[44]||(e[44]=s(" Eine ausführliche Erläuterung mit Beispielen findet Ihr im ",-1)),d("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:einstellungen:allgemein#temporaere_ladeeinstellungen`,target:"_blank",rel:"noopener noreferrer"}," openWB-DokuWiki ",8,pe)])]),_:1},8,["model-value"]),n(y,{class:"mt-0"},{default:o(()=>[...e[47]||(e[47]=[s(" Hauptseite ",-1)])]),_:1}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),m("div",be,[n(T,{class:"mb-2",title:"Theme",groups:_.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[6]||(e[6]=a=>_.updateSelectedWebTheme(a))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),f(q,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[7]||(e[7]=a=>_.updateConfiguration("openWB/general/web_theme",a))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),f(w,{key:2,title:"Lade-Protokoll"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",fe,[n(g,{subtype:"info"},{default:o(()=>[...e[48]||(e[48]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",_e,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[8]||(e[8]=a=>t.updateState("openWB/general/range_unit",a))},null,8,["model-value"]),n(y,null,{default:o(()=>[...e[49]||(e[49]=[s(" Auswahl der Datenfelder ",-1)])]),_:1}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_begin,"onUpdate:modelValue":e[9]||(e[9]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_begin"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[50]||(e[50]=s(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_end,"onUpdate:modelValue":e[10]||(e[10]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_end"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[51]||(e[51]=s(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_time_charged,"onUpdate:modelValue":e[11]||(e[11]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_time_charged"))},{title:o(()=>[n(i,{icon:["fas","clock"]}),e[52]||(e[52]=s(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_costs,"onUpdate:modelValue":e[12]||(e[12]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_costs"))},{title:o(()=>[n(i,{icon:["fas","coins"]}),e[53]||(e[53]=s(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_power_source,"onUpdate:modelValue":e[13]||(e[13]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_power_source"))},{title:o(()=>[n(i,{icon:["fas","pie-chart"]}),e[54]||(e[54]=s(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_name,"onUpdate:modelValue":e[14]||(e[14]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_name"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[55]||(e[55]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_chargemode,"onUpdate:modelValue":e[15]||(e[15]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_chargemode"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[56]||(e[56]=s(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_prio,"onUpdate:modelValue":e[16]||(e[16]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_prio"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[57]||(e[57]=s(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_rfid,"onUpdate:modelValue":e[17]||(e[17]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_rfid"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[58]||(e[58]=s(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_odometer,"onUpdate:modelValue":e[18]||(e[18]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_odometer"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[59]||(e[59]=s(" Kilometerstand ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_start,"onUpdate:modelValue":e[19]||(e[19]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_start"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[60]||(e[60]=s(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_end,"onUpdate:modelValue":e[20]||(e[20]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_end"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[61]||(e[61]=s(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_name,"onUpdate:modelValue":e[21]||(e[21]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_name"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[62]||(e[62]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_serial_number,"onUpdate:modelValue":e[22]||(e[22]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_serial_number"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[63]||(e[63]=s(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_imported_since_mode_switch,"onUpdate:modelValue":e[23]||(e[23]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_imported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[64]||(e[64]=s(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_start,"onUpdate:modelValue":e[24]||(e[24]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[65]||(e[65]=s(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_end,"onUpdate:modelValue":e[25]||(e[25]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[66]||(e[66]=s(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_exported_since_mode_switch,"onUpdate:modelValue":e[26]||(e[26]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_exported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[67]||(e[67]=s(" Entladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_start,"onUpdate:modelValue":e[27]||(e[27]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[68]||(e[68]=s(" Zählerstand bei Entladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_end,"onUpdate:modelValue":e[28]||(e[28]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[69]||(e[69]=s(" Zählerstand bei Entladeende ",-1))]),_:1},8,["model-value"])]))]),_:1})),n($,{"form-name":"generalConfigForm",onSave:e[29]||(e[29]=a=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[30]||(e[30]=a=>t.$emit("reset")),onDefaults:e[31]||(e[31]=a=>t.$emit("defaults"))})])])}const we=v(ne,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfiguration.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:we},Symbol.toStringTag,{value:"Module"}));export{we as G,G as W,ye as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/webTheme-BZXitWVh.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/webTheme-CHG5h5Rr.js","assets/OpenwbSortableList-CSUuyi79.js","assets/OpenwbSortableList-C11EhIQj.css","assets/webTheme-CY7Mp7o_.js"])))=>i.map(i=>d[i]); +import{F as S,l as k,ac as z,ad as E,ae as C,af as D,a6 as N,X as A,G as L,ap as U,aq as P,ar as J}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as O}from"./index-D_eD74fL.js";import{S as M}from"./SystemVersion-DQAfG1DR.js";import{_ as R}from"./dynamic-import-helper-BheWnx7M.js";import{_ as v,l as p,k as r,e as m,y as f,q as o,A as s,J as c,m as n,x as d,a1 as F,a2 as x,K as I,u as b}from"./vendor-Bo8v-nQD.js";const j={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},G=v(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),H={name:"WebThemeFallback",mixins:[G]},Z={class:"web-theme-fallback"},K={key:1};function Q(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-textarea");return r(),m("div",Z,[Object.keys(t.webTheme.configuration).length==0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[s(' Das Web Theme "'+c(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),m("div",K,[n(g,{subtype:"warning"},{default:o(()=>[s(' Es wurde keine Konfigurationsseite für das Web Theme "'+c(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[s(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(g,{subtype:"info"},{default:o(()=>[d("pre",null,c(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const X=v(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);k.add(z,E,C,D);const Y={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:S},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),F({loader:()=>R(Object.assign({"./colors/webTheme.vue":()=>B(()=>import("./webTheme-BZXitWVh.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./koala/webTheme.vue":()=>B(()=>import("./webTheme-CHG5h5Rr.js"),__vite__mapDeps([12,13,4,1,2,3,5,6,7,8,9,14,10,11])),"./standard_legacy/webTheme.vue":()=>B(()=>import("./webTheme-CY7Mp7o_.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.webTheme.type}/webTheme.vue`,3),errorComponent:X})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ee(t,e,u,W,V,_){const g=p("font-awesome-icon"),l=p("openwb-base-alert"),h=p("openwb-base-heading");return r(),m(I,null,[u.webTheme.official?(r(),f(l,{key:0,subtype:"success"},{default:o(()=>[n(g,{icon:["fas","certificate"]}),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(l,{key:1,subtype:"info"},{default:o(()=>[n(g,{icon:["fas","people-group"]}),e[1]||(e[1]=s(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1})),n(l,{subtype:u.webTheme.userManagementSupported?"success":"warning"},{default:o(()=>[n(g,{icon:["fas",u.webTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" unterstützt die Benutzerverwaltung'+c(u.webTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),n(h,null,{default:o(()=>[s(' Einstellungen für Web Theme "'+c(u.webTheme.name)+'" ',1)]),_:1}),(r(),f(x(_.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=w=>_.updateConfiguration(w))},null,40,["web-theme"]))],64)}const te=v(Y,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);k.add(N,A,L,U,P,J);const ne={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:te,FontAwesomeIcon:S},mixins:[O,M],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/allow_unencrypted_access",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!0},{topic:"openWB/general/control_interval",writeable:!0},{topic:"openWB/general/extern",writeable:!0},{topic:"openWB/general/grid_protection_configured",writeable:!0},{topic:"openWB/general/http_api",writeable:!0},{topic:"openWB/general/modbus_control",writeable:!0},{topic:"openWB/general/range_unit",writeable:!0},{topic:"openWB/general/temporary_charge_templates_active",writeable:!0},{topic:"openWB/general/web_theme",writeable:!0},{topic:"openWB/system/configurable/web_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.webThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},disableExternModeSwitch(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||this.$store.state.mqtt["openWB/general/allow_unencrypted_access"]===!1}},methods:{getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalConfig"},oe={name:"generalConfigForm"},se={key:1},le={key:1},re={key:2},ie={key:0},ue={key:0},de={key:1},ge={key:0},me={key:1},pe=["href"],be={key:0},fe={key:0},_e={key:1};function ce(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-button-group-input"),h=p("RouterLink"),w=p("openwb-base-card"),y=p("openwb-base-heading"),T=p("openwb-base-select-input"),q=p("openwb-web-theme-proxy"),i=p("font-awesome-icon"),$=p("openwb-base-submit-buttons");return r(),m("div",ae,[d("form",oe,[n(w,{title:"Steuerungsmodus"},{default:o(()=>[n(g,{subtype:"info"},{default:o(()=>[...e[32]||(e[32]=[d("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Diese werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),d("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])]),_:1}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],disabled:_.disableExternModeSwitch,"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateState("openWB/general/extern",a))},null,8,["disabled","model-value"]),_.disableExternModeSwitch?(r(),f(g,{key:0,subtype:"warning"},{default:o(()=>[e[34]||(e[34]=s(" Die Benutzerverwaltung ist aktiviert oder der unverschlüsselte Zugriff ist nicht erlaubt. Um den Steuerungsmodus ändern zu können, muss die Benutzerverwaltung im Bereich ",-1)),n(h,{to:"/System/SecurityConfiguration"},{default:o(()=>[...e[33]||(e[33]=[s("Sicherheit",-1)])]),_:1}),e[35]||(e[35]=s(" zunächst deaktiviert und der unverschlüsselte Zugang erlaubt werden. ",-1))]),_:1})):b("",!0),u.installAssistantActive?b("",!0):(r(),m("div",se,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),f(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateState("openWB/general/modbus_control",a))},{help:o(()=>[...e[36]||(e[36]=[s(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),d("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),s(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])]),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),m("div",le,[n(g,{subtype:"info",class:"mb-2"},{default:o(()=>[...e[37]||(e[37]=[s(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])]),_:1})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),m("div",re,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=a=>t.updateState("openWB/general/http_api",a))},{help:o(()=>[...e[38]||(e[38]=[d("p",null,[s(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),d("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),s(" dokumentiert. ")],-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/system/security/user_management_active"]===!0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[...e[39]||(e[39]=[s(" Die Benutzerverwaltung ist aktiviert. Es muss bei jedem HTTP-API Zugriff ein gültiger Benutzername und Passwort mittels HTTP Basic Auth übermittelt werden. Es wird empfohlen, hierfür einen separaten Benutzer mit eingeschränkten Rechten anzulegen. ",-1)])]),_:1})):b("",!0)]))]),_:1}),u.installAssistantActive?b("",!0):(r(),m("div",ie,[n(w,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ue,[n(g,{subtype:"info"},{default:o(()=>[...e[40]||(e[40]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),m("div",de,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=a=>t.updateState("openWB/general/control_interval",a))},{help:o(()=>[...e[41]||(e[41]=[s(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),d("br",null,null,-1),d("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])]),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=a=>t.updateState("openWB/general/grid_protection_configured",a))},{help:o(()=>[...e[42]||(e[42]=[s(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),d("br",null,null,-1),d("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])]),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),f(w,{key:1,title:"Bedienung & Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ge,[n(g,{subtype:"info"},{default:o(()=>[...e[43]||(e[43]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",me,[n(l,{title:"Temporäre Ladeeinstellungen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/temporary_charge_templates_active"],"onUpdate:modelValue":e[5]||(e[5]=a=>t.updateState("openWB/general/temporary_charge_templates_active",a))},{help:o(()=>[e[45]||(e[45]=d("p",null,[s(' Bei Auswahl "Ja" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB als "temporäre" Eingaben behandelt. Dies erlaubt z.B. das schnelle, temporäre Umschalten des Lademodus oder deren Detaileinstellungen für eine unplanmäßige Ladeanforderung (Bsp. Voreinstellung -> PV-Laden / unplanmäßig -> Sofort-Laden für Laden wegen unplanmäßigen Termins). '),d("br"),s(" Alle Einstellungen, die unter Einstellungen → Konfiguration → Fahrzeuge → Lade-Profil für das jeweilige Fahrzeug konfiguriert sind, gelten als persistent (dauerhaft). Diese werden bei jedem Abstecken des jeweiligen Fahrzeugs neu geladen - sind also Voreinstellungen (default). ")],-1)),e[46]||(e[46]=d("p",null,' Bei Auswahl "Nein" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB direkt als "persistente" (dauerhafte) Eingaben behandelt. ',-1)),d("p",null,[e[44]||(e[44]=s(" Eine ausführliche Erläuterung mit Beispielen findet Ihr im ",-1)),d("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:einstellungen:allgemein#temporaere_ladeeinstellungen`,target:"_blank",rel:"noopener noreferrer"}," openWB-DokuWiki ",8,pe)])]),_:1},8,["model-value"]),n(y,{class:"mt-0"},{default:o(()=>[...e[47]||(e[47]=[s(" Hauptseite ",-1)])]),_:1}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),m("div",be,[n(T,{class:"mb-2",title:"Theme",groups:_.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[6]||(e[6]=a=>_.updateSelectedWebTheme(a))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),f(q,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[7]||(e[7]=a=>_.updateConfiguration("openWB/general/web_theme",a))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),f(w,{key:2,title:"Lade-Protokoll"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",fe,[n(g,{subtype:"info"},{default:o(()=>[...e[48]||(e[48]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",_e,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[8]||(e[8]=a=>t.updateState("openWB/general/range_unit",a))},null,8,["model-value"]),n(y,null,{default:o(()=>[...e[49]||(e[49]=[s(" Auswahl der Datenfelder ",-1)])]),_:1}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_begin,"onUpdate:modelValue":e[9]||(e[9]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_begin"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[50]||(e[50]=s(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_end,"onUpdate:modelValue":e[10]||(e[10]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_end"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[51]||(e[51]=s(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_time_charged,"onUpdate:modelValue":e[11]||(e[11]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_time_charged"))},{title:o(()=>[n(i,{icon:["fas","clock"]}),e[52]||(e[52]=s(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_costs,"onUpdate:modelValue":e[12]||(e[12]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_costs"))},{title:o(()=>[n(i,{icon:["fas","coins"]}),e[53]||(e[53]=s(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_power_source,"onUpdate:modelValue":e[13]||(e[13]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_power_source"))},{title:o(()=>[n(i,{icon:["fas","pie-chart"]}),e[54]||(e[54]=s(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_name,"onUpdate:modelValue":e[14]||(e[14]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_name"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[55]||(e[55]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_chargemode,"onUpdate:modelValue":e[15]||(e[15]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_chargemode"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[56]||(e[56]=s(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_prio,"onUpdate:modelValue":e[16]||(e[16]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_prio"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[57]||(e[57]=s(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_rfid,"onUpdate:modelValue":e[17]||(e[17]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_rfid"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[58]||(e[58]=s(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_odometer,"onUpdate:modelValue":e[18]||(e[18]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_odometer"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[59]||(e[59]=s(" Kilometerstand ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_start,"onUpdate:modelValue":e[19]||(e[19]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_start"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[60]||(e[60]=s(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_end,"onUpdate:modelValue":e[20]||(e[20]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_end"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[61]||(e[61]=s(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_name,"onUpdate:modelValue":e[21]||(e[21]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_name"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[62]||(e[62]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_serial_number,"onUpdate:modelValue":e[22]||(e[22]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_serial_number"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[63]||(e[63]=s(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_imported_since_mode_switch,"onUpdate:modelValue":e[23]||(e[23]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_imported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[64]||(e[64]=s(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_start,"onUpdate:modelValue":e[24]||(e[24]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[65]||(e[65]=s(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_end,"onUpdate:modelValue":e[25]||(e[25]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[66]||(e[66]=s(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_exported_since_mode_switch,"onUpdate:modelValue":e[26]||(e[26]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_exported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[67]||(e[67]=s(" Entladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_start,"onUpdate:modelValue":e[27]||(e[27]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[68]||(e[68]=s(" Zählerstand bei Entladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_end,"onUpdate:modelValue":e[28]||(e[28]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[69]||(e[69]=s(" Zählerstand bei Entladeende ",-1))]),_:1},8,["model-value"])]))]),_:1})),n($,{"form-name":"generalConfigForm",onSave:e[29]||(e[29]=a=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[30]||(e[30]=a=>t.$emit("reset")),onDefaults:e[31]||(e[31]=a=>t.$emit("defaults"))})])])}const we=v(ne,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfiguration.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:we},Symbol.toStringTag,{value:"Module"}));export{we as G,G as W,ye as a}; diff --git a/web/settings/assets/HardwareInstallation-caZ0sA9z.js b/web/settings/assets/HardwareInstallation-DrK-NlWu.js similarity index 53% rename from web/settings/assets/HardwareInstallation-caZ0sA9z.js rename to web/settings/assets/HardwareInstallation-DrK-NlWu.js index 65663d3a85..7fe048719e 100644 --- a/web/settings/assets/HardwareInstallation-caZ0sA9z.js +++ b/web/settings/assets/HardwareInstallation-DrK-NlWu.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/device-C-avdMqj.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/bat-CE8ZvzxW.js","assets/device-BjgcGLL9.js","assets/device-CJ5CONRY.js","assets/counter-BLXfQQ6R.js","assets/device-DhOZN3TO.js","assets/device-DxhmA9hW.js","assets/device-DfKVgx7A.js","assets/bat-BERY8z9f.js","assets/device-C9aR_ErT.js","assets/device-8genQHND.js","assets/inverter-B88OrxMD.js","assets/device-DoYhIPYo.js","assets/counter-QsKjzQAu.js","assets/device-DXOtDi9V.js","assets/counter-hPhZIn1G.js","assets/device-BdmFfYpU.js","assets/bat-DwRFcEFG.js","assets/counter-CEU7NcUL.js","assets/device-dqP8cZ7r.js","assets/inverter-Bwj64g5e.js","assets/counter-DmRpgOsE.js","assets/device-C8-xjyT6.js","assets/inverter-CMmTSLWH.js","assets/device-B8HOK5np.js","assets/device-CMS4ZH9M.js","assets/counter-CXEiOT31.js","assets/device-DSzaLUMX.js","assets/inverter-lozsDiob.js","assets/bat-jEZsteDp.js","assets/device-CqqnDv7m.js","assets/bat-Dw1dp4yk.js","assets/counter-DwjPMM-K.js","assets/device-BkT_aSiu.js","assets/inverter-Dd8Zt71F.js","assets/bat-DAoCRKqd.js","assets/counter_sm-C8EnC_ax.js","assets/device-B1gW7XBg.js","assets/inverter_production_meter-BhLy0jS8.js","assets/inverter_secondary-Cke98mZd.js","assets/bat-XK6ruyYp.js","assets/counter-DaNvZOHB.js","assets/device-CJt9s3lV.js","assets/inverter-Da945LLX.js","assets/bat-26IrZ19X.js","assets/counter-BlNNf5pm.js","assets/device-Bz8u2WPE.js","assets/inverter-YmiFDBbL.js","assets/bat-DgzuvGkr.js","assets/counter-BT5q5wk9.js","assets/device-CLljSgUf.js","assets/inverter-f4xqdlX6.js","assets/counter-BHm4u10N.js","assets/bat-DtUSWouQ.js","assets/device-BPTQIU5L.js","assets/device-CJ9ee9IO.js","assets/device-2ydQEeHL.js","assets/device-CMt4xRX4.js","assets/bat-B0JSSnLj.js","assets/counter--_w9piHB.js","assets/device-CJ3OjUU2.js","assets/inverter-BpKMExBm.js","assets/device-B7DCatpp.js","assets/counter-CuyIQkwJ.js","assets/device-64nbgpYC.js","assets/bat-CnxJ24UF.js","assets/counter-CelzGZK-.js","assets/device-CgG28OWw.js","assets/inverter-7soLwDob.js","assets/device-B4WlrUah.js","assets/inverter-yrrMEiBw.js","assets/counter-6OwhKOcX.js","assets/device-D4Gw0lZJ.js","assets/inverter-CkuUw0Yu.js","assets/counter-Ckg8eTmY.js","assets/device-DE8Sn0RG.js","assets/inverter-CB0x6P9A.js","assets/device-CcmT-XYr.js","assets/bat-B4mETs5R.js","assets/counter-CyFXwCq_.js","assets/device-DHMJ0YEs.js","assets/counter-DEQJUFuW.js","assets/device-0LygQjSp.js","assets/device-GL-gGFSm.js","assets/inverter-CN_ruNlm.js","assets/device-BnrlrcLl.js","assets/bat--jkW4uM1.js","assets/device-DajujJNO.js","assets/bat-CQPOUTj3.js","assets/counter-DW8E1juF.js","assets/device-B0uzBvUm.js","assets/inverter-5EBX0iZo.js","assets/device-Djcanbbk.js","assets/counter-CRWkZPyn.js","assets/device-DSXRbJXc.js","assets/device-DdYCjXX-.js","assets/inverter-BB887ZYt.js","assets/bat-B0T6AimZ.js","assets/bat-BVitR6eQ.js","assets/counter-BCEBVxHj.js","assets/inverter-9sFbkMow.js","assets/bat-BCGKgQxP.js","assets/consumption_counter-Bdpmpdwz.js","assets/counter-DNHoKahk.js","assets/device-CHaeFEyt.js","assets/inverter-DL8Ty732.js","assets/inverter-CopsarJJ.js","assets/counter-CecO70YK.js","assets/device-MHTiTYZF.js","assets/counter-DtJWRRZK.js","assets/device-BJt2AdWR.js","assets/counter-CsLEIGLq.js","assets/device-DJivvwYM.js","assets/inverter-CgUUQeXE.js","assets/bat-DlQIYeS5.js","assets/device-Ce-zEVZN.js","assets/device-3d8A9kvB.js","assets/device-CmVz3KZr.js","assets/counter-Jn3S4DeN.js","assets/device-BsGQfX6W.js","assets/device-rzxKRkPl.js","assets/device-B3RxzTPC.js","assets/bat-DrOtsCLh.js","assets/counter-DyQR5TFM.js","assets/device-B6xK4kG_.js","assets/inverter-Dl-vr0bC.js","assets/counter-CrJU9pQp.js","assets/inverter-DrtnNh9-.js","assets/bat-Cn1EQGgB.js","assets/bat_smart_energy-CXDoZsZR.js","assets/counter-CC6Wx6xY.js","assets/device-TuHf60ob.js","assets/inverter-zzkwTxc_.js","assets/bat-EML-jKM6.js","assets/device-N5GdJSbQ.js","assets/device-DsVDr5dU.js","assets/counter-D7_oD-KG.js","assets/device-Cv_jSwrm.js","assets/inverter-D7eVv_21.js","assets/device-BSlk0jml.js","assets/device-Pg4epvz-.js","assets/bat-BbH2OvqQ.js","assets/device-B6NzT0C2.js","assets/inverter-BaOo9WeK.js","assets/counter-CTI3HQV5.js","assets/device-DdrUDEK_.js","assets/device-Xoa0qNQw.js","assets/inverter-CZxBgkMq.js","assets/device-Dqxkpm4s.js","assets/device-0TBG9Kdm.js","assets/bat-_7mtDj_h.js","assets/counter-0uEca16j.js","assets/device-ByIPJ75u.js","assets/external_inverter-yhBlc68v.js","assets/inverter-BI2ZqzaW.js","assets/bat-ByCHTSc9.js","assets/counter_maxstorage-Dfob-vfT.js","assets/device-CKqZ-eL3.js","assets/inverter-Bk86qHNm.js","assets/inverter_maxstorage-Da9O-iNa.js","assets/device-DaUzDfJC.js","assets/bat-eF5oA3Oa.js","assets/counter-DB0QI8WO.js","assets/device-Cu0yn-TS.js","assets/inverter-BvYIme5g.js","assets/bat-DZNpCoR7.js","assets/counter-D0K3UCGT.js","assets/counter_consumption-D5PXSIy2.js","assets/device-BpIfpmVY.js","assets/bat-Dbv3vNU1.js","assets/device-BSo6UKEK.js","assets/inverter-m3LVq5tF.js","assets/device-B9Y-E4ZO.js","assets/device-vwuASijr.js","assets/device-B-Mmd5Ze.js","assets/device-BPisqhc7.js","assets/device-DzDhZ3zK.js","assets/device-Cv-hQ-5K.js","assets/counter-CZ_dQPx3.js","assets/device-Cg5a2DJ_.js","assets/counter-CyagC1co.js","assets/device-CiV4hgD_.js","assets/device-C3SynQKw.js","assets/device-CiFemq5S.js","assets/inverter-YdmHIKyl.js","assets/bat-g-gN6DNl.js","assets/counter-B4eDF7ya.js","assets/device-BYcmVGRd.js","assets/inverter-DhjTWscc.js","assets/device-DYUFbFFV.js","assets/counter-CPpOsUI8.js","assets/device-BiPl0Xry.js","assets/inverter-BLcG2ney.js","assets/device-C4M0XOfA.js","assets/inverter-DLWFTpaZ.js"])))=>i.map(i=>d[i]); -import{F as q,l as U,d as S,y as G,as as K,aj as N,a4 as $,a3 as H,a2 as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as e,C as J}from"./index-CyH1Au4V.js";import{_ as C}from"./dynamic-import-helper-BheWnx7M.js";import{_ as D,l as p,k as s,e as g,y as E,q as i,A as v,J as O,m as d,x as l,a1 as z,a2 as Z,u as L,K as f,L as k,j as Q}from"./vendor-Bo8v-nQD.js";const X={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},j=D(X,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),Y={name:"DeviceFallback",mixins:[j]},ee={class:"device-fallback"},oe={key:1};function te(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ee,[Object.keys(t.device.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Gerät-Typ "'+O(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",oe,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+O(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=D(Y,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[j],props:{component:{type:Object,required:!0}}},re=D(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ue,[Object.keys(t.component.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Komponenten-Typ "'+O(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",de,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+O(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=D(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){return console.debug(`loading component: ${this.device?.type} / ${this.component?.type}`),this.component!==void 0?z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-C-avdMqj.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/bat.vue":()=>e(()=>import("./bat-CE8ZvzxW.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-BjgcGLL9.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-CJ5CONRY.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/counter.vue":()=>e(()=>import("./counter-BLXfQQ6R.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-DhOZN3TO.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DxhmA9hW.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-DfKVgx7A.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/bat.vue":()=>e(()=>import("./bat-BERY8z9f.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-C9aR_ErT.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-8genQHND.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-B88OrxMD.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-DoYhIPYo.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-QsKjzQAu.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-DXOtDi9V.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/counter.vue":()=>e(()=>import("./counter-hPhZIn1G.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-BdmFfYpU.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/bat.vue":()=>e(()=>import("./bat-DwRFcEFG.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/counter.vue":()=>e(()=>import("./counter-CEU7NcUL.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-dqP8cZ7r.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-Bwj64g5e.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-DmRpgOsE.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-C8-xjyT6.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-CMmTSLWH.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-B8HOK5np.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-CMS4ZH9M.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-CXEiOT31.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-DSzaLUMX.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-lozsDiob.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/bat.vue":()=>e(()=>import("./bat-jEZsteDp.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-CqqnDv7m.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-Dw1dp4yk.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-DwjPMM-K.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-BkT_aSiu.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-Dd8Zt71F.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-DAoCRKqd.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-C8EnC_ax.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-B1gW7XBg.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_production_meter.vue":()=>e(()=>import("./inverter_production_meter-BhLy0jS8.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-Cke98mZd.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10])),"./generic/http/bat.vue":()=>e(()=>import("./bat-XK6ruyYp.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10])),"./generic/http/counter.vue":()=>e(()=>import("./counter-DaNvZOHB.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-CJt9s3lV.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-Da945LLX.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8,9,10])),"./generic/json/bat.vue":()=>e(()=>import("./bat-26IrZ19X.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10])),"./generic/json/counter.vue":()=>e(()=>import("./counter-BlNNf5pm.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-Bz8u2WPE.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-YmiFDBbL.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-DgzuvGkr.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-BT5q5wk9.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CLljSgUf.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-f4xqdlX6.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8,9,10])),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-BHm4u10N.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-DtUSWouQ.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-BPTQIU5L.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-CJ9ee9IO.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-2ydQEeHL.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-CMt4xRX4.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-B0JSSnLj.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter--_w9piHB.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-CJ3OjUU2.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-BpKMExBm.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-B7DCatpp.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-CuyIQkwJ.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-64nbgpYC.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/bat.vue":()=>e(()=>import("./bat-CnxJ24UF.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/counter.vue":()=>e(()=>import("./counter-CelzGZK-.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-CgG28OWw.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/inverter.vue":()=>e(()=>import("./inverter-7soLwDob.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-B4WlrUah.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-yrrMEiBw.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-6OwhKOcX.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-D4Gw0lZJ.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-CkuUw0Yu.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/counter.vue":()=>e(()=>import("./counter-Ckg8eTmY.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-DE8Sn0RG.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/inverter.vue":()=>e(()=>import("./inverter-CB0x6P9A.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-CcmT-XYr.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/bat.vue":()=>e(()=>import("./bat-B4mETs5R.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-CyFXwCq_.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-DHMJ0YEs.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-DEQJUFuW.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-0LygQjSp.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-GL-gGFSm.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-CN_ruNlm.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-BnrlrcLl.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/bat.vue":()=>e(()=>import("./bat--jkW4uM1.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-DajujJNO.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-CQPOUTj3.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-DW8E1juF.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-B0uzBvUm.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-5EBX0iZo.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-Djcanbbk.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-CRWkZPyn.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-DSXRbJXc.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DdYCjXX-.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-BB887ZYt.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-B0T6AimZ.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-BVitR6eQ.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-BCEBVxHj.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-9sFbkMow.js"),__vite__mapDeps([110,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-BCGKgQxP.js"),__vite__mapDeps([111,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-Bdpmpdwz.js"),__vite__mapDeps([112,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-DNHoKahk.js"),__vite__mapDeps([113,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-CHaeFEyt.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-DL8Ty732.js"),__vite__mapDeps([115,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-CopsarJJ.js"),__vite__mapDeps([116,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/counter.vue":()=>e(()=>import("./counter-CecO70YK.js"),__vite__mapDeps([117,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-MHTiTYZF.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-DtJWRRZK.js"),__vite__mapDeps([119,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-BJt2AdWR.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-CsLEIGLq.js"),__vite__mapDeps([121,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-DJivvwYM.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-CgUUQeXE.js"),__vite__mapDeps([123,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/bat.vue":()=>e(()=>import("./bat-DlQIYeS5.js"),__vite__mapDeps([124,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-Ce-zEVZN.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-3d8A9kvB.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-CmVz3KZr.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-Jn3S4DeN.js"),__vite__mapDeps([128,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-BsGQfX6W.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-rzxKRkPl.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-B3RxzTPC.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-DrOtsCLh.js"),__vite__mapDeps([132,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-DyQR5TFM.js"),__vite__mapDeps([133,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-B6xK4kG_.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-Dl-vr0bC.js"),__vite__mapDeps([135,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-CrJU9pQp.js"),__vite__mapDeps([136,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-DrtnNh9-.js"),__vite__mapDeps([137,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-Cn1EQGgB.js"),__vite__mapDeps([138,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-CXDoZsZR.js"),__vite__mapDeps([139,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-CC6Wx6xY.js"),__vite__mapDeps([140,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-TuHf60ob.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-zzkwTxc_.js"),__vite__mapDeps([142,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-EML-jKM6.js"),__vite__mapDeps([143,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-N5GdJSbQ.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-DsVDr5dU.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-D7_oD-KG.js"),__vite__mapDeps([146,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-Cv_jSwrm.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-D7eVv_21.js"),__vite__mapDeps([148,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-BSlk0jml.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-Pg4epvz-.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/bat.vue":()=>e(()=>import("./bat-BbH2OvqQ.js"),__vite__mapDeps([151,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-B6NzT0C2.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/inverter.vue":()=>e(()=>import("./inverter-BaOo9WeK.js"),__vite__mapDeps([153,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-CTI3HQV5.js"),__vite__mapDeps([154,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-DdrUDEK_.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-Xoa0qNQw.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-CZxBgkMq.js"),__vite__mapDeps([157,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-Dqxkpm4s.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-0TBG9Kdm.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-_7mtDj_h.js"),__vite__mapDeps([160,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-0uEca16j.js"),__vite__mapDeps([161,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-ByIPJ75u.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-yhBlc68v.js"),__vite__mapDeps([163,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-BI2ZqzaW.js"),__vite__mapDeps([164,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-ByCHTSc9.js"),__vite__mapDeps([165,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/counter_maxstorage.vue":()=>e(()=>import("./counter_maxstorage-Dfob-vfT.js"),__vite__mapDeps([166,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-CKqZ-eL3.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-Bk86qHNm.js"),__vite__mapDeps([168,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter_maxstorage.vue":()=>e(()=>import("./inverter_maxstorage-Da9O-iNa.js"),__vite__mapDeps([169,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DaUzDfJC.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/bat.vue":()=>e(()=>import("./bat-eF5oA3Oa.js"),__vite__mapDeps([171,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/counter.vue":()=>e(()=>import("./counter-DB0QI8WO.js"),__vite__mapDeps([172,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-Cu0yn-TS.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-BvYIme5g.js"),__vite__mapDeps([174,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-DZNpCoR7.js"),__vite__mapDeps([175,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-D0K3UCGT.js"),__vite__mapDeps([176,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-D5PXSIy2.js"),__vite__mapDeps([177,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-BpIfpmVY.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/bat.vue":()=>e(()=>import("./bat-Dbv3vNU1.js"),__vite__mapDeps([179,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-BSo6UKEK.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-m3LVq5tF.js"),__vite__mapDeps([181,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-B9Y-E4ZO.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-vwuASijr.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-B-Mmd5Ze.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-BPisqhc7.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-DzDhZ3zK.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-Cv-hQ-5K.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-CZ_dQPx3.js"),__vite__mapDeps([188,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-Cg5a2DJ_.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-CyagC1co.js"),__vite__mapDeps([190,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-CiV4hgD_.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-C3SynQKw.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-CiFemq5S.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-YdmHIKyl.js"),__vite__mapDeps([194,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/bat.vue":()=>e(()=>import("./bat-g-gN6DNl.js"),__vite__mapDeps([195,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/counter.vue":()=>e(()=>import("./counter-B4eDF7ya.js"),__vite__mapDeps([196,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-BYcmVGRd.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-DhjTWscc.js"),__vite__mapDeps([198,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-DYUFbFFV.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-CPpOsUI8.js"),__vite__mapDeps([200,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-BiPl0Xry.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-BLcG2ney.js"),__vite__mapDeps([202,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-C4M0XOfA.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-DLWFTpaZ.js"),__vite__mapDeps([204,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/${this.component?.type}.vue`,4),errorComponent:se}):z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-C-avdMqj.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-BjgcGLL9.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-CJ5CONRY.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-DhOZN3TO.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DxhmA9hW.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-DfKVgx7A.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-C9aR_ErT.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-8genQHND.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-DoYhIPYo.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-DXOtDi9V.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-BdmFfYpU.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-dqP8cZ7r.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-C8-xjyT6.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-B8HOK5np.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-CMS4ZH9M.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-DSzaLUMX.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-CqqnDv7m.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-BkT_aSiu.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-B1gW7XBg.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-CJt9s3lV.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-Bz8u2WPE.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CLljSgUf.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-BPTQIU5L.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-CJ9ee9IO.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-2ydQEeHL.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-CMt4xRX4.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-CJ3OjUU2.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-B7DCatpp.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-64nbgpYC.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-CgG28OWw.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-B4WlrUah.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-D4Gw0lZJ.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-DE8Sn0RG.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-CcmT-XYr.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-DHMJ0YEs.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-0LygQjSp.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-GL-gGFSm.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-BnrlrcLl.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-DajujJNO.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-B0uzBvUm.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-Djcanbbk.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-DSXRbJXc.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DdYCjXX-.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-CHaeFEyt.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-MHTiTYZF.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-BJt2AdWR.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-DJivvwYM.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-Ce-zEVZN.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-3d8A9kvB.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-CmVz3KZr.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-BsGQfX6W.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-rzxKRkPl.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-B3RxzTPC.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-B6xK4kG_.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-TuHf60ob.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-N5GdJSbQ.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-DsVDr5dU.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-Cv_jSwrm.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-BSlk0jml.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-Pg4epvz-.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-B6NzT0C2.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-DdrUDEK_.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-Xoa0qNQw.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-Dqxkpm4s.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-0TBG9Kdm.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-ByIPJ75u.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-CKqZ-eL3.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DaUzDfJC.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-Cu0yn-TS.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-BpIfpmVY.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-BSo6UKEK.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-B9Y-E4ZO.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-vwuASijr.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-B-Mmd5Ze.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-BPisqhc7.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-DzDhZ3zK.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-Cv-hQ-5K.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-Cg5a2DJ_.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-CiV4hgD_.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-C3SynQKw.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-CiFemq5S.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-BYcmVGRd.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-DYUFbFFV.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-BiPl0Xry.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-C4M0XOfA.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/device.vue`,4),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,u,m,n,_){return s(),E(Z(_.getComponent()),{device:u.device,component:u.component,"component-id":u.component?u.component.id:void 0,"component-type":u.component?u.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=c=>_.updateConfiguration(c))},null,40,["device","component","component-id","component-type"])}const pe=D(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);U.add(S,G,K,N,$,H,F);const ce={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:q,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/configurable/devices_components",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!0},{topic:"openWB/system/device/+/config",writeable:!0}],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices(){const t=this.getWildcardTopics("openWB/system/device/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},installedComponents(){const t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},vendorList:{get(){const t=this.$store.state.mqtt["openWB/system/configurable/devices_components"];return t?Object.entries(t).map(([o,u])=>{const m=u?.vendors||{};return{label:u?.group_name||"",options:Object.entries(m).map(([n,_])=>({value:[o,n],text:_?.vendor_name||""})).sort((n,_)=>n.text.localeCompare(_.text))}}).sort((o,u)=>-o.label.localeCompare(u.label)):[]}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;const u=this.$store.state.mqtt["openWB/system/configurable/devices_components"]?.[t]?.vendors?.[o]?.devices;return u?Object.entries(u).map(([m,n])=>({value:[o,m],text:n.device_name})).sort((m,n)=>m.text.localeCompare(n.text)):[]}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,u){u.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,u,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:u,deviceVendor:o,type:m}})},removeComponentModal(t,o,u,m,n){n.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:u},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let u=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(u=Object.entries(m.vendors[t].devices[o].components).map(([_,c])=>({value:_,text:c.component_name}))),!1):!0),u},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},le={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},Oe={key:1},Te={key:0};function Ie(t,o,u,m,n,_){const c=p("openwb-base-modal-dialog"),A=p("router-link"),I=p("openwb-base-alert"),P=p("font-awesome-icon"),b=p("openwb-base-avatar"),R=p("openwb-base-text-input"),x=p("openwb-config-proxy"),B=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),M=p("openwb-base-submit-buttons");return s(),g(f,null,[d(c,{show:n.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeDevice},{default:i(()=>[v(' Willst Du das Gerät "'+O(n.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),d(c,{show:n.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeComponent},{default:i(()=>[v(' Willst Du die Komponente "'+O(n.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l("div",le,[l("form",Ee,[u.installAssistantActive?L("",!0):(s(),E(I,{key:0,subtype:"info"},{default:i(()=>[o[7]||(o[7]=v(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),d(A,{to:"/LoadManagementConfiguration"},{default:i(()=>[...o[6]||(o[6]=[v(" Lastmanagement ",-1)])]),_:1}),o[8]||(o[8]=v(" zu prüfen!",-1)),o[9]||(o[9]=l("br",null,null,-1)),o[10]||(o[10]=v(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung von Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1})),d(w,{title:"Geräte und Komponenten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(s(),g("div",ge,[d(I,{subtype:"info"},{default:i(()=>[...o[11]||(o[11]=[v(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(s(),g("div",Ve,[(s(!0),g(f,null,k(_.installedDevices,(r,h)=>(s(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:i(()=>[d(P,{icon:["fas","network-wired"]}),v(" "+O(r?.name),1)]),actions:i(a=>[a.collapsed?(s(),g("div",Oe,[(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),V=>(s(),E(b,{key:V?.id,class:Q("ml-1 bg-"+_.getComponentTypeClass(V?.type))},{default:i(()=>[d(P,{icon:_.getComponentTypeIcon(V?.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:V=>_.removeDeviceModal(r?.id,r?.name,V)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":r?.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=l("hr",null,null,-1)),d(x,{device:r,"onUpdate:configuration":a=>_.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=l("hr",null,null,-1)),d(B,null,{default:i(()=>[...o[12]||(o[12]=[v("Komponenten",-1)])]),_:1}),_.deviceHasConfiguredComponents(r?.id)?L("",!0):(s(),E(I,{key:0,subtype:"warning"},{default:i(()=>[...o[13]||(o[13]=[v(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1})),(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),(a,V)=>(s(),E(w,{key:a?.id,collapsible:!0,collapsed:!0,subtype:_.getComponentTypeClass(a?.type)},{header:i(()=>[d(P,{icon:_.getComponentTypeIcon(a?.type)},null,8,["icon"]),v(" "+O(a?.name),1)]),actions:i(T=>[T.collapsed?L("",!0):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:W=>_.removeComponentModal(r?.id,a?.id,a?.type,a?.name,W)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":a?.name,"onUpdate:modelValue":T=>t.updateState(V,T,"name")},null,8,["model-value","onUpdate:modelValue"]),d(R,{title:"Hersteller",subtype:"text","model-value":a?.info.manufacturer,"onUpdate:modelValue":T=>t.updateState(V,T,"info.manufacturer")},{help:i(()=>[...o[14]||(o[14]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),d(R,{title:"Modell",subtype:"text","model-value":a?.info.model,"onUpdate:modelValue":T=>t.updateState(V,T,"info.model")},{help:i(()=>[...o[15]||(o[15]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=l("hr",null,null,-1)),d(x,{device:r,component:a,"onUpdate:configuration":T=>_.updateConfiguration(V,T)},null,8,["device","component","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),o[21]||(o[21]=l("hr",null,null,-1)),_.getComponentList(r?.vendor,r?.type)?.length?(s(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:_.getComponentList(r?.vendor,r?.type),"model-value":n.componentToAdd[r?.id],"add-button":!0,"onUpdate:modelValue":a=>n.componentToAdd[r?.id]=a,"onInput:add":a=>_.addComponent(r?.id,r?.vendor,r?.type,n.componentToAdd[r?.id])},{help:i(()=>[...o[17]||(o[17]=[v(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue","onInput:add"])):(s(),E(I,{key:2,subtype:"info"},{default:i(()=>[...o[18]||(o[18]=[v(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1}))]),_:2},1024))),128)),Object.keys(_.installedDevices)?.length>0?(s(),g("hr",Te)):L("",!0),d(y,{modelValue:n.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=r=>n.selectedVendor=r),title:"Hersteller","not-selected":"Bitte auswählen",groups:_.vendorList},null,8,["modelValue","groups"]),d(y,{modelValue:n.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=r=>n.deviceToAdd=r),o[2]||(o[2]=r=>n.deviceToAdd=r)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:n.selectedVendor===void 0,options:_.deviceList,"model-value":n.deviceToAdd,"add-button":!0,"onInput:add":_.addDevice},{help:i(()=>[...o[22]||(o[22]=[l("p",null,[v(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),l("br"),v(' 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),l("p",null,[v(' 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.'),l("br"),v(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),l("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])]),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),d(M,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:o[4]||(o[4]=r=>t.$emit("reset")),onDefaults:o[5]||(o[5]=r=>t.$emit("defaults"))})])])],64)}const De=D(ce,[["render",Ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),fe=Object.freeze(Object.defineProperty({__proto__:null,default:De},Symbol.toStringTag,{value:"Module"}));export{re as C,j as D,De as H,fe as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/device-I28jsbnC.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/bat-LvnuQvaR.js","assets/device-jAbWqT5Y.js","assets/device-B3JnKzHE.js","assets/counter-CNaWH3hH.js","assets/device-CTvTEy9o.js","assets/device-DteT1ftK.js","assets/device-BJXiIXwb.js","assets/bat-CWWcSN5h.js","assets/device-B--mch3K.js","assets/device-DJRFYW8u.js","assets/inverter-Dt-0cVGJ.js","assets/device-B5V0NVAx.js","assets/counter-C68GXHgb.js","assets/device-D86kZoMv.js","assets/counter-BLEEk5vk.js","assets/device-DgWAC9VW.js","assets/bat-ClqXmjbq.js","assets/counter-CdY4HvNb.js","assets/device-DuOQfDmg.js","assets/inverter-DgFOEAbi.js","assets/counter-DoLu61P3.js","assets/device-MN8XeDgn.js","assets/inverter-D0gOX-_P.js","assets/device-BqKfOrDp.js","assets/device-Ge0sqbOD.js","assets/counter-C7uERgGk.js","assets/device-BcaNUjQJ.js","assets/inverter-ACq6R7xB.js","assets/bat-BFJihL5b.js","assets/device-DsVqYSqX.js","assets/bat-CcOi7qeq.js","assets/counter-BmG9nVGY.js","assets/device-DBsitINB.js","assets/inverter-0RghKIsx.js","assets/bat-DYO-TJpZ.js","assets/counter_sm-CDb5bKKk.js","assets/device-QTYXfo_2.js","assets/inverter_production_meter-Coy7d4cu.js","assets/inverter_secondary-D3yQDLVg.js","assets/bat-C5vCaakP.js","assets/counter-BLIDMuvJ.js","assets/device-C5UrZly-.js","assets/inverter-CbwWOoTg.js","assets/bat-C-8Z5eMd.js","assets/counter-5nvynE8p.js","assets/device-BKXFo9ZM.js","assets/inverter-DJnr53ar.js","assets/bat-BtNiOzPi.js","assets/counter-C7jGbtjK.js","assets/device-CsogXwrs.js","assets/inverter-CTZt8kgW.js","assets/counter-CG8UPJNQ.js","assets/bat-DfC3LldK.js","assets/device-BnxlY63G.js","assets/device-NDckeTVc.js","assets/device-f9fnP_KM.js","assets/device-D89U0LFt.js","assets/bat-Ikmja4Vs.js","assets/counter-PiIXsMjs.js","assets/device-BzBPeuLF.js","assets/inverter-B-NdAxCX.js","assets/device-CFpXw0Yl.js","assets/counter-C5lMgFh-.js","assets/device-D7cbEhiT.js","assets/bat-Cso_FjAB.js","assets/counter-N5EbHNfB.js","assets/device-NkTYsz5d.js","assets/inverter-Ci3SfwIV.js","assets/device-t3OGij3M.js","assets/inverter-hdDYm9Uf.js","assets/counter-CqYIUc0x.js","assets/device-D6aGb8Ub.js","assets/inverter-CbPKaOUd.js","assets/counter-CALcAyno.js","assets/device-jjyvBZq_.js","assets/inverter-AYViTSOI.js","assets/device-Cu_Afhxv.js","assets/bat-BAPssBwn.js","assets/counter-JDvJyDSb.js","assets/device-iH7FSbYH.js","assets/counter-CFHdp5Rg.js","assets/device-B-wUAE96.js","assets/device-3lw2SJGr.js","assets/inverter-DBFgbhVo.js","assets/device-JZQCuW65.js","assets/bat-DM6pfv3v.js","assets/device-BquvfqB_.js","assets/bat-DM7fO5hq.js","assets/counter-B2RD41ZG.js","assets/device-AZcRdq4E.js","assets/inverter-B8AbK5LS.js","assets/device-BIKPUvlF.js","assets/counter-xlfblTPy.js","assets/device-C2Py-T5Y.js","assets/device-DwiBUt_R.js","assets/inverter-CDYkCixE.js","assets/bat-C_Uav9BA.js","assets/bat-BO99Yxvy.js","assets/counter-DbRhyf8N.js","assets/inverter-DMLtmP39.js","assets/bat-BLn3ChiW.js","assets/consumption_counter-s9tb-xVk.js","assets/counter-C9TFKAZS.js","assets/device--YYhIuOQ.js","assets/inverter-D8I4F0kA.js","assets/inverter-9SjCnF3G.js","assets/counter-CBsxLQUz.js","assets/device-uMAcYGWD.js","assets/counter-D_yHfG7M.js","assets/device-B5RB3kWv.js","assets/counter-DqUnAcpd.js","assets/device-CrT-Q_nn.js","assets/inverter-CzPXa6it.js","assets/bat-CrV_lSyl.js","assets/device-CnqEvKdN.js","assets/device-D03RaIUC.js","assets/device-nVYvqlQr.js","assets/counter-CWRQi4AZ.js","assets/device-Djudo4I7.js","assets/device-CUOUt23w.js","assets/device-CT8s8OAc.js","assets/bat-Cjlfvz8n.js","assets/counter-C4Bc-LFa.js","assets/device-DqksrJOB.js","assets/inverter-oQ0jJI7j.js","assets/counter-DlTwNWk_.js","assets/inverter-D8ojL_BV.js","assets/bat-DpnEphe_.js","assets/bat_smart_energy-Czb4GYtP.js","assets/counter-C_KHyjgh.js","assets/device-C7Bv2cYw.js","assets/inverter-DIStW2Xn.js","assets/bat-CjexnhY1.js","assets/device-BwzMCkFy.js","assets/device-BuyzFtIE.js","assets/counter-B08rzQq5.js","assets/device-DriAiQTh.js","assets/inverter-9vdoOv_r.js","assets/device-DrU2EIBQ.js","assets/device-DjFgC3FH.js","assets/bat-g5CpLXKe.js","assets/device-DLe5rJBe.js","assets/inverter-8vpAsJFV.js","assets/counter-C3j9bCHZ.js","assets/device-Bkj5ye31.js","assets/device-DvHqZZk9.js","assets/inverter-DXCXYnzH.js","assets/device-DZbbGgNj.js","assets/device-DW4k7y4-.js","assets/bat-ChvTGfrS.js","assets/counter-D8dbm9sC.js","assets/device-zXBzry27.js","assets/external_inverter-v9N8YFy_.js","assets/inverter-BbajKr0y.js","assets/bat-CA1pDpyc.js","assets/counter_maxstorage-BPEg9Ghm.js","assets/device-Akr-Eknl.js","assets/inverter-D9Thnvbs.js","assets/inverter_maxstorage-DeCO1HV-.js","assets/device-DwFvJqbg.js","assets/bat-DjyCL_fH.js","assets/counter-CDmfO7fm.js","assets/device-ZglIRb13.js","assets/inverter-D8K2CFDi.js","assets/bat-P6JfJZmF.js","assets/counter-BWI3WRrg.js","assets/counter_consumption-DMUt0xYl.js","assets/device-CZhiiWs3.js","assets/bat-CW5lqe8H.js","assets/device-DntiDAu1.js","assets/inverter-ChBLwrbt.js","assets/device-CX454zoq.js","assets/device-D2Tob0bp.js","assets/device-Fu4__SF-.js","assets/device-Cww7LhK6.js","assets/device-fRG5_uqe.js","assets/device-BdzJGZry.js","assets/counter-CAioz9cY.js","assets/device-i-cc32LZ.js","assets/counter-CcBkZQq0.js","assets/device-CkLXsAHJ.js","assets/device-CkVVX1eZ.js","assets/device-ByU2v5ON.js","assets/inverter-YRLdoDau.js","assets/bat-DGxxvF09.js","assets/counter-Bq_4dQ6X.js","assets/device-DiQe2xTf.js","assets/inverter-DSMmU0bk.js","assets/device-BqQNuquo.js","assets/counter-D2NORLkt.js","assets/device-DBTWS1zk.js","assets/inverter-CQscUjQi.js","assets/device-BUqTyqae.js","assets/inverter-BjdsHouB.js"])))=>i.map(i=>d[i]); +import{F as q,l as U,d as S,y as G,as as K,aj as N,a4 as $,a3 as H,a2 as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as e,C as J}from"./index-D_eD74fL.js";import{_ as C}from"./dynamic-import-helper-BheWnx7M.js";import{_ as D,l as p,k as s,e as g,y as E,q as i,A as v,J as O,m as d,x as l,a1 as z,a2 as Z,u as L,K as f,L as k,j as Q}from"./vendor-Bo8v-nQD.js";const X={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},j=D(X,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),Y={name:"DeviceFallback",mixins:[j]},ee={class:"device-fallback"},oe={key:1};function te(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ee,[Object.keys(t.device.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Gerät-Typ "'+O(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",oe,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+O(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=D(Y,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[j],props:{component:{type:Object,required:!0}}},re=D(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ue,[Object.keys(t.component.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Komponenten-Typ "'+O(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",de,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+O(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=D(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){return console.debug(`loading component: ${this.device?.type} / ${this.component?.type}`),this.component!==void 0?z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-I28jsbnC.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/bat.vue":()=>e(()=>import("./bat-LvnuQvaR.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-jAbWqT5Y.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-B3JnKzHE.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/counter.vue":()=>e(()=>import("./counter-CNaWH3hH.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-CTvTEy9o.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DteT1ftK.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-BJXiIXwb.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/bat.vue":()=>e(()=>import("./bat-CWWcSN5h.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-B--mch3K.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-DJRFYW8u.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-Dt-0cVGJ.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-B5V0NVAx.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-C68GXHgb.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-D86kZoMv.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/counter.vue":()=>e(()=>import("./counter-BLEEk5vk.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-DgWAC9VW.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/bat.vue":()=>e(()=>import("./bat-ClqXmjbq.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/counter.vue":()=>e(()=>import("./counter-CdY4HvNb.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-DuOQfDmg.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-DgFOEAbi.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-DoLu61P3.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-MN8XeDgn.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-D0gOX-_P.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-BqKfOrDp.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-Ge0sqbOD.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-C7uERgGk.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-BcaNUjQJ.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-ACq6R7xB.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/bat.vue":()=>e(()=>import("./bat-BFJihL5b.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-DsVqYSqX.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-CcOi7qeq.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-BmG9nVGY.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-DBsitINB.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-0RghKIsx.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-DYO-TJpZ.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-CDb5bKKk.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-QTYXfo_2.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_production_meter.vue":()=>e(()=>import("./inverter_production_meter-Coy7d4cu.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-D3yQDLVg.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10])),"./generic/http/bat.vue":()=>e(()=>import("./bat-C5vCaakP.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10])),"./generic/http/counter.vue":()=>e(()=>import("./counter-BLIDMuvJ.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-C5UrZly-.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-CbwWOoTg.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8,9,10])),"./generic/json/bat.vue":()=>e(()=>import("./bat-C-8Z5eMd.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10])),"./generic/json/counter.vue":()=>e(()=>import("./counter-5nvynE8p.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-BKXFo9ZM.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-DJnr53ar.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-BtNiOzPi.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-C7jGbtjK.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CsogXwrs.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-CTZt8kgW.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8,9,10])),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-CG8UPJNQ.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-DfC3LldK.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-BnxlY63G.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-NDckeTVc.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-f9fnP_KM.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-D89U0LFt.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-Ikmja4Vs.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-PiIXsMjs.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-BzBPeuLF.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-B-NdAxCX.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-CFpXw0Yl.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-C5lMgFh-.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-D7cbEhiT.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/bat.vue":()=>e(()=>import("./bat-Cso_FjAB.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/counter.vue":()=>e(()=>import("./counter-N5EbHNfB.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-NkTYsz5d.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/inverter.vue":()=>e(()=>import("./inverter-Ci3SfwIV.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-t3OGij3M.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-hdDYm9Uf.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-CqYIUc0x.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-D6aGb8Ub.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-CbPKaOUd.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/counter.vue":()=>e(()=>import("./counter-CALcAyno.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-jjyvBZq_.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/inverter.vue":()=>e(()=>import("./inverter-AYViTSOI.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-Cu_Afhxv.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/bat.vue":()=>e(()=>import("./bat-BAPssBwn.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-JDvJyDSb.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-iH7FSbYH.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-CFHdp5Rg.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-B-wUAE96.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-3lw2SJGr.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-DBFgbhVo.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-JZQCuW65.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/bat.vue":()=>e(()=>import("./bat-DM6pfv3v.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-BquvfqB_.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-DM7fO5hq.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-B2RD41ZG.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-AZcRdq4E.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-B8AbK5LS.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-BIKPUvlF.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-xlfblTPy.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-C2Py-T5Y.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DwiBUt_R.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-CDYkCixE.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-C_Uav9BA.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-BO99Yxvy.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-DbRhyf8N.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-DMLtmP39.js"),__vite__mapDeps([110,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-BLn3ChiW.js"),__vite__mapDeps([111,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-s9tb-xVk.js"),__vite__mapDeps([112,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-C9TFKAZS.js"),__vite__mapDeps([113,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device--YYhIuOQ.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-D8I4F0kA.js"),__vite__mapDeps([115,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-9SjCnF3G.js"),__vite__mapDeps([116,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/counter.vue":()=>e(()=>import("./counter-CBsxLQUz.js"),__vite__mapDeps([117,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-uMAcYGWD.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-D_yHfG7M.js"),__vite__mapDeps([119,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-B5RB3kWv.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-DqUnAcpd.js"),__vite__mapDeps([121,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-CrT-Q_nn.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-CzPXa6it.js"),__vite__mapDeps([123,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/bat.vue":()=>e(()=>import("./bat-CrV_lSyl.js"),__vite__mapDeps([124,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-CnqEvKdN.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-D03RaIUC.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-nVYvqlQr.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-CWRQi4AZ.js"),__vite__mapDeps([128,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-Djudo4I7.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-CUOUt23w.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-CT8s8OAc.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-Cjlfvz8n.js"),__vite__mapDeps([132,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-C4Bc-LFa.js"),__vite__mapDeps([133,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-DqksrJOB.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-oQ0jJI7j.js"),__vite__mapDeps([135,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-DlTwNWk_.js"),__vite__mapDeps([136,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-D8ojL_BV.js"),__vite__mapDeps([137,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-DpnEphe_.js"),__vite__mapDeps([138,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-Czb4GYtP.js"),__vite__mapDeps([139,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-C_KHyjgh.js"),__vite__mapDeps([140,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-C7Bv2cYw.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-DIStW2Xn.js"),__vite__mapDeps([142,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-CjexnhY1.js"),__vite__mapDeps([143,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-BwzMCkFy.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-BuyzFtIE.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-B08rzQq5.js"),__vite__mapDeps([146,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-DriAiQTh.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-9vdoOv_r.js"),__vite__mapDeps([148,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-DrU2EIBQ.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-DjFgC3FH.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/bat.vue":()=>e(()=>import("./bat-g5CpLXKe.js"),__vite__mapDeps([151,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-DLe5rJBe.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/inverter.vue":()=>e(()=>import("./inverter-8vpAsJFV.js"),__vite__mapDeps([153,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-C3j9bCHZ.js"),__vite__mapDeps([154,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-Bkj5ye31.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-DvHqZZk9.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-DXCXYnzH.js"),__vite__mapDeps([157,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-DZbbGgNj.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-DW4k7y4-.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-ChvTGfrS.js"),__vite__mapDeps([160,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-D8dbm9sC.js"),__vite__mapDeps([161,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-zXBzry27.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-v9N8YFy_.js"),__vite__mapDeps([163,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-BbajKr0y.js"),__vite__mapDeps([164,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-CA1pDpyc.js"),__vite__mapDeps([165,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/counter_maxstorage.vue":()=>e(()=>import("./counter_maxstorage-BPEg9Ghm.js"),__vite__mapDeps([166,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-Akr-Eknl.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-D9Thnvbs.js"),__vite__mapDeps([168,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter_maxstorage.vue":()=>e(()=>import("./inverter_maxstorage-DeCO1HV-.js"),__vite__mapDeps([169,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DwFvJqbg.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/bat.vue":()=>e(()=>import("./bat-DjyCL_fH.js"),__vite__mapDeps([171,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/counter.vue":()=>e(()=>import("./counter-CDmfO7fm.js"),__vite__mapDeps([172,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-ZglIRb13.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-D8K2CFDi.js"),__vite__mapDeps([174,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-P6JfJZmF.js"),__vite__mapDeps([175,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-BWI3WRrg.js"),__vite__mapDeps([176,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-DMUt0xYl.js"),__vite__mapDeps([177,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-CZhiiWs3.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/bat.vue":()=>e(()=>import("./bat-CW5lqe8H.js"),__vite__mapDeps([179,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-DntiDAu1.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-ChBLwrbt.js"),__vite__mapDeps([181,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-CX454zoq.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-D2Tob0bp.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-Fu4__SF-.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-Cww7LhK6.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-fRG5_uqe.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-BdzJGZry.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-CAioz9cY.js"),__vite__mapDeps([188,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-i-cc32LZ.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-CcBkZQq0.js"),__vite__mapDeps([190,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-CkLXsAHJ.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-CkVVX1eZ.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-ByU2v5ON.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-YRLdoDau.js"),__vite__mapDeps([194,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/bat.vue":()=>e(()=>import("./bat-DGxxvF09.js"),__vite__mapDeps([195,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/counter.vue":()=>e(()=>import("./counter-Bq_4dQ6X.js"),__vite__mapDeps([196,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-DiQe2xTf.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-DSMmU0bk.js"),__vite__mapDeps([198,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-BqQNuquo.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-D2NORLkt.js"),__vite__mapDeps([200,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-DBTWS1zk.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-CQscUjQi.js"),__vite__mapDeps([202,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-BUqTyqae.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-BjdsHouB.js"),__vite__mapDeps([204,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/${this.component?.type}.vue`,4),errorComponent:se}):z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-I28jsbnC.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-jAbWqT5Y.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-B3JnKzHE.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-CTvTEy9o.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DteT1ftK.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-BJXiIXwb.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-B--mch3K.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-DJRFYW8u.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-B5V0NVAx.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-D86kZoMv.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-DgWAC9VW.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-DuOQfDmg.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-MN8XeDgn.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-BqKfOrDp.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-Ge0sqbOD.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-BcaNUjQJ.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-DsVqYSqX.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-DBsitINB.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-QTYXfo_2.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-C5UrZly-.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-BKXFo9ZM.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CsogXwrs.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-BnxlY63G.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-NDckeTVc.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-f9fnP_KM.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-D89U0LFt.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-BzBPeuLF.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-CFpXw0Yl.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-D7cbEhiT.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-NkTYsz5d.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-t3OGij3M.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-D6aGb8Ub.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-jjyvBZq_.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-Cu_Afhxv.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-iH7FSbYH.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-B-wUAE96.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-3lw2SJGr.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-JZQCuW65.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-BquvfqB_.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-AZcRdq4E.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-BIKPUvlF.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-C2Py-T5Y.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DwiBUt_R.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device--YYhIuOQ.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-uMAcYGWD.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-B5RB3kWv.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-CrT-Q_nn.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-CnqEvKdN.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-D03RaIUC.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-nVYvqlQr.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-Djudo4I7.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-CUOUt23w.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-CT8s8OAc.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-DqksrJOB.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-C7Bv2cYw.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-BwzMCkFy.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-BuyzFtIE.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-DriAiQTh.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-DrU2EIBQ.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-DjFgC3FH.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-DLe5rJBe.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-Bkj5ye31.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-DvHqZZk9.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-DZbbGgNj.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-DW4k7y4-.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-zXBzry27.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-Akr-Eknl.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DwFvJqbg.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-ZglIRb13.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-CZhiiWs3.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-DntiDAu1.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-CX454zoq.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-D2Tob0bp.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-Fu4__SF-.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-Cww7LhK6.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-fRG5_uqe.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-BdzJGZry.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-i-cc32LZ.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-CkLXsAHJ.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-CkVVX1eZ.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-ByU2v5ON.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-DiQe2xTf.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-BqQNuquo.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-DBTWS1zk.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-BUqTyqae.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/device.vue`,4),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,u,m,n,_){return s(),E(Z(_.getComponent()),{device:u.device,component:u.component,"component-id":u.component?u.component.id:void 0,"component-type":u.component?u.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=c=>_.updateConfiguration(c))},null,40,["device","component","component-id","component-type"])}const pe=D(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);U.add(S,G,K,N,$,H,F);const ce={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:q,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/configurable/devices_components",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!0},{topic:"openWB/system/device/+/config",writeable:!0}],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices(){const t=this.getWildcardTopics("openWB/system/device/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},installedComponents(){const t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},vendorList:{get(){const t=this.$store.state.mqtt["openWB/system/configurable/devices_components"];return t?Object.entries(t).map(([o,u])=>{const m=u?.vendors||{};return{label:u?.group_name||"",options:Object.entries(m).map(([n,_])=>({value:[o,n],text:_?.vendor_name||""})).sort((n,_)=>n.text.localeCompare(_.text))}}).sort((o,u)=>-o.label.localeCompare(u.label)):[]}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;const u=this.$store.state.mqtt["openWB/system/configurable/devices_components"]?.[t]?.vendors?.[o]?.devices;return u?Object.entries(u).map(([m,n])=>({value:[o,m],text:n.device_name})).sort((m,n)=>m.text.localeCompare(n.text)):[]}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,u){u.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,u,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:u,deviceVendor:o,type:m}})},removeComponentModal(t,o,u,m,n){n.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:u},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let u=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(u=Object.entries(m.vendors[t].devices[o].components).map(([_,c])=>({value:_,text:c.component_name}))),!1):!0),u},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},le={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},Oe={key:1},Te={key:0};function Ie(t,o,u,m,n,_){const c=p("openwb-base-modal-dialog"),A=p("router-link"),I=p("openwb-base-alert"),P=p("font-awesome-icon"),b=p("openwb-base-avatar"),R=p("openwb-base-text-input"),x=p("openwb-config-proxy"),B=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),M=p("openwb-base-submit-buttons");return s(),g(f,null,[d(c,{show:n.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeDevice},{default:i(()=>[v(' Willst Du das Gerät "'+O(n.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),d(c,{show:n.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeComponent},{default:i(()=>[v(' Willst Du die Komponente "'+O(n.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l("div",le,[l("form",Ee,[u.installAssistantActive?L("",!0):(s(),E(I,{key:0,subtype:"info"},{default:i(()=>[o[7]||(o[7]=v(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),d(A,{to:"/LoadManagementConfiguration"},{default:i(()=>[...o[6]||(o[6]=[v(" Lastmanagement ",-1)])]),_:1}),o[8]||(o[8]=v(" zu prüfen!",-1)),o[9]||(o[9]=l("br",null,null,-1)),o[10]||(o[10]=v(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung von Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1})),d(w,{title:"Geräte und Komponenten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(s(),g("div",ge,[d(I,{subtype:"info"},{default:i(()=>[...o[11]||(o[11]=[v(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(s(),g("div",Ve,[(s(!0),g(f,null,k(_.installedDevices,(r,h)=>(s(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:i(()=>[d(P,{icon:["fas","network-wired"]}),v(" "+O(r?.name),1)]),actions:i(a=>[a.collapsed?(s(),g("div",Oe,[(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),V=>(s(),E(b,{key:V?.id,class:Q("ml-1 bg-"+_.getComponentTypeClass(V?.type))},{default:i(()=>[d(P,{icon:_.getComponentTypeIcon(V?.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:V=>_.removeDeviceModal(r?.id,r?.name,V)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":r?.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=l("hr",null,null,-1)),d(x,{device:r,"onUpdate:configuration":a=>_.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=l("hr",null,null,-1)),d(B,null,{default:i(()=>[...o[12]||(o[12]=[v("Komponenten",-1)])]),_:1}),_.deviceHasConfiguredComponents(r?.id)?L("",!0):(s(),E(I,{key:0,subtype:"warning"},{default:i(()=>[...o[13]||(o[13]=[v(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1})),(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),(a,V)=>(s(),E(w,{key:a?.id,collapsible:!0,collapsed:!0,subtype:_.getComponentTypeClass(a?.type)},{header:i(()=>[d(P,{icon:_.getComponentTypeIcon(a?.type)},null,8,["icon"]),v(" "+O(a?.name),1)]),actions:i(T=>[T.collapsed?L("",!0):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:W=>_.removeComponentModal(r?.id,a?.id,a?.type,a?.name,W)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":a?.name,"onUpdate:modelValue":T=>t.updateState(V,T,"name")},null,8,["model-value","onUpdate:modelValue"]),d(R,{title:"Hersteller",subtype:"text","model-value":a?.info.manufacturer,"onUpdate:modelValue":T=>t.updateState(V,T,"info.manufacturer")},{help:i(()=>[...o[14]||(o[14]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),d(R,{title:"Modell",subtype:"text","model-value":a?.info.model,"onUpdate:modelValue":T=>t.updateState(V,T,"info.model")},{help:i(()=>[...o[15]||(o[15]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=l("hr",null,null,-1)),d(x,{device:r,component:a,"onUpdate:configuration":T=>_.updateConfiguration(V,T)},null,8,["device","component","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),o[21]||(o[21]=l("hr",null,null,-1)),_.getComponentList(r?.vendor,r?.type)?.length?(s(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:_.getComponentList(r?.vendor,r?.type),"model-value":n.componentToAdd[r?.id],"add-button":!0,"onUpdate:modelValue":a=>n.componentToAdd[r?.id]=a,"onInput:add":a=>_.addComponent(r?.id,r?.vendor,r?.type,n.componentToAdd[r?.id])},{help:i(()=>[...o[17]||(o[17]=[v(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue","onInput:add"])):(s(),E(I,{key:2,subtype:"info"},{default:i(()=>[...o[18]||(o[18]=[v(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1}))]),_:2},1024))),128)),Object.keys(_.installedDevices)?.length>0?(s(),g("hr",Te)):L("",!0),d(y,{modelValue:n.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=r=>n.selectedVendor=r),title:"Hersteller","not-selected":"Bitte auswählen",groups:_.vendorList},null,8,["modelValue","groups"]),d(y,{modelValue:n.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=r=>n.deviceToAdd=r),o[2]||(o[2]=r=>n.deviceToAdd=r)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:n.selectedVendor===void 0,options:_.deviceList,"model-value":n.deviceToAdd,"add-button":!0,"onInput:add":_.addDevice},{help:i(()=>[...o[22]||(o[22]=[l("p",null,[v(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),l("br"),v(' 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),l("p",null,[v(' 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.'),l("br"),v(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),l("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])]),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),d(M,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:o[4]||(o[4]=r=>t.$emit("reset")),onDefaults:o[5]||(o[5]=r=>t.$emit("defaults"))})])])],64)}const De=D(ce,[["render",Ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),fe=Object.freeze(Object.defineProperty({__proto__:null,default:De},Symbol.toStringTag,{value:"Module"}));export{re as C,j as D,De as H,fe as a}; diff --git a/web/settings/assets/IdentificationConfiguration-NvHT7cba.js b/web/settings/assets/IdentificationConfiguration-BN_nskUK.js similarity index 99% rename from web/settings/assets/IdentificationConfiguration-NvHT7cba.js rename to web/settings/assets/IdentificationConfiguration-BN_nskUK.js index 457b60954f..7b8e7d7568 100644 --- a/web/settings/assets/IdentificationConfiguration-NvHT7cba.js +++ b/web/settings/assets/IdentificationConfiguration-BN_nskUK.js @@ -1,2 +1,2 @@ -import{C as _}from"./index-CyH1Au4V.js";import{S as y}from"./SystemVersion-DQAfG1DR.js";import{_ as D,l as m,k as i,e as l,x as r,m as s,q as o,A as a,y as u,u as g,K as B,L as w,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const I={name:"IdentificationConfigView",mixins:[_,y],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid_timestamp",writeable:!1},{topic:"openWB/chargepoint/+/get/vehicle_id",writeable:!1},{topic:"openWB/chargepoint/+/set/rfid",writeable:!1},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!0},{topic:"openWB/vehicle/+/charge_template",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0}],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},L={class:"optionalComponents"},q={name:"optionalComponentsForm"},F=["href"],V={key:2},S={key:0},T={key:2},E={key:0};function C(e,t,A,P,N,f){const d=m("openwb-base-alert"),c=m("openwb-base-button-group-input"),z=m("openwb-base-textarea"),v=m("openwb-base-card"),h=m("openwb-base-heading"),W=m("openwb-base-array-input"),$=m("openwb-base-submit-buttons");return i(),l("div",L,[r("form",q,[s(v,{title:"Identifikation"},{default:o(()=>[s(d,{subtype:"info"},{default:o(()=>[r("p",null,[t[4]||(t[4]=a(" Eine ausführliche Anleitung findest Du hier: ",-1)),r("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${e.systemVersion}:software:einstell-konfig:einstellungen:identifikation`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Identifikation ",8,F)]),t[5]||(t[5]=a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1)),t[6]||(t[6]=r("ul",null,[r("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),r("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),r("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1)),t[7]||(t[7]=r("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1)),t[8]||(t[8]=r("p",null,[a(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein Fragezeichen (?) entspricht dabei einem Zeichen, ein Stern (*) beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),r("br"),a(" Es wird davon abgeraten, Muster für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1))]),_:1}),s(c,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info",class:"mt-3"},{default:o(()=>[...t[9]||(t[9]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(z,{key:1,title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":f.idTagList.join(` +import{C as _}from"./index-D_eD74fL.js";import{S as y}from"./SystemVersion-DQAfG1DR.js";import{_ as D,l as m,k as i,e as l,x as r,m as s,q as o,A as a,y as u,u as g,K as B,L as w,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const I={name:"IdentificationConfigView",mixins:[_,y],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid_timestamp",writeable:!1},{topic:"openWB/chargepoint/+/get/vehicle_id",writeable:!1},{topic:"openWB/chargepoint/+/set/rfid",writeable:!1},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!0},{topic:"openWB/vehicle/+/charge_template",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0}],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},L={class:"optionalComponents"},q={name:"optionalComponentsForm"},F=["href"],V={key:2},S={key:0},T={key:2},E={key:0};function C(e,t,A,P,N,f){const d=m("openwb-base-alert"),c=m("openwb-base-button-group-input"),z=m("openwb-base-textarea"),v=m("openwb-base-card"),h=m("openwb-base-heading"),W=m("openwb-base-array-input"),$=m("openwb-base-submit-buttons");return i(),l("div",L,[r("form",q,[s(v,{title:"Identifikation"},{default:o(()=>[s(d,{subtype:"info"},{default:o(()=>[r("p",null,[t[4]||(t[4]=a(" Eine ausführliche Anleitung findest Du hier: ",-1)),r("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${e.systemVersion}:software:einstell-konfig:einstellungen:identifikation`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Identifikation ",8,F)]),t[5]||(t[5]=a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1)),t[6]||(t[6]=r("ul",null,[r("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),r("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),r("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1)),t[7]||(t[7]=r("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1)),t[8]||(t[8]=r("p",null,[a(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein Fragezeichen (?) entspricht dabei einem Zeichen, ein Stern (*) beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),r("br"),a(" Es wird davon abgeraten, Muster für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1))]),_:1}),s(c,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info",class:"mt-3"},{default:o(()=>[...t[9]||(t[9]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(z,{key:1,title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":f.idTagList.join(` `)},null,8,["model-value"])):g("",!0)]),_:1}),s(h,null,{default:o(()=>[...t[10]||(t[10]=[a(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])]),_:1}),s(v,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info"},{default:o(()=>[...t[11]||(t[11]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' Die Konfiguration zum Entsperren von Ladepunkten bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(i(),u(d,{key:1,subtype:"info"},{default:o(()=>[...t[12]||(t[12]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})):(i(),l("div",V,[s(d,{subtype:"info"},{default:o(()=>[...t[13]||(t[13]=[a(" Hier zugeordnete ID-Tags entsperren beim Scannen das jeweilige Ladepunkt-Profil. Der ID-Tag kann an jedem Ladepunkt genutzt werden, dem das entsprechende Ladepunkt-Profil zugeordnet wurde. ",-1)])]),_:1}),(i(!0),l(B,null,w(f.chargePointTemplates,(n,p)=>(i(),l("div",{key:p},[f.getChargePointTemplateIndex(p)!=0?(i(),l("hr",S)):g("",!0),s(h,{class:"mt-0"},{default:o(()=>[a(b(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(W,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":n.valid_tags,"onUpdate:modelValue":k=>e.updateState(p,k,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),s(c,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.disable_after_unplug,"onUpdate:modelValue":k=>e.updateState(p,k,"disable_after_unplug")},{help:o(()=>[a(' Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+b(n.name)+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt. ',1)]),_:2},1032,["model-value","onUpdate:modelValue"])]))),128))]))]),_:1}),s(h,null,{default:o(()=>[...t[14]||(t[14]=[a(" Zuordnung von Fahrzeugen ",-1)])]),_:1}),s(v,{title:"Fahrzeuge",subtype:"info",collapsible:!0,collapsed:!0},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info"},{default:o(()=>[...t[15]||(t[15]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(i(),u(d,{key:1,subtype:"info"},{default:o(()=>[...t[16]||(t[16]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})):(i(),l("div",T,[s(d,{subtype:"info"},{default:o(()=>[...t[17]||(t[17]=[a(" Hier zugeordnete ID-Tags weisen dem Ladepunkt beim Scannen automatisch das jeweilige Fahrzeug zu. Ist bei Scannen des ID-Tags noch kein Fahrzeug angeschlossen muss dies zeitnah erfolgen, da der ID-Tag nach 5 Minuten verworfen wird. ",-1)])]),_:1}),(i(!0),l(B,null,w(f.vehicleIndexes,n=>(i(),l("div",{key:n},[n!=f.vehicleIndexes[0]?(i(),l("hr",E)):g("",!0),s(h,{class:"mt-0"},{default:o(()=>[a(b(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(W,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":p=>e.updateState("openWB/vehicle/"+n+"/tag_id",p)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),n!=0?(i(),u(c,{key:2,title:"Standard-Fahrzeug nach Abstecken zuordnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default,"onUpdate:modelValue":p=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],p,"load_default")},{help:o(()=>[a(' Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name)+'" gespeichert.',1),t[18]||(t[18]=r("br",null,null,-1)),a(' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge '+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?"aktiviert":"deaktiviert")+" , denen dieses Lade-Profil zugeordnet wurde. ",1)]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0)]))),128))]))]),_:1}),s($,{"form-name":"optionalComponentsForm",onSave:t[1]||(t[1]=n=>e.$emit("save",e.mqttTopicsToPublish)),onReset:t[2]||(t[2]=n=>e.$emit("reset")),onDefaults:t[3]||(t[3]=n=>e.$emit("defaults"))})])])}const H=D(I,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfiguration.vue"]]);export{H as default}; diff --git a/web/settings/assets/InstallAssistant-D7lW6Pyr.js b/web/settings/assets/InstallAssistant-C4J4yr5X.js similarity index 64% rename from web/settings/assets/InstallAssistant-D7lW6Pyr.js rename to web/settings/assets/InstallAssistant-C4J4yr5X.js index c4a4b0b3ae..bd8673b6d6 100644 --- a/web/settings/assets/InstallAssistant-D7lW6Pyr.js +++ b/web/settings/assets/InstallAssistant-C4J4yr5X.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/InstallAssistantStep0-DfZRc1of.js","assets/index-CyH1Au4V.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/InstallAssistantStepTemplate-DrvBpF-0.js","assets/InstallAssistantStepTemplate-DIMIp8sn.css","assets/InstallAssistantStep1-CfAxuVn6.js","assets/DataManagement-FAi2cjUn.js","assets/dynamic-import-helper-BheWnx7M.js","assets/InstallAssistantStep10-Dr52sUyf.js","assets/InstallAssistantStep2-BKDBrkQe.js","assets/SystemConfiguration-BYwqt7v1.js","assets/SystemConfiguration-BWslT2W-.css","assets/InstallAssistantStep20-Ci-UHX10.js","assets/ChargePointInstallation-C3IshOKk.js","assets/SystemVersion-DQAfG1DR.js","assets/ChargePointInstallation-37TSBtDo.css","assets/InstallAssistantStep3-B3u9R9nB.js","assets/GeneralConfiguration-CMMYSFfh.js","assets/InstallAssistantStep4-fJZIPmZy.js","assets/IoConfiguration-vfX10CsO.js","assets/InstallAssistantStep5-BZyeEizn.js","assets/HardwareInstallation-caZ0sA9z.js","assets/InstallAssistantStep6-D0cpR0xQ.js","assets/InstallAssistantStep7-ipX38vw1.js","assets/LoadManagementConfiguration-DVcGfr2E.js","assets/OpenwbSortableList-BORHS8nd.js","assets/OpenwbSortableList-C11EhIQj.css","assets/InstallAssistantStep8-CMR8ijwj.js","assets/VehicleConfiguration-TZSwJptx.js","assets/InstallAssistantStep9-DAbMQ63I.js"])))=>i.map(i=>d[i]); -import{C as r,_ as t}from"./index-CyH1Au4V.js";import{_}from"./dynamic-import-helper-BheWnx7M.js";import{_ as m,l as p,k as i,e as d,m as u,q as A,A as v,y as E,a2 as I,a1 as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),c({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-DfZRc1of.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-CfAxuVn6.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-Dr52sUyf.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-BKDBrkQe.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11,17,18])),"../components/install_assistant/InstallAssistantStep20.vue":()=>t(()=>import("./InstallAssistantStep20-Ci-UHX10.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-B3u9R9nB.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,24,21,14])),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-fJZIPmZy.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,26,14])),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-BZyeEizn.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,28,14])),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-D0cpR0xQ.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-ipX38vw1.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,11,31,32,33])),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-CMR8ijwj.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10,11,35,14])),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-DAbMQ63I.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-DrvBpF-0.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8,9,11]))}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`,4)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,a){const l=p("openwb-base-modal-dialog");return i(),d("div",null,[u(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:a.endAssistant},{default:A(()=>[...n[4]||(n[4]=[v(" Willst Du den Assistenten wirklich vorzeitig beenden? ",-1)])]),_:1},8,["show","onModalResult"]),(i(),E(I(a.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=e=>s.$emit("sendCommand",e)),onSave:n[1]||(n[1]=e=>s.$emit("save",e)),onReset:n[2]||(n[2]=e=>s.$emit("reset")),onDefaults:n[3]||(n[3]=e=>s.$emit("defaults")),onSwitchPage:a.switchPage,onEndAssistant:a.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const O=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{O as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/InstallAssistantStep0-CdrgO-v9.js","assets/index-D_eD74fL.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/InstallAssistantStepTemplate-DXqdRjEv.js","assets/InstallAssistantStepTemplate-DIMIp8sn.css","assets/InstallAssistantStep1-CsFGL7lM.js","assets/DataManagement-C57poL-r.js","assets/dynamic-import-helper-BheWnx7M.js","assets/InstallAssistantStep10-BlCtHrWc.js","assets/InstallAssistantStep2-DEKmkA7t.js","assets/SystemConfiguration-BN4gvHU6.js","assets/SystemConfiguration-BWslT2W-.css","assets/InstallAssistantStep20-7rhZVz9G.js","assets/ChargePointInstallation-BeNMkMOi.js","assets/SystemVersion-DQAfG1DR.js","assets/ChargePointInstallation-37TSBtDo.css","assets/InstallAssistantStep3-aOTEH1Z9.js","assets/GeneralConfiguration-b09cPY_w.js","assets/InstallAssistantStep4-Ct4UOsV9.js","assets/IoConfiguration-hMQZDwaS.js","assets/InstallAssistantStep5-DEDexAYx.js","assets/HardwareInstallation-DrK-NlWu.js","assets/InstallAssistantStep6-ODuKRKj5.js","assets/InstallAssistantStep7--rx4TlHA.js","assets/LoadManagementConfiguration-DKZ9eznX.js","assets/OpenwbSortableList-CSUuyi79.js","assets/OpenwbSortableList-C11EhIQj.css","assets/InstallAssistantStep8-5_UXcXLV.js","assets/VehicleConfiguration-B3d9qly5.js","assets/InstallAssistantStep9-HIXLScoE.js"])))=>i.map(i=>d[i]); +import{C as r,_ as t}from"./index-D_eD74fL.js";import{_}from"./dynamic-import-helper-BheWnx7M.js";import{_ as m,l as p,k as i,e as d,m as u,q as A,A as v,y as E,a2 as I,a1 as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),c({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-CdrgO-v9.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-CsFGL7lM.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-BlCtHrWc.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-DEKmkA7t.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11,17,18])),"../components/install_assistant/InstallAssistantStep20.vue":()=>t(()=>import("./InstallAssistantStep20-7rhZVz9G.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-aOTEH1Z9.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,24,21,14])),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-Ct4UOsV9.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,26,14])),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-DEDexAYx.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,28,14])),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-ODuKRKj5.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7--rx4TlHA.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,11,31,32,33])),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-5_UXcXLV.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10,11,35,14])),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-HIXLScoE.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-DXqdRjEv.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8,9,11]))}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`,4)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,a){const l=p("openwb-base-modal-dialog");return i(),d("div",null,[u(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:a.endAssistant},{default:A(()=>[...n[4]||(n[4]=[v(" Willst Du den Assistenten wirklich vorzeitig beenden? ",-1)])]),_:1},8,["show","onModalResult"]),(i(),E(I(a.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=e=>s.$emit("sendCommand",e)),onSave:n[1]||(n[1]=e=>s.$emit("save",e)),onReset:n[2]||(n[2]=e=>s.$emit("reset")),onDefaults:n[3]||(n[3]=e=>s.$emit("defaults")),onSwitchPage:a.switchPage,onEndAssistant:a.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const O=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{O as default}; diff --git a/web/settings/assets/InstallAssistantStep0-DfZRc1of.js b/web/settings/assets/InstallAssistantStep0-CdrgO-v9.js similarity index 95% rename from web/settings/assets/InstallAssistantStep0-DfZRc1of.js rename to web/settings/assets/InstallAssistantStep0-CdrgO-v9.js index 0089cc1cea..f9dec91ebe 100644 --- a/web/settings/assets/InstallAssistantStep0-DfZRc1of.js +++ b/web/settings/assets/InstallAssistantStep0-CdrgO-v9.js @@ -1 +1 @@ -import{C as m}from"./index-CyH1Au4V.js";import g from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,l as i,k as c,y as w,q as r,m as a,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopics:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,P,v,t){const l=i("openwb-base-modal-dialog"),d=i("FontAwesomeIcon"),u=i("InstallAssistantStepTemplate");return c(),w(u,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>[...e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])]),_:1},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(d,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const D=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{D as default}; +import{C as m}from"./index-D_eD74fL.js";import g from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,l as i,k as c,y as w,q as r,m as a,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopics:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,P,v,t){const l=i("openwb-base-modal-dialog"),d=i("FontAwesomeIcon"),u=i("InstallAssistantStepTemplate");return c(),w(u,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>[...e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])]),_:1},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(d,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const D=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{D as default}; diff --git a/web/settings/assets/InstallAssistantStep1-CfAxuVn6.js b/web/settings/assets/InstallAssistantStep1-CsFGL7lM.js similarity index 89% rename from web/settings/assets/InstallAssistantStep1-CfAxuVn6.js rename to web/settings/assets/InstallAssistantStep1-CsFGL7lM.js index adfc07261f..1371e51d50 100644 --- a/web/settings/assets/InstallAssistantStep1-CfAxuVn6.js +++ b/web/settings/assets/InstallAssistantStep1-CsFGL7lM.js @@ -1 +1 @@ -import{C as m}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{D as l}from"./DataManagement-FAi2cjUn.js";import{_ as d,l as a,k as u,y as g,q as o,m as f,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(s,e,c,w,S,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[v("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])]),content:o(()=>[f(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; +import{C as m}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{D as l}from"./DataManagement-C57poL-r.js";import{_ as d,l as a,k as u,y as g,q as o,m as f,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(s,e,c,w,S,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[v("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])]),content:o(()=>[f(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep10-Dr52sUyf.js b/web/settings/assets/InstallAssistantStep10-BlCtHrWc.js similarity index 91% rename from web/settings/assets/InstallAssistantStep10-Dr52sUyf.js rename to web/settings/assets/InstallAssistantStep10-BlCtHrWc.js index 2afa26e053..399c01a561 100644 --- a/web/settings/assets/InstallAssistantStep10-Dr52sUyf.js +++ b/web/settings/assets/InstallAssistantStep10-BlCtHrWc.js @@ -1 +1 @@ -import{C as a}from"./index-CyH1Au4V.js";import o from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{_ as r,l,k as m,y as p,q as d,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const g={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopics:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function u(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>[...s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(g,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; +import{C as a}from"./index-D_eD74fL.js";import o from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{_ as r,l,k as m,y as p,q as d,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const g={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopics:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function u(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>[...s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(g,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; diff --git a/web/settings/assets/InstallAssistantStep2-BKDBrkQe.js b/web/settings/assets/InstallAssistantStep2-DEKmkA7t.js similarity index 89% rename from web/settings/assets/InstallAssistantStep2-BKDBrkQe.js rename to web/settings/assets/InstallAssistantStep2-DEKmkA7t.js index 83f874da3f..05f7f0a0a2 100644 --- a/web/settings/assets/InstallAssistantStep2-BKDBrkQe.js +++ b/web/settings/assets/InstallAssistantStep2-DEKmkA7t.js @@ -1 +1 @@ -import{C as l}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import d from"./SystemConfiguration-BYwqt7v1.js";import{_ as u,l as i,k as f,y as g,q as o,m as S,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const w={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function A(s,t,v,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...t[4]||(t[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null," Bitte warten, bis die Versionsliste aktualisiert wurde. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ",-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])]),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:t[0]||(t[0]=e=>s.$emit("sendCommand",e)),onSave:t[1]||(t[1]=e=>s.$emit("save",e)),onReset:t[2]||(t[2]=e=>s.$emit("reset")),onDefaults:t[3]||(t[3]=e=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(w,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{I as default}; +import{C as l}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import d from"./SystemConfiguration-BN4gvHU6.js";import{_ as u,l as i,k as f,y as g,q as o,m as S,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const w={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function A(s,t,v,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...t[4]||(t[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null," Bitte warten, bis die Versionsliste aktualisiert wurde. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ",-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])]),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:t[0]||(t[0]=e=>s.$emit("sendCommand",e)),onSave:t[1]||(t[1]=e=>s.$emit("save",e)),onReset:t[2]||(t[2]=e=>s.$emit("reset")),onDefaults:t[3]||(t[3]=e=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(w,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{I as default}; diff --git a/web/settings/assets/InstallAssistantStep20-Ci-UHX10.js b/web/settings/assets/InstallAssistantStep20-7rhZVz9G.js similarity index 91% rename from web/settings/assets/InstallAssistantStep20-Ci-UHX10.js rename to web/settings/assets/InstallAssistantStep20-7rhZVz9G.js index 84286064d9..9e2ba088a1 100644 --- a/web/settings/assets/InstallAssistantStep20-Ci-UHX10.js +++ b/web/settings/assets/InstallAssistantStep20-7rhZVz9G.js @@ -1 +1 @@ -import{C as l}from"./index-CyH1Au4V.js";import d from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{b as m}from"./ChargePointInstallation-C3IshOKk.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function k(s,e,v,B,c,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),t("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),t("p",null,' Trage unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wähle die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),t("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(P,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep20.vue"]]);export{z as default}; +import{C as l}from"./index-D_eD74fL.js";import d from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{b as m}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function k(s,e,v,B,c,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),t("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),t("p",null,' Trage unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wähle die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),t("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(P,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep20.vue"]]);export{z as default}; diff --git a/web/settings/assets/InstallAssistantStep3-B3u9R9nB.js b/web/settings/assets/InstallAssistantStep3-aOTEH1Z9.js similarity index 91% rename from web/settings/assets/InstallAssistantStep3-B3u9R9nB.js rename to web/settings/assets/InstallAssistantStep3-aOTEH1Z9.js index e02fc7e260..110871122d 100644 --- a/web/settings/assets/InstallAssistantStep3-B3u9R9nB.js +++ b/web/settings/assets/InstallAssistantStep3-aOTEH1Z9.js @@ -1 +1 @@ -import{C as p}from"./index-CyH1Au4V.js";import d from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{G as m}from"./GeneralConfiguration-CMMYSFfh.js";import{_ as u,l as i,k as g,y as f,q as r,m as w,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigurationView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:4)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function P(n,e,S,A,c,s){const o=i("GeneralConfigurationView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>[...e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=u(k,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{E as default}; +import{C as p}from"./index-D_eD74fL.js";import d from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{G as m}from"./GeneralConfiguration-b09cPY_w.js";import{_ as u,l as i,k as g,y as f,q as r,m as w,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigurationView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:4)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function P(n,e,S,A,c,s){const o=i("GeneralConfigurationView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>[...e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=u(k,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{E as default}; diff --git a/web/settings/assets/InstallAssistantStep4-fJZIPmZy.js b/web/settings/assets/InstallAssistantStep4-Ct4UOsV9.js similarity index 91% rename from web/settings/assets/InstallAssistantStep4-fJZIPmZy.js rename to web/settings/assets/InstallAssistantStep4-Ct4UOsV9.js index a7364c931f..9371766eab 100644 --- a/web/settings/assets/InstallAssistantStep4-fJZIPmZy.js +++ b/web/settings/assets/InstallAssistantStep4-Ct4UOsV9.js @@ -1 +1 @@ -import{C as l}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{I as d}from"./IoConfiguration-vfX10CsO.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const S={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(s,e,A,h,P,i){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),t("p",{class:"font-weight-bold"},"Optional:",-1),t("p",null,[c(" Wird die openWB nicht als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet, "),t("span",{class:"font-weight-bold"},"kann dieser Schritt übersprungen werden.")],-1),t("p",null," Soll die openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const W=u(S,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{W as default}; +import{C as l}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{I as d}from"./IoConfiguration-hMQZDwaS.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const S={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(s,e,A,h,P,i){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),t("p",{class:"font-weight-bold"},"Optional:",-1),t("p",null,[c(" Wird die openWB nicht als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet, "),t("span",{class:"font-weight-bold"},"kann dieser Schritt übersprungen werden.")],-1),t("p",null," Soll die openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const W=u(S,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStep5-BZyeEizn.js b/web/settings/assets/InstallAssistantStep5-DEDexAYx.js similarity index 92% rename from web/settings/assets/InstallAssistantStep5-BZyeEizn.js rename to web/settings/assets/InstallAssistantStep5-DEDexAYx.js index 0fac892c2f..30af514b66 100644 --- a/web/settings/assets/InstallAssistantStep5-BZyeEizn.js +++ b/web/settings/assets/InstallAssistantStep5-DEDexAYx.js @@ -1 +1 @@ -import{C as d}from"./index-CyH1Au4V.js";import m from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{H as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as r,k as g,y as w,q as a,m as f,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(n,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const x=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{x as default}; +import{C as d}from"./index-D_eD74fL.js";import m from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{H as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as r,k as g,y as w,q as a,m as f,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(n,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const x=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{x as default}; diff --git a/web/settings/assets/InstallAssistantStep6-D0cpR0xQ.js b/web/settings/assets/InstallAssistantStep6-ODuKRKj5.js similarity index 94% rename from web/settings/assets/InstallAssistantStep6-D0cpR0xQ.js rename to web/settings/assets/InstallAssistantStep6-ODuKRKj5.js index 30692f592d..98368c703d 100644 --- a/web/settings/assets/InstallAssistantStep6-D0cpR0xQ.js +++ b/web/settings/assets/InstallAssistantStep6-ODuKRKj5.js @@ -1 +1 @@ -import{C as d}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{b as u}from"./ChargePointInstallation-C3IshOKk.js";import{_ as m,l as a,k as h,y as g,q as r,m as w,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:p,ChargePointInstallationView:u},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(s,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const C=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{C as default}; +import{C as d}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{b as u}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as m,l as a,k as h,y as g,q as r,m as w,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:p,ChargePointInstallationView:u},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(s,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const C=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{C as default}; diff --git a/web/settings/assets/InstallAssistantStep7-ipX38vw1.js b/web/settings/assets/InstallAssistantStep7--rx4TlHA.js similarity index 91% rename from web/settings/assets/InstallAssistantStep7-ipX38vw1.js rename to web/settings/assets/InstallAssistantStep7--rx4TlHA.js index 284d60e807..ab0cd8a8a2 100644 --- a/web/settings/assets/InstallAssistantStep7-ipX38vw1.js +++ b/web/settings/assets/InstallAssistantStep7--rx4TlHA.js @@ -1 +1 @@ -import{C as l}from"./index-CyH1Au4V.js";import m from"./InstallAssistantStepTemplate-DrvBpF-0.js";import u from"./LoadManagementConfiguration-DVcGfr2E.js";import{_ as p,l as a,k as g,y as h,q as r,m as c,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./OpenwbSortableList-BORHS8nd.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigurationView:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(s,e,S,w,A,i){const o=a("LoadManagementConfigurationView"),d=a("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{$ as default}; +import{C as l}from"./index-D_eD74fL.js";import m from"./InstallAssistantStepTemplate-DXqdRjEv.js";import u from"./LoadManagementConfiguration-DKZ9eznX.js";import{_ as p,l as a,k as g,y as h,q as r,m as c,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./OpenwbSortableList-CSUuyi79.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigurationView:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(s,e,S,w,A,i){const o=a("LoadManagementConfigurationView"),d=a("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep8-CMR8ijwj.js b/web/settings/assets/InstallAssistantStep8-5_UXcXLV.js similarity index 93% rename from web/settings/assets/InstallAssistantStep8-CMR8ijwj.js rename to web/settings/assets/InstallAssistantStep8-5_UXcXLV.js index 8872b28198..53510f051d 100644 --- a/web/settings/assets/InstallAssistantStep8-CMR8ijwj.js +++ b/web/settings/assets/InstallAssistantStep8-5_UXcXLV.js @@ -1 +1 @@ -import{C as g}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{a as h}from"./VehicleConfiguration-TZSwJptx.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as z,l as r,k as w,y as P,q as a,m as o,x as n,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigurationView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(s,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigurationView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=d(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),o(l,{icon:["far","question-circle"]}),e[5]||(e[5]=d(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[o(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{E as default}; +import{C as g}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{a as h}from"./VehicleConfiguration-B3d9qly5.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as z,l as r,k as w,y as P,q as a,m as o,x as n,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigurationView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(s,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigurationView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=d(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),o(l,{icon:["far","question-circle"]}),e[5]||(e[5]=d(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[o(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{E as default}; diff --git a/web/settings/assets/InstallAssistantStep9-DAbMQ63I.js b/web/settings/assets/InstallAssistantStep9-HIXLScoE.js similarity index 90% rename from web/settings/assets/InstallAssistantStep9-DAbMQ63I.js rename to web/settings/assets/InstallAssistantStep9-HIXLScoE.js index f0b973a202..2d37ccb6d5 100644 --- a/web/settings/assets/InstallAssistantStep9-DAbMQ63I.js +++ b/web/settings/assets/InstallAssistantStep9-HIXLScoE.js @@ -1 +1 @@ -import{C as m}from"./index-CyH1Au4V.js";import p from"./InstallAssistantStepTemplate-DrvBpF-0.js";import{D as u}from"./DataManagement-FAi2cjUn.js";import{_ as d,l as a,k as g,y as f,q as i,m as v,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:8)},endAssistant(){this.$emit("endAssistant")}}};function A(n,e,$,S,c,s){const r=a("DataManagement"),l=a("InstallAssistantStepTemplate");return g(),f(l,{title:`${s.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:i(()=>[...e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])]),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(P,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; +import{C as m}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{D as u}from"./DataManagement-C57poL-r.js";import{_ as d,l as a,k as g,y as f,q as i,m as v,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:8)},endAssistant(){this.$emit("endAssistant")}}};function A(n,e,$,S,c,s){const r=a("DataManagement"),l=a("InstallAssistantStepTemplate");return g(),f(l,{title:`${s.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:i(()=>[...e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])]),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(P,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-DrvBpF-0.js b/web/settings/assets/InstallAssistantStepTemplate-DXqdRjEv.js similarity index 97% rename from web/settings/assets/InstallAssistantStepTemplate-DrvBpF-0.js rename to web/settings/assets/InstallAssistantStepTemplate-DXqdRjEv.js index 18eb2dc862..2c5d12d023 100644 --- a/web/settings/assets/InstallAssistantStepTemplate-DrvBpF-0.js +++ b/web/settings/assets/InstallAssistantStepTemplate-DXqdRjEv.js @@ -1 +1 @@ -import{C as g}from"./index-CyH1Au4V.js";import{F as v,l as w,aH as y,aI as x}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as k,l as r,k as a,e as i,m as t,q as s,x as n,f as _,A as c,u as p}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const B="/openWB/web/settings/img/openWB_logo_light.png";w.add(y,x);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:v},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},I={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},N={class:"row justify-content-center"},S={class:"page-help-text col-md-3 py-2"},T={class:"col py-2"};function $(u,e,o,j,q,l){const m=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=f=>l.previousPage())},{default:s(()=>[t(m,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=f=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(m,{icon:["fas","caret-right"]})]),_:1})])),o.hideEnd?p("",!0):(a(),i("div",I,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=f=>l.endAssistant())},{default:s(()=>[...e[5]||(e[5]=[c(" Assistent beenden ",-1)])]),_:1})]))])]),default:s(()=>[n("div",N,[n("div",S,[_(u.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",T,[_(u.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; +import{C as g}from"./index-D_eD74fL.js";import{F as v,l as w,aH as y,aI as x}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as k,l as r,k as a,e as i,m as t,q as s,x as n,f as _,A as c,u as p}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const B="/openWB/web/settings/img/openWB_logo_light.png";w.add(y,x);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:v},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},I={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},N={class:"row justify-content-center"},S={class:"page-help-text col-md-3 py-2"},T={class:"col py-2"};function $(u,e,o,j,q,l){const m=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=f=>l.previousPage())},{default:s(()=>[t(m,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=f=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(m,{icon:["fas","caret-right"]})]),_:1})])),o.hideEnd?p("",!0):(a(),i("div",I,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=f=>l.endAssistant())},{default:s(()=>[...e[5]||(e[5]=[c(" Assistent beenden ",-1)])]),_:1})]))])]),default:s(()=>[n("div",N,[n("div",S,[_(u.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",T,[_(u.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; diff --git a/web/settings/assets/IoConfiguration-vfX10CsO.js b/web/settings/assets/IoConfiguration-hMQZDwaS.js similarity index 94% rename from web/settings/assets/IoConfiguration-vfX10CsO.js rename to web/settings/assets/IoConfiguration-hMQZDwaS.js index 9003179d13..f29cae9ce0 100644 --- a/web/settings/assets/IoConfiguration-vfX10CsO.js +++ b/web/settings/assets/IoConfiguration-hMQZDwaS.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/io_device-1ouhD8vS.js","assets/index-CyH1Au4V.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/io_device-BFTcDSy5.js","assets/io_device-B-Ykhm08.js","assets/io_action-BlGNVQOy.js","assets/OpenwbIoSinglePattern-C4hsIwwW.js","assets/io_action-XIjORj2n.js","assets/io_action-CcAuqDqD.js","assets/OpenwbIoPattern-DAvfzRSb.js","assets/OpenwbIoPattern-01UVkHjE.css","assets/io_action-CNib3IIZ.js"])))=>i.map(i=>d[i]); -import{F as q,l as L,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,C as j}from"./index-CyH1Au4V.js";import{_ as E}from"./dynamic-import-helper-BheWnx7M.js";import{_ as I,l as d,k as o,e as c,y as f,q as i,A as r,J as p,m as a,x as v,a1 as T,K as C,L as B,u as D,a2 as M}from"./vendor-Bo8v-nQD.js";const z={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})},sendSystemCommand(t,e){this.$emit("sendCommand",{command:t,data:e})}}},F=I(z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),$={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},R={class:"io-device-config-fallback"},N={key:1};function G(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",R,[Object.keys(t.ioDevice.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Das I/O-Modul "'+p(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",N,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+p(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=I($,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),Q={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),T({loader:()=>E(Object.assign({"./add_on/io_device.vue":()=>h(()=>import("./io_device-1ouhD8vS.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./dimm_kit/io_device.vue":()=>h(()=>import("./io_device-BFTcDSy5.js"),__vite__mapDeps([11,2,3,4,1,5,6,7,8,9,10])),"./eebus/io_device.vue":()=>h(()=>import("./io_device-B-Ykhm08.js"),__vite__mapDeps([12,2,3,4,1,5,6,7,8,9,10]))}),`./${this.ioDevice.type}/io_device.vue`,3),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function H(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-copy-to-clipboard"),b=d("openwb-base-alert");return o(),c("div",null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Modul "'+p(l.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(o(),f(b,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=r(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),v("ul",null,[(o(!0),c(C,null,B(n.outputs,_=>(o(),c("li",{key:_},[a(y,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[r(p(_),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=r(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=v("br",null,null,-1)),e[5]||(e[5]=r(" Beispiel: ",-1)),e[6]||(e[6]=v("span",{class:"text-info"},"false",-1))]),_:1})):D("",!0),a(b,{subtype:"warning"},{default:i(()=>[e[7]||(e[7]=r(" Ist die ",-1)),e[8]||(e[8]=v("strong",null,"Benutzerverwaltung",-1)),e[9]||(e[9]=r(" aktiviert und sollen die Ausgänge über MQTT gesteuert werden, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),v("strong",null,`"Daten: Ein-/Ausgangs Gerät '`+p(l.ioDevice.name)+"' ("+p(l.ioDevice.id)+') MQTT-Input"',1),e[10]||(e[10]=r(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),(o(),f(M(n.myComponent),{"io-device":l.ioDevice,"onUpdate:configuration":e[0]||(e[0]=_=>n.updateConfiguration(_)),onSendCommand:e[1]||(e[1]=_=>n.sendCommand(_))},null,40,["io-device"]))])}const X=I(Q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[j],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=I(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function ne(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",ee,[Object.keys(t.ioAction?.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Die I/O-Aktion "'+p(t.ioAction?.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",te,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+p(t.ioAction?.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioAction?.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioAction?.configuration,void 0,2)),1)]),_:1})]))])}const oe=I(K,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io action: ${this.ioAction?.group} / ${this.ioAction?.type}`),T({loader:()=>E(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>h(()=>import("./io_action-BlGNVQOy.js"),__vite__mapDeps([13,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>h(()=>import("./io_action-XIjORj2n.js"),__vite__mapDeps([15,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>h(()=>import("./io_action-CcAuqDqD.js"),__vite__mapDeps([16,17,4,2,3,18,1,5,6,7,8,9,10])),"./generator_systems/stepwise_control/io_action.vue":()=>h(()=>import("./io_action-CNib3IIZ.js"),__vite__mapDeps([19,17,4,2,3,18,1,5,6,7,8,9,10]))}),`./${this.ioAction?.group}/${this.ioAction?.type}/io_action.vue`,4),errorComponent:oe})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>({value:this.ioDevices[t]?.id,text:this.ioDevices[t]?.name}))},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t?.id,text:t?.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t?.id,text:t?.name,type:t?.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray(this.ioAction.configuration?.input_pattern)){let e=this.ioAction.configuration.input_pattern.map(l=>({value:l.value,matrix:{}}));this.updateConfiguration(e,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-select-input");return o(),c(C,null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Aktion "'+p(l.ioAction?.name)+'" ',1)]),_:1}),a(y,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":l.ioAction?.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateIoDevice(b))},{help:i(()=>[...e[2]||(e[2]=[r(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])]),_:1},8,["options","model-value"]),l.ioAction?.configuration.io_device!==null?(o(),c("div",ae,[e[3]||(e[3]=v("hr",null,null,-1)),(o(),f(M(n.myComponent),{"io-action":l.ioAction,"io-device":l.ioDevices[`openWB/system/io/${l.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=b=>n.updateConfiguration(b))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):D("",!0)],64)}const re=I(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);L.add(U);const le={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:q,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[j],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!0},{topic:"openWB/system/configurable/io_actions",writeable:!1},{topic:"openWB/system/configurable/io_devices",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!0}],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){let t=this.$store.state.mqtt["openWB/system/configurable/io_devices"];return this.$store.state.mqtt["openWB/general/extern"]===!0?t?.filter(e=>e.value=="add_on"):t}},installedIoDevices(){const t=this.getWildcardTopics("openWB/system/io/+/config");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(l=>({value:[t,l.value],text:l.text})).sort((l,A)=>l.text.localeCompare(A.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.sendSystemCommand("addIoDevice",{type:this.ioDeviceToAdd})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoDevice",{id:t})},addIoAction(){this.sendSystemCommand("addIoAction",{type:this.ioActionToAdd})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoAction",{id:t})},sendSystemCommand(t,e){this.$emit("send-command",{command:t,data:e})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},de={class:"ioConfig"},ue={name:"ioConfigForm"},ce={key:0},pe={key:1},me={key:0};function ge(t,e,l,A,u,n){const m=d("openwb-base-modal-dialog"),y=d("font-awesome-icon"),b=d("openwb-base-avatar"),_=d("openwb-base-text-input"),P=d("openwb-io-device-proxy"),k=d("openwb-base-card"),x=d("openwb-base-select-input"),W=d("openwb-base-alert"),S=d("openwb-io-action-proxy"),V=d("openwb-base-submit-buttons");return o(),c(C,null,[a(m,{show:u.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeIoDevice(u.modalIoDeviceIndex,s))},{default:i(()=>[r(' Willst Du das Ein-/Ausgangs-Gerät "'+p(n.getIoDeviceName(u.modalIoDeviceIndex))+'" (ID: '+p(u.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(m,{show:u.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeIoAction(u.modalIoActionIndex,s))},{default:i(()=>[r(' Willst Du die Aktion "'+p(n.getIoDeviceName(u.modalIoActionIndex))+'" (ID: '+p(u.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),v("div",de,[v("form",ue,[a(k,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(o(!0),c(C,null,B(n.installedIoDevices,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoDeviceModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[w].type},null,8,["model-value"]),e[8]||(e[8]=v("hr",null,null,-1)),a(P,{"io-device":s,"onUpdate:configuration":g=>n.updateConfiguration(w,g),onSendCommand:e[2]||(e[2]=g=>n.sendSystemCommand(g.command,g.data))},null,8,["io-device","onUpdate:configuration"])]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(o(),c("hr",ce)):D("",!0),a(x,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":u.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=s=>u.ioDeviceToAdd=s),"onInput:add":n.addIoDevice},{help:i(()=>[...e[9]||(e[9]=[r(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1}),a(k,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),f(W,{key:0,subtype:"info"},{default:i(()=>[...e[10]||(e[10]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(o(),c("div",pe,[(o(!0),c(C,null,B(n.installedIoActions,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoActionModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[s?.group,s?.type].join(" / ")},null,8,["model-value"]),e[11]||(e[11]=v("hr",null,null,-1)),s!==void 0?(o(),f(S,{key:0,"io-action":s,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":g=>n.updateConfiguration(w,g)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):D("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(o(),c("hr",me)):D("",!0),Object.keys(n.installedIoDevices).length>0?(o(),f(x,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":u.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[4]||(e[4]=s=>u.ioActionToAdd=s),"onInput:add":n.addIoAction},{help:i(()=>[...e[12]||(e[12]=[r(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])]),_:1},8,["groups","model-value","onInput:add"])):(o(),f(W,{key:2,subtype:"warning"},{default:i(()=>[...e[13]||(e[13]=[r(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),v("br",null,null,-1),r(" Bitte füge zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Du Aktionen konfigurierst. ",-1)])]),_:1}))]))]),_:1}),a(V,{"form-name":"ioConfigForm",onSave:e[5]||(e[5]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[6]||(e[6]=s=>t.$emit("reset")),onDefaults:e[7]||(e[7]=s=>t.$emit("defaults"))})])])],64)}const be=I(le,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfiguration.vue"]]),we=Object.freeze(Object.defineProperty({__proto__:null,default:be},Symbol.toStringTag,{value:"Module"}));export{be as I,F as O,Z as a,we as b}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/io_device-ByQHLYHY.js","assets/index-D_eD74fL.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/io_device-mvR1tJtP.js","assets/io_device-BBOT5GiC.js","assets/io_action-B9LeEnBs.js","assets/OpenwbIoSinglePattern-C4hsIwwW.js","assets/io_action-JT1W0Hwl.js","assets/io_action-BWKUJ45t.js","assets/OpenwbIoPattern-DAvfzRSb.js","assets/OpenwbIoPattern-01UVkHjE.css","assets/io_action-Des8D82O.js"])))=>i.map(i=>d[i]); +import{F as q,l as L,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,C as j}from"./index-D_eD74fL.js";import{_ as E}from"./dynamic-import-helper-BheWnx7M.js";import{_ as I,l as d,k as o,e as c,y as f,q as i,A as r,J as p,m as a,x as v,a1 as T,K as C,L as B,u as D,a2 as M}from"./vendor-Bo8v-nQD.js";const z={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})},sendSystemCommand(t,e){this.$emit("sendCommand",{command:t,data:e})}}},F=I(z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),$={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},R={class:"io-device-config-fallback"},N={key:1};function G(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",R,[Object.keys(t.ioDevice.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Das I/O-Modul "'+p(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",N,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+p(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=I($,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),Q={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),T({loader:()=>E(Object.assign({"./add_on/io_device.vue":()=>h(()=>import("./io_device-ByQHLYHY.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./dimm_kit/io_device.vue":()=>h(()=>import("./io_device-mvR1tJtP.js"),__vite__mapDeps([11,2,3,4,1,5,6,7,8,9,10])),"./eebus/io_device.vue":()=>h(()=>import("./io_device-BBOT5GiC.js"),__vite__mapDeps([12,2,3,4,1,5,6,7,8,9,10]))}),`./${this.ioDevice.type}/io_device.vue`,3),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function H(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-copy-to-clipboard"),b=d("openwb-base-alert");return o(),c("div",null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Modul "'+p(l.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(o(),f(b,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=r(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),v("ul",null,[(o(!0),c(C,null,B(n.outputs,_=>(o(),c("li",{key:_},[a(y,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[r(p(_),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=r(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=v("br",null,null,-1)),e[5]||(e[5]=r(" Beispiel: ",-1)),e[6]||(e[6]=v("span",{class:"text-info"},"false",-1))]),_:1})):D("",!0),a(b,{subtype:"warning"},{default:i(()=>[e[7]||(e[7]=r(" Ist die ",-1)),e[8]||(e[8]=v("strong",null,"Benutzerverwaltung",-1)),e[9]||(e[9]=r(" aktiviert und sollen die Ausgänge über MQTT gesteuert werden, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),v("strong",null,`"Daten: Ein-/Ausgangs Gerät '`+p(l.ioDevice.name)+"' ("+p(l.ioDevice.id)+') MQTT-Input"',1),e[10]||(e[10]=r(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),(o(),f(M(n.myComponent),{"io-device":l.ioDevice,"onUpdate:configuration":e[0]||(e[0]=_=>n.updateConfiguration(_)),onSendCommand:e[1]||(e[1]=_=>n.sendCommand(_))},null,40,["io-device"]))])}const X=I(Q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[j],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=I(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function ne(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",ee,[Object.keys(t.ioAction?.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Die I/O-Aktion "'+p(t.ioAction?.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",te,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+p(t.ioAction?.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioAction?.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioAction?.configuration,void 0,2)),1)]),_:1})]))])}const oe=I(K,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io action: ${this.ioAction?.group} / ${this.ioAction?.type}`),T({loader:()=>E(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>h(()=>import("./io_action-B9LeEnBs.js"),__vite__mapDeps([13,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>h(()=>import("./io_action-JT1W0Hwl.js"),__vite__mapDeps([15,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>h(()=>import("./io_action-BWKUJ45t.js"),__vite__mapDeps([16,17,4,2,3,18,1,5,6,7,8,9,10])),"./generator_systems/stepwise_control/io_action.vue":()=>h(()=>import("./io_action-Des8D82O.js"),__vite__mapDeps([19,17,4,2,3,18,1,5,6,7,8,9,10]))}),`./${this.ioAction?.group}/${this.ioAction?.type}/io_action.vue`,4),errorComponent:oe})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>({value:this.ioDevices[t]?.id,text:this.ioDevices[t]?.name}))},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t?.id,text:t?.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t?.id,text:t?.name,type:t?.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray(this.ioAction.configuration?.input_pattern)){let e=this.ioAction.configuration.input_pattern.map(l=>({value:l.value,matrix:{}}));this.updateConfiguration(e,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-select-input");return o(),c(C,null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Aktion "'+p(l.ioAction?.name)+'" ',1)]),_:1}),a(y,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":l.ioAction?.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateIoDevice(b))},{help:i(()=>[...e[2]||(e[2]=[r(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])]),_:1},8,["options","model-value"]),l.ioAction?.configuration.io_device!==null?(o(),c("div",ae,[e[3]||(e[3]=v("hr",null,null,-1)),(o(),f(M(n.myComponent),{"io-action":l.ioAction,"io-device":l.ioDevices[`openWB/system/io/${l.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=b=>n.updateConfiguration(b))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):D("",!0)],64)}const re=I(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);L.add(U);const le={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:q,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[j],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!0},{topic:"openWB/system/configurable/io_actions",writeable:!1},{topic:"openWB/system/configurable/io_devices",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!0}],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){let t=this.$store.state.mqtt["openWB/system/configurable/io_devices"];return this.$store.state.mqtt["openWB/general/extern"]===!0?t?.filter(e=>e.value=="add_on"):t}},installedIoDevices(){const t=this.getWildcardTopics("openWB/system/io/+/config");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(l=>({value:[t,l.value],text:l.text})).sort((l,A)=>l.text.localeCompare(A.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.sendSystemCommand("addIoDevice",{type:this.ioDeviceToAdd})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoDevice",{id:t})},addIoAction(){this.sendSystemCommand("addIoAction",{type:this.ioActionToAdd})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoAction",{id:t})},sendSystemCommand(t,e){this.$emit("send-command",{command:t,data:e})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},de={class:"ioConfig"},ue={name:"ioConfigForm"},ce={key:0},pe={key:1},me={key:0};function ge(t,e,l,A,u,n){const m=d("openwb-base-modal-dialog"),y=d("font-awesome-icon"),b=d("openwb-base-avatar"),_=d("openwb-base-text-input"),P=d("openwb-io-device-proxy"),k=d("openwb-base-card"),x=d("openwb-base-select-input"),W=d("openwb-base-alert"),S=d("openwb-io-action-proxy"),V=d("openwb-base-submit-buttons");return o(),c(C,null,[a(m,{show:u.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeIoDevice(u.modalIoDeviceIndex,s))},{default:i(()=>[r(' Willst Du das Ein-/Ausgangs-Gerät "'+p(n.getIoDeviceName(u.modalIoDeviceIndex))+'" (ID: '+p(u.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(m,{show:u.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeIoAction(u.modalIoActionIndex,s))},{default:i(()=>[r(' Willst Du die Aktion "'+p(n.getIoDeviceName(u.modalIoActionIndex))+'" (ID: '+p(u.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),v("div",de,[v("form",ue,[a(k,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(o(!0),c(C,null,B(n.installedIoDevices,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoDeviceModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[w].type},null,8,["model-value"]),e[8]||(e[8]=v("hr",null,null,-1)),a(P,{"io-device":s,"onUpdate:configuration":g=>n.updateConfiguration(w,g),onSendCommand:e[2]||(e[2]=g=>n.sendSystemCommand(g.command,g.data))},null,8,["io-device","onUpdate:configuration"])]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(o(),c("hr",ce)):D("",!0),a(x,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":u.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=s=>u.ioDeviceToAdd=s),"onInput:add":n.addIoDevice},{help:i(()=>[...e[9]||(e[9]=[r(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1}),a(k,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),f(W,{key:0,subtype:"info"},{default:i(()=>[...e[10]||(e[10]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(o(),c("div",pe,[(o(!0),c(C,null,B(n.installedIoActions,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoActionModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[s?.group,s?.type].join(" / ")},null,8,["model-value"]),e[11]||(e[11]=v("hr",null,null,-1)),s!==void 0?(o(),f(S,{key:0,"io-action":s,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":g=>n.updateConfiguration(w,g)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):D("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(o(),c("hr",me)):D("",!0),Object.keys(n.installedIoDevices).length>0?(o(),f(x,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":u.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[4]||(e[4]=s=>u.ioActionToAdd=s),"onInput:add":n.addIoAction},{help:i(()=>[...e[12]||(e[12]=[r(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])]),_:1},8,["groups","model-value","onInput:add"])):(o(),f(W,{key:2,subtype:"warning"},{default:i(()=>[...e[13]||(e[13]=[r(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),v("br",null,null,-1),r(" Bitte füge zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Du Aktionen konfigurierst. ",-1)])]),_:1}))]))]),_:1}),a(V,{"form-name":"ioConfigForm",onSave:e[5]||(e[5]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[6]||(e[6]=s=>t.$emit("reset")),onDefaults:e[7]||(e[7]=s=>t.$emit("defaults"))})])])],64)}const be=I(le,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfiguration.vue"]]),we=Object.freeze(Object.defineProperty({__proto__:null,default:be},Symbol.toStringTag,{value:"Module"}));export{be as I,F as O,Z as a,we as b}; diff --git a/web/settings/assets/LegalSettings-DO80lenG.js b/web/settings/assets/LegalSettings-DvE2H9Xw.js similarity index 98% rename from web/settings/assets/LegalSettings-DO80lenG.js rename to web/settings/assets/LegalSettings-DvE2H9Xw.js index 42bfeb4a47..88b63c370d 100644 --- a/web/settings/assets/LegalSettings-DO80lenG.js +++ b/web/settings/assets/LegalSettings-DvE2H9Xw.js @@ -1 +1 @@ -import{F as k,l as y,an as v}from"./vendor-fortawesome-CBc-2W7w.js";import{C as B}from"./index-CyH1Au4V.js";import{_ as $,l as n,k as u,e as W,x as o,m as s,q as a,y as g,A as d,u as b}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";y.add(v);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:k},mixins:[B],emits:["sendCommand","save"],data(){return{mqttTopics:[{topic:"openWB/system/dataprotection_acknowledged",writeable:!0},{topic:"openWB/system/usage_terms_acknowledged",writeable:!0}]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},async onSaveLegal(){this.$emit("save",this.mqttTopicsToPublish),await new Promise(e=>{const i=this.$watch(()=>this.$store.state.local.savingData,r=>{r===!1&&(i(),e())})}),this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]||await new Promise(e=>{const i=this.$watch(()=>this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],r=>{r&&(i(),e())})}),await this.$store.getters.installAssistantDone||this.$router.push({name:"InstallAssistant"})}}},z={class:"dataProtection"},A={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function D(t,e,i,r,q,m){const p=n("openwb-base-button-group-input"),w=n("font-awesome-icon"),_=n("openwb-base-click-button"),c=n("openwb-base-alert"),f=n("openwb-base-submit-buttons"),h=n("openwb-base-card");return u(),W("div",z,[o("form",A,[s(h,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[s(f,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:m.onSaveLegal},null,8,["onSave"])]),default:a(()=>[e[6]||(e[6]=o("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[7]||(e[7]=o("hr",null,null,-1)),s(p,{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]=l=>t.updateState("openWB/system/usage_terms_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?b("",!0):(u(),g(c,{key:0,subtype:"danger",class:"mb-1"},{default:a(()=>[e[4]||(e[4]=d(" Du musst die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),o("div",C,[o("div",V,[s(_,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=l=>m.sendSystemCommand("systemShutdown"))},{default:a(()=>[e[3]||(e[3]=d(" Nicht akzeptieren und ausschalten ",-1)),s(w,{icon:["fas","power-off"]})]),_:1})])])]),_:1})),s(p,{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]=l=>t.updateState("openWB/system/dataprotection_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?b("",!0):(u(),g(c,{key:1,subtype:"warning"},{default:a(()=>[...e[5]||(e[5]=[d(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])]),_:1}))]),_:1})])])}const j=$(S,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{j as default}; +import{F as k,l as y,an as v}from"./vendor-fortawesome-CBc-2W7w.js";import{C as B}from"./index-D_eD74fL.js";import{_ as $,l as n,k as u,e as W,x as o,m as s,q as a,y as g,A as d,u as b}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";y.add(v);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:k},mixins:[B],emits:["sendCommand","save"],data(){return{mqttTopics:[{topic:"openWB/system/dataprotection_acknowledged",writeable:!0},{topic:"openWB/system/usage_terms_acknowledged",writeable:!0}]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},async onSaveLegal(){this.$emit("save",this.mqttTopicsToPublish),await new Promise(e=>{const i=this.$watch(()=>this.$store.state.local.savingData,r=>{r===!1&&(i(),e())})}),this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]||await new Promise(e=>{const i=this.$watch(()=>this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],r=>{r&&(i(),e())})}),await this.$store.getters.installAssistantDone||this.$router.push({name:"InstallAssistant"})}}},z={class:"dataProtection"},A={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function D(t,e,i,r,q,m){const p=n("openwb-base-button-group-input"),w=n("font-awesome-icon"),_=n("openwb-base-click-button"),c=n("openwb-base-alert"),f=n("openwb-base-submit-buttons"),h=n("openwb-base-card");return u(),W("div",z,[o("form",A,[s(h,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[s(f,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:m.onSaveLegal},null,8,["onSave"])]),default:a(()=>[e[6]||(e[6]=o("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[7]||(e[7]=o("hr",null,null,-1)),s(p,{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]=l=>t.updateState("openWB/system/usage_terms_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?b("",!0):(u(),g(c,{key:0,subtype:"danger",class:"mb-1"},{default:a(()=>[e[4]||(e[4]=d(" Du musst die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),o("div",C,[o("div",V,[s(_,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=l=>m.sendSystemCommand("systemShutdown"))},{default:a(()=>[e[3]||(e[3]=d(" Nicht akzeptieren und ausschalten ",-1)),s(w,{icon:["fas","power-off"]})]),_:1})])])]),_:1})),s(p,{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]=l=>t.updateState("openWB/system/dataprotection_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?b("",!0):(u(),g(c,{key:1,subtype:"warning"},{default:a(()=>[...e[5]||(e[5]=[d(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])]),_:1}))]),_:1})])])}const j=$(S,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{j as default}; diff --git a/web/settings/assets/LoadManagementConfiguration-DVcGfr2E.js b/web/settings/assets/LoadManagementConfiguration-DKZ9eznX.js similarity index 99% rename from web/settings/assets/LoadManagementConfiguration-DVcGfr2E.js rename to web/settings/assets/LoadManagementConfiguration-DKZ9eznX.js index 8d500d2ce1..fe2e2364bd 100644 --- a/web/settings/assets/LoadManagementConfiguration-DVcGfr2E.js +++ b/web/settings/assets/LoadManagementConfiguration-DKZ9eznX.js @@ -1 +1 @@ -import{F as L,l as V,a3 as x,a2 as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as Z}from"./index-CyH1Au4V.js";import{S as $}from"./OpenwbSortableList-BORHS8nd.js";import{_ as A,l as u,k as l,e as m,x as d,m as o,q as r,A as i,y as f,u as M,K as v,L as W,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";V.add(x,q);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:$,FontAwesomeIcon:L},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/config/max_power",writeable:!0},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/counter/+/config/max_currents",writeable:!0},{topic:"openWB/counter/+/config/max_power_errorcase",writeable:!0},{topic:"openWB/counter/+/config/max_total_power",writeable:!0},{topic:"openWB/counter/config/consider_less_charging",writeable:!0},{topic:"openWB/counter/config/home_consumption_source_id",writeable:!0},{topic:"openWB/counter/get/hierarchy",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/pv/+/config/max_ac_out",writeable:!0},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},componentConfigs:{get(){return t=>{let e=this.componentConfigurations;return Object.keys(e).filter(s=>e[s]?.type.includes(t)).reduce((s,b)=>({...s,[b]:e[b]}),{})}}},counterConfigs:{get(){return this.componentConfigs("counter")}},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.sort((e,s)=>e.text==s.text?0:e.text>s.text?1:-1)},inverterConfigs:{get(){return this.componentConfigs("inverter")}},batConfigs:{get(){return this.componentConfigs("bat")}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let s=this.getChargePoint(t.id);s&&(e[t.id]=s.name)}else{let s=this.getComponent(t.id);s&&(e[t.id]=s.name)}return t.children.forEach(s=>{e={...e,...this.getElementTreeNames(s)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},isComponentType(t,e){return t?.split("_").includes(e)}}},U={class:"loadManagementConfig"},D={name:"loadManagementConfigForm"},F={key:0},P={key:1},O={key:0},H={key:1};function N(t,e,s,b,T,g){const h=u("openwb-base-alert"),B=u("router-link"),S=u("openwb-base-button-group-input"),z=u("openwb-base-select-input"),w=u("openwb-base-heading"),k=u("font-awesome-icon"),p=u("openwb-base-number-input"),c=u("openwb-base-card"),y=u("sortable-list"),C=u("openwb-base-submit-buttons");return l(),m("div",U,[d("form",D,[o(c,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",F,[o(h,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",P,[s.installAssistantActive?M("",!0):(l(),f(h,{key:0,subtype:"info"},{default:r(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),o(B,{to:"/IoConfiguration"},{default:r(()=>[...e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])]),_:1}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1})),o(S,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/counter/config/consider_less_charging",n))},{help:r(()=>[...e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])]),_:1},8,["model-value"]),o(z,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateState("openWB/counter/config/home_consumption_source_id",n))},{help:r(()=>[...e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])]),_:1},8,["options","groups","model-value"]),o(w,null,{default:r(()=>[...e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])]),_:1}),o(h,{subtype:"info"},{default:r(()=>[...e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Üblicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])]),_:1}),(l(!0),m(v,null,W(g.counterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:r(()=>[o(k,{icon:["fas","gauge-high"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:r(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:r(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:r(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:r(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_power_errorcase",a*1e3)},{help:r(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.inverterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:r(()=>[o(k,{icon:["fas","solar-panel"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:r(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[21]||(e[21]=[i(" Vorhandene Speichermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.batConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[o(k,{icon:["fas","car-battery"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung des Speichers",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/config/max_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/bat/"+n.id+"/config/max_power",a*1e3)},{help:r(()=>[...e[22]||(e[22]=[i(" Die maximale Leistung wird lediglich für eine Plausibilitätsprüfung der Speicherwerte genutzt. Bei 0kW erfolgt keine Prüfung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),o(c,{title:"Struktur",collapsible:!0,collapsed:!0},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",O,[o(h,{subtype:"info"},{default:r(()=>[...e[23]||(e[23]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",H,[o(y,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateState("openWB/counter/get/hierarchy",n))},{help:r(()=>[...e[24]||(e[24]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])]),_:1},8,["model-value","labels"])]))]),_:1}),o(C,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[4]||(e[4]=n=>t.$emit("reset")),onDefaults:e[5]||(e[5]=n=>t.$emit("defaults"))})])])}const X=A(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfiguration.vue"]]);export{X as default}; +import{F as L,l as V,a3 as x,a2 as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as Z}from"./index-D_eD74fL.js";import{S as $}from"./OpenwbSortableList-CSUuyi79.js";import{_ as A,l as u,k as l,e as m,x as d,m as o,q as r,A as i,y as f,u as M,K as v,L as W,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";V.add(x,q);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:$,FontAwesomeIcon:L},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/config/max_power",writeable:!0},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/counter/+/config/max_currents",writeable:!0},{topic:"openWB/counter/+/config/max_power_errorcase",writeable:!0},{topic:"openWB/counter/+/config/max_total_power",writeable:!0},{topic:"openWB/counter/config/consider_less_charging",writeable:!0},{topic:"openWB/counter/config/home_consumption_source_id",writeable:!0},{topic:"openWB/counter/get/hierarchy",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/pv/+/config/max_ac_out",writeable:!0},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},componentConfigs:{get(){return t=>{let e=this.componentConfigurations;return Object.keys(e).filter(s=>e[s]?.type.includes(t)).reduce((s,b)=>({...s,[b]:e[b]}),{})}}},counterConfigs:{get(){return this.componentConfigs("counter")}},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.sort((e,s)=>e.text==s.text?0:e.text>s.text?1:-1)},inverterConfigs:{get(){return this.componentConfigs("inverter")}},batConfigs:{get(){return this.componentConfigs("bat")}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let s=this.getChargePoint(t.id);s&&(e[t.id]=s.name)}else{let s=this.getComponent(t.id);s&&(e[t.id]=s.name)}return t.children.forEach(s=>{e={...e,...this.getElementTreeNames(s)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},isComponentType(t,e){return t?.split("_").includes(e)}}},U={class:"loadManagementConfig"},D={name:"loadManagementConfigForm"},F={key:0},P={key:1},O={key:0},H={key:1};function N(t,e,s,b,T,g){const h=u("openwb-base-alert"),B=u("router-link"),S=u("openwb-base-button-group-input"),z=u("openwb-base-select-input"),w=u("openwb-base-heading"),k=u("font-awesome-icon"),p=u("openwb-base-number-input"),c=u("openwb-base-card"),y=u("sortable-list"),C=u("openwb-base-submit-buttons");return l(),m("div",U,[d("form",D,[o(c,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",F,[o(h,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",P,[s.installAssistantActive?M("",!0):(l(),f(h,{key:0,subtype:"info"},{default:r(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),o(B,{to:"/IoConfiguration"},{default:r(()=>[...e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])]),_:1}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1})),o(S,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/counter/config/consider_less_charging",n))},{help:r(()=>[...e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])]),_:1},8,["model-value"]),o(z,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateState("openWB/counter/config/home_consumption_source_id",n))},{help:r(()=>[...e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])]),_:1},8,["options","groups","model-value"]),o(w,null,{default:r(()=>[...e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])]),_:1}),o(h,{subtype:"info"},{default:r(()=>[...e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Üblicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])]),_:1}),(l(!0),m(v,null,W(g.counterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:r(()=>[o(k,{icon:["fas","gauge-high"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:r(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:r(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:r(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:r(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_power_errorcase",a*1e3)},{help:r(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.inverterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:r(()=>[o(k,{icon:["fas","solar-panel"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:r(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[21]||(e[21]=[i(" Vorhandene Speichermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.batConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[o(k,{icon:["fas","car-battery"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung des Speichers",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/config/max_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/bat/"+n.id+"/config/max_power",a*1e3)},{help:r(()=>[...e[22]||(e[22]=[i(" Die maximale Leistung wird lediglich für eine Plausibilitätsprüfung der Speicherwerte genutzt. Bei 0kW erfolgt keine Prüfung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),o(c,{title:"Struktur",collapsible:!0,collapsed:!0},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",O,[o(h,{subtype:"info"},{default:r(()=>[...e[23]||(e[23]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",H,[o(y,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateState("openWB/counter/get/hierarchy",n))},{help:r(()=>[...e[24]||(e[24]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])]),_:1},8,["model-value","labels"])]))]),_:1}),o(C,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[4]||(e[4]=n=>t.$emit("reset")),onDefaults:e[5]||(e[5]=n=>t.$emit("defaults"))})])])}const X=A(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfiguration.vue"]]);export{X as default}; diff --git a/web/settings/assets/MqttBridgeConfiguration-hMk_UUpV.js b/web/settings/assets/MqttBridgeConfiguration-DpHaWJdF.js similarity index 99% rename from web/settings/assets/MqttBridgeConfiguration-hMk_UUpV.js rename to web/settings/assets/MqttBridgeConfiguration-DpHaWJdF.js index 8c7e14be58..ad6c8de39f 100644 --- a/web/settings/assets/MqttBridgeConfiguration-hMk_UUpV.js +++ b/web/settings/assets/MqttBridgeConfiguration-DpHaWJdF.js @@ -1 +1 @@ -import{F as z,l as D,d as A,aj as C}from"./vendor-fortawesome-CBc-2W7w.js";import{C as W}from"./index-CyH1Au4V.js";import{_ as q,l as u,k as m,e as b,m as a,q as o,A as s,J as L,x as g,y as _,u as B,K as T,L as Q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";D.add(A,C);const Z={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:z},mixins:[W],emits:["sendCommand","save","reset"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0}],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){const t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");if(!t||typeof t!="object")return{};const e={...t};for(const[v,h]of Object.entries(e))h?.remote?.is_openwb_cloud&&delete e[v];return e}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},y={class:"mqttBridgeConfiguration"},E={key:0},I={key:1},N=["name"];function P(t,e,v,h,f,i){const S=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),w=u("font-awesome-icon"),k=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),U=u("openwb-base-number-input"),x=u("openwb-base-submit-buttons"),M=u("openwb-base-card");return m(),b(T,null,[a(S,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Willst Du die MQTT-Brücke "'+L(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",y,[a(c,{subtype:"danger"},{default:o(()=>[...e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])]),_:1}),a(M,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),_(k,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(w,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",E,[a(c,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),_(c,{key:0,subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])]),_:1})):B("",!0),(m(!0),b(T,null,Q(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(M,{title:l?.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(k,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(w,{icon:["fas","trash"]})]),_:1},8,["onClick"])]),footer:o(()=>[a(x,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l?.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l?.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l?.remote?.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l?.remote?.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l?.remote?.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l?.remote?.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l?.remote?.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l?.remote?.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l?.remote?.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l?.remote?.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.remote?.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=q(Z,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfiguration.vue"]]);export{J as default}; +import{F as z,l as D,d as A,aj as C}from"./vendor-fortawesome-CBc-2W7w.js";import{C as W}from"./index-D_eD74fL.js";import{_ as q,l as u,k as m,e as b,m as a,q as o,A as s,J as L,x as g,y as _,u as B,K as T,L as Q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";D.add(A,C);const Z={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:z},mixins:[W],emits:["sendCommand","save","reset"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0}],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){const t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");if(!t||typeof t!="object")return{};const e={...t};for(const[v,h]of Object.entries(e))h?.remote?.is_openwb_cloud&&delete e[v];return e}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},y={class:"mqttBridgeConfiguration"},E={key:0},I={key:1},N=["name"];function P(t,e,v,h,f,i){const S=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),w=u("font-awesome-icon"),k=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),U=u("openwb-base-number-input"),x=u("openwb-base-submit-buttons"),M=u("openwb-base-card");return m(),b(T,null,[a(S,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Willst Du die MQTT-Brücke "'+L(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",y,[a(c,{subtype:"danger"},{default:o(()=>[...e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])]),_:1}),a(M,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),_(k,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(w,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",E,[a(c,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),_(c,{key:0,subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])]),_:1})):B("",!0),(m(!0),b(T,null,Q(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(M,{title:l?.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(k,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(w,{icon:["fas","trash"]})]),_:1},8,["onClick"])]),footer:o(()=>[a(x,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l?.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l?.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l?.remote?.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l?.remote?.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l?.remote?.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l?.remote?.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l?.remote?.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l?.remote?.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l?.remote?.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l?.remote?.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.remote?.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=q(Z,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfiguration.vue"]]);export{J as default}; diff --git a/web/settings/assets/OpenwbSortableList-BORHS8nd.js b/web/settings/assets/OpenwbSortableList-CSUuyi79.js similarity index 97% rename from web/settings/assets/OpenwbSortableList-BORHS8nd.js rename to web/settings/assets/OpenwbSortableList-CSUuyi79.js index 3309ffcbc8..727b0368e9 100644 --- a/web/settings/assets/OpenwbSortableList-BORHS8nd.js +++ b/web/settings/assets/OpenwbSortableList-CSUuyi79.js @@ -1 +1 @@ -import{O as V}from"./index-CyH1Au4V.js";import{_ as b,a4 as v,l as o,k as l,y as r,q as d,x as f,j as k,m as S,u as p,A as g,J as _,D as B,f as m,e as O}from"./vendor-Bo8v-nQD.js";import{F as L,l as A,at as C,au as E,X as N,a4 as q,a3 as j,a2 as x}from"./vendor-fortawesome-CBc-2W7w.js";A.add(C,E,N,q,j,x);const D={name:"OpenwbNestedList",components:{draggable:v,FontAwesomeIcon:L},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0},nesting:{type:Boolean,default:!0}},methods:{classes(e){var a="";switch(e.type){case"bat":a+="battery";break;case"cp":a+="charge-point";break;default:a+=e.type;break}return a},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function U(e,a,t,w,h,n){const i=o("font-awesome-icon"),u=o("openwb-nested-list",!0),c=o("draggable");return l(),r(c,{class:"dragArea w-100 mb-0",tag:"ul",list:t.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[f("li",null,[f("div",{class:k(["element-titel",n.classes(s)])},[f("span",null,[S(i,{class:"handle",icon:["fas",t.nesting?"arrows-alt":"arrows-up-down"]},null,8,["icon"]),n.getElementIcon(s)?(l(),r(i,{key:0,icon:n.getElementIcon(s)},null,8,["icon"])):p("",!0),g(" "+_(n.getElementLabel(s.id)),1)])],2),t.nesting&&s.children?(l(),r(u,{key:0,modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:t.labels,nesting:t.nesting},null,8,["modelValue","onUpdate:modelValue","labels","nesting"])):p("",!0)])]),_:1},8,["list"])}const I=b(D,[["render",U],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),W={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:V,OpenwbNestedList:I},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0},nesting:{type:Boolean,default:!0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},F={key:1};function z(e,a,t,w,h,n){const i=o("openwb-nested-list"),u=o("openwb-base-setting-element");return l(),r(u,null,B({title:d(()=>[m(e.$slots,"title",{},()=>[g(_(t.title),1)])]),default:d(()=>[n.value!==void 0?(l(),r(i,{key:0,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=c=>n.value=c),labels:t.labels,nesting:t.nesting},null,8,["modelValue","labels","nesting"])):(l(),O("div",F,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[m(e.$slots,"help")]),key:"0"}:void 0]),1024)}const P=b(W,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{P as S}; +import{O as V}from"./index-D_eD74fL.js";import{_ as b,a4 as v,l as o,k as l,y as r,q as d,x as f,j as k,m as S,u as p,A as g,J as _,D as B,f as m,e as O}from"./vendor-Bo8v-nQD.js";import{F as L,l as A,at as C,au as E,X as N,a4 as q,a3 as j,a2 as x}from"./vendor-fortawesome-CBc-2W7w.js";A.add(C,E,N,q,j,x);const D={name:"OpenwbNestedList",components:{draggable:v,FontAwesomeIcon:L},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0},nesting:{type:Boolean,default:!0}},methods:{classes(e){var a="";switch(e.type){case"bat":a+="battery";break;case"cp":a+="charge-point";break;default:a+=e.type;break}return a},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function U(e,a,t,w,h,n){const i=o("font-awesome-icon"),u=o("openwb-nested-list",!0),c=o("draggable");return l(),r(c,{class:"dragArea w-100 mb-0",tag:"ul",list:t.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[f("li",null,[f("div",{class:k(["element-titel",n.classes(s)])},[f("span",null,[S(i,{class:"handle",icon:["fas",t.nesting?"arrows-alt":"arrows-up-down"]},null,8,["icon"]),n.getElementIcon(s)?(l(),r(i,{key:0,icon:n.getElementIcon(s)},null,8,["icon"])):p("",!0),g(" "+_(n.getElementLabel(s.id)),1)])],2),t.nesting&&s.children?(l(),r(u,{key:0,modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:t.labels,nesting:t.nesting},null,8,["modelValue","onUpdate:modelValue","labels","nesting"])):p("",!0)])]),_:1},8,["list"])}const I=b(D,[["render",U],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),W={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:V,OpenwbNestedList:I},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0},nesting:{type:Boolean,default:!0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},F={key:1};function z(e,a,t,w,h,n){const i=o("openwb-nested-list"),u=o("openwb-base-setting-element");return l(),r(u,null,B({title:d(()=>[m(e.$slots,"title",{},()=>[g(_(t.title),1)])]),default:d(()=>[n.value!==void 0?(l(),r(i,{key:0,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=c=>n.value=c),labels:t.labels,nesting:t.nesting},null,8,["modelValue","labels","nesting"])):(l(),O("div",F,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[m(e.$slots,"help")]),key:"0"}:void 0]),1024)}const P=b(W,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{P as S}; diff --git a/web/settings/assets/SecurityConfiguration-BMtEoSIk.js b/web/settings/assets/SecurityConfiguration-Ckkg6YKx.js similarity index 99% rename from web/settings/assets/SecurityConfiguration-BMtEoSIk.js rename to web/settings/assets/SecurityConfiguration-Ckkg6YKx.js index 1cc7e7e2e0..2e5619d685 100644 --- a/web/settings/assets/SecurityConfiguration-BMtEoSIk.js +++ b/web/settings/assets/SecurityConfiguration-Ckkg6YKx.js @@ -1,2 +1,2 @@ -import{F as q,l as M,A as _,af as E,B as P,ao as L,d as T,aj as Z}from"./vendor-fortawesome-CBc-2W7w.js";import{C as I}from"./index-CyH1Au4V.js";import{_ as O,l as w,k as u,e as f,m as i,q as r,A as l,x as d,y as g,J as k,u as b,K as U,L as W,z as N,j as H}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";M.add(_,E,P,L,T,Z);const F={name:"OpenwbSecurityView",components:{FontAwesomeIcon:q},mixins:[I],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","sendCommand"],data(){return{mqttTopics:[{topic:"$CONTROL/dynamic-security/v1/response",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/allow_unencrypted_access",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/web_theme",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!1},{topic:"openWB/optional/int_display/theme",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!1}],activeControlCommand:null,controlCommandsQueue:[],clients:[],clientDetails:{},groups:[],groupDetails:{},rawRoles:[],roleDetails:{},rolesVersion:null,showAddUserModal:!1,newClientName:null,newClientEmail:null,newClientPassword:null,newClientPasswordConfirmation:null,showAddGroupModal:!1,newGroupName:null,anonymousGroupName:null,dynSecAdminRoleName:"dynsec-admin",userGroupName:"user",displayGroupName:"display",defaultAclAccess:[],showResetModal:!1,skipInit:!1}},computed:{dynSecResponse(){return this.$store.state.mqtt["$CONTROL/dynamic-security/v1/response"]},loggedInUser(){return this.$store.state.local.username||null},userManagementActive:{get(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},set(t){this.skipInit=!0,this.updateState("openWB/system/security/user_management_active",t)}},addUserDisabled(){return!this.newClientName||!this.newClientEmail||!this.newClientPassword||!this.newClientPasswordConfirmation||this.newClientPassword!==this.newClientPasswordConfirmation||this.clients.includes(this.newClientName)},addGroupDisabled(){return!this.newGroupName||this.groups.includes(this.newGroupName)},readableAcls(){return t=>!t||!Array.isArray(t)?"":t.sort((e,h)=>e.topich.topic?1:0).map(e=>{const v={publishClientSend:"Veröffentlichen",publishClientReceive:"Empfangen",subscribe:"Abonnieren",unsubscribe:"Abonnement aufheben",subscribeLiteral:"Abonnieren (exakt)",unsubscribeLiteral:"Abonnement aufheben (exakt)",subscribePattern:"Abonnieren (Muster)",unsubscribePattern:"Abonnement aufheben (Muster)"}[e.acltype]||e.acltype,s=e.allow===!0?"erlaubt":e.allow===!1?"verboten":"unbekannt";return`${e.topic?'"'+e.topic+'"':""} -> ${v} ${s}`}).join(` +import{F as q,l as M,A as _,af as E,B as P,ao as L,d as T,aj as Z}from"./vendor-fortawesome-CBc-2W7w.js";import{C as I}from"./index-D_eD74fL.js";import{_ as O,l as w,k as u,e as f,m as i,q as r,A as l,x as d,y as g,J as k,u as b,K as U,L as W,z as N,j as H}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";M.add(_,E,P,L,T,Z);const F={name:"OpenwbSecurityView",components:{FontAwesomeIcon:q},mixins:[I],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","sendCommand"],data(){return{mqttTopics:[{topic:"$CONTROL/dynamic-security/v1/response",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/allow_unencrypted_access",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/web_theme",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!1},{topic:"openWB/optional/int_display/theme",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!1}],activeControlCommand:null,controlCommandsQueue:[],clients:[],clientDetails:{},groups:[],groupDetails:{},rawRoles:[],roleDetails:{},rolesVersion:null,showAddUserModal:!1,newClientName:null,newClientEmail:null,newClientPassword:null,newClientPasswordConfirmation:null,showAddGroupModal:!1,newGroupName:null,anonymousGroupName:null,dynSecAdminRoleName:"dynsec-admin",userGroupName:"user",displayGroupName:"display",defaultAclAccess:[],showResetModal:!1,skipInit:!1}},computed:{dynSecResponse(){return this.$store.state.mqtt["$CONTROL/dynamic-security/v1/response"]},loggedInUser(){return this.$store.state.local.username||null},userManagementActive:{get(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},set(t){this.skipInit=!0,this.updateState("openWB/system/security/user_management_active",t)}},addUserDisabled(){return!this.newClientName||!this.newClientEmail||!this.newClientPassword||!this.newClientPasswordConfirmation||this.newClientPassword!==this.newClientPasswordConfirmation||this.clients.includes(this.newClientName)},addGroupDisabled(){return!this.newGroupName||this.groups.includes(this.newGroupName)},readableAcls(){return t=>!t||!Array.isArray(t)?"":t.sort((e,h)=>e.topich.topic?1:0).map(e=>{const v={publishClientSend:"Veröffentlichen",publishClientReceive:"Empfangen",subscribe:"Abonnieren",unsubscribe:"Abonnement aufheben",subscribeLiteral:"Abonnieren (exakt)",unsubscribeLiteral:"Abonnement aufheben (exakt)",subscribePattern:"Abonnieren (Muster)",unsubscribePattern:"Abonnement aufheben (Muster)"}[e.acltype]||e.acltype,s=e.allow===!0?"erlaubt":e.allow===!1?"verboten":"unbekannt";return`${e.topic?'"'+e.topic+'"':""} -> ${v} ${s}`}).join(` `)},componentName(){return t=>{const e=`openWB/system/device/+/component/${t}/config`;return Object.values(this.getWildcardTopics(e))[0]?.name||void 0}},chargePointName(){return t=>{const e=`openWB/chargepoint/${t}/config`;return this.$store.state.mqtt[e]?.name||void 0}},vehicleName(){return t=>{const e=`openWB/vehicle/${t}/name`;return this.$store.state.mqtt[e]||void 0}},ioDeviceName(){return t=>{const e=`openWB/system/io/${t}/config`;return this.$store.state.mqtt[e]?.name||void 0}},ioActionName(){return t=>{const e=`openWB/io/action/${t}/config`;return this.$store.state.mqtt[e]?.name||void 0}},routes(){return this.$router.getRoutes()},routeName(){return t=>{const e=t.split("-").map(v=>v.charAt(0).toUpperCase()+v.slice(1)).join(""),h=this.routes.find(v=>v.name===e);if(h===void 0){console.warn("No route found for view:",t,"(searched for route name:",e+")");return}return h.meta.heading}},friendlyRoleName(){return t=>{const e=o=>{switch(o[0]){case"counter":return"Zähler";case"inverter":return"Wechselrichter";case"bat":return"Speicher";case"chargepoint":return"Ladepunkt";case"vehicle":return"Fahrzeug";case"io":switch(o[1]){case"device":return"Ein-/Ausgangs Gerät";case"action":return"Ein-/Ausgangs Aktion"}break;default:return o[0]}},h=o=>{let c=o[1],p=e(o),m="",z;switch(o[0]){case"counter":case"inverter":case"bat":m=this.componentName(c)||c;break;case"chargepoint":m=this.chargePointName(c)||c;break;case"vehicle":m=this.vehicleName(c)||c;break;case"io":switch(c=o[2],o[1]){case"device":m=this.ioDeviceName(c)||c;break;case"action":m=this.ioActionName(c)||c;break;default:m=c}break}return s[s.length-2]=="write"?z="MQTT-Input":(z="lesen",["chargepoint","vehicle"].includes(o[0])&&(z+=" und bedienen")),`Daten: ${p} '${m}' (${c}) ${z}`};let v=null;switch(t){case"charge-log-access":case"install-assistant-access":case"data-management-access":case"legal-settings-access":v=t.replace("-access","");break;case"settings-access":return"Einstellungen: Zugang ermöglichen";case"legacy-smart-home-configuration-access":return"Einstellungen: Konfiguration - SmartHome";case"full-access":return"Voller Zugang lesen und schreiben";case this.dynSecAdminRoleName:return"Sicherheits-Administrator";case"basic-display-data":return"Basisdaten: Display";case"basic-system-data":return"Basisdaten: System";case"basic-theme-data":return"Basisdaten: Hauptseite/Theme";case"basic-user-data":return"Basisdaten: Benutzer";case"other-data":return"Daten: Externe Anwendungen lesen und schreiben";case"electricity-price-access":return"Daten: Strompreise lesen";case"graph-access":return"Daten: Verlaufsdiagramm lesen";case"home-consumption-access":return"Daten: Hausverbrauch lesen"}const s=t.split("-");if((t.endsWith("-configuration-access")||t.endsWith("-installation-access")||t.endsWith("-access")&&s.length==2)&&(v=t.replace("-access","")),v!==null){const o=this.routeName(v);if(o!==void 0)return`Einstellungen: ${o}`}if(s[1]=="sum")switch(s[0]){case"inverter":return"Daten: Wechselrichter Summendaten lesen";case"bat":return"Daten: Speicher Summendaten lesen";case"chargepoint":return"Daten: Ladepunkt Summendaten lesen"}if(!isNaN(s[1])&&["counter","inverter","bat","chargepoint","vehicle"].includes(s[0]))return h(s);switch(s[0]){case"vehicle":if(s[1]==="configuration")return"Einstellungen: Fahrzeuge";break;case"io":return s[1]==="configuration"?"Einstellungen: Ein-/Ausgänge":h(s)}return`*${t}*`}},rolesList(){return this.roles.map(t=>({name:t,friendlyName:this.friendlyRoleName(t)})).sort((t,e)=>t.friendlyNamee.friendlyName?1:0)},webThemeSupported(){return this.$store.state.mqtt["openWB/general/web_theme"]?.userManagementSupported===!0},displayThemeSupported(){return this.$store.state.mqtt["openWB/optional/int_display/theme"]?.userManagementSupported===!0}},watch:{dynSecResponse(t){t&&t.responses&&t.responses.forEach(e=>{switch(e.command){case"listClients":this.clients=JSON.parse(JSON.stringify(e.data.clients));break;case"getClient":this.clientDetails[e.data.client.username]=JSON.parse(JSON.stringify(e.data.client));break;case"createClient":case"disableClient":case"enableClient":this.getClientList();break;case"modifyClient":case"deleteClient":this.getClientList(),this.getGroupsDetails();break;case"listGroups":this.groups=JSON.parse(JSON.stringify(e.data.groups));break;case"getAnonymousGroup":this.anonymousGroupName=e.data.group.groupname;break;case"getGroup":this.groupDetails[e.data.group.groupname]=JSON.parse(JSON.stringify(e.data.group));break;case"createGroup":this.getGroupList();break;case"modifyGroup":case"deleteGroup":this.getGroupList(),this.getClientsDetails();break;case"listRoles":this.roles=JSON.parse(JSON.stringify(e.data.roles)).filter(h=>h.startsWith("openwb-version:")?(this.rolesVersion=h.split(":")[1],!1):!0);break;case"getRole":this.roleDetails[e.data.role.rolename]=JSON.parse(JSON.stringify(e.data.role));break;case"getDefaultACLAccess":this.defaultAclAccess=JSON.parse(JSON.stringify(e.data.acls));break;default:console.warn("Unhandled dynamic security response:",e);break}}),this.activeControlCommand=null,this.processControlCommandQueue()},loggedInUser(t,e){t!==e&&this.$router.go()},userManagementActive(t,e){t!==e&&this.init()}},mounted(){this.init()},methods:{init(){if(this.skipInit){console.debug("Skipping initialization of Security view."),this.skipInit=!1;return}this.clients=[],this.clientDetails={},this.groups=[],this.groupDetails={},this.roles=[],this.roleDetails={},this.userManagementActive&&(console.debug("Initializing Security view for user:",this.loggedInUser),this.getAnonymousGroupName(),this.getDefaultAclAccess(),this.getClientList(),this.getGroupList(),this.getRoleList())},handleResetModal(t){this.showResetModal=!1,t==="confirm"&&this.$emit("sendCommand",{command:"resetUserManagement"})},saveSecuritySettings(){this.userManagementActive||(console.info("User management deactivated, removing mqtt cookie."),this.$cookies.remove("mqtt")),this.$emit("save",this.mqttTopicsToPublish)},sendControlCommand(t,e={}){if(this.activeControlCommand!==null){console.warn("Control command already running, please wait.");return}this.activeControlCommand=t;const h={commands:[{command:t,...e}]};console.debug("$CONTROL command:",h),this.$root.doPublish("$CONTROL/dynamic-security/v1",h)},queueControlCommand(t,e={}){this.controlCommandsQueue.push({command:t,payload:e}),this.processControlCommandQueue()},processControlCommandQueue(){if(this.activeControlCommand!==null||this.controlCommandsQueue.length===0)return;const{command:t,payload:e}=this.controlCommandsQueue.shift();this.sendControlCommand(t,e)},getClientList(){this.queueControlCommand("listClients")},getClientsDetails(){this.clients.forEach(t=>{this.queueControlCommand("getClient",{username:t})})},getClient(t){this.queueControlCommand("getClient",{username:t})},createClient(t){if(t==="confirm"){if(!this.newClientName||!this.newClientEmail||!this.newClientPassword||this.newClientPassword!==this.newClientPasswordConfirmation){this.$root.postClientMessage("Ungültige Eingaben. Bitte stelle sicher, dass der Benutzername, die E-Mail-Adresse und das Passwort ausgefüllt sind und die Passwortbestätigung übereinstimmt.","danger");return}this.queueControlCommand("createClient",{username:this.newClientName,password:this.newClientPassword,textname:this.newClientEmail})}this.showAddUserModal=!1,this.newClientName=null,this.newClientEmail=null,this.newClientPassword=null,this.newClientPasswordConfirmation=null},deleteClient(t){if(t===this.loggedInUser){console.error("Cannot delete currently logged in user:",t),this.$root.postClientMessage("Der aktuell angemeldete Benutzer kann nicht gelöscht werden.","danger");return}this.queueControlCommand("deleteClient",{username:t})},toggleClientDisabled(t){const e=this.clientDetails[t]?.disabled||!1;if(t===this.loggedInUser&&e===!1){console.error("Cannot disable currently logged in user:",t),this.$root.postClientMessage("Der aktuell angemeldete Benutzer kann nicht deaktiviert werden.","danger");return}this.queueControlCommand(e?"enableClient":"disableClient",{username:t}),this.queueControlCommand("getClient",{username:t})},modifyClient(t){if(t===this.loggedInUser&&!this.clientDetails[t]?.roles.map(e=>e.rolename).includes(this.dynSecAdminRoleName)&&(console.error(`Cannot remove ${this.dynSecAdminRoleName} role from currently logged in user:`,t),this.$root.postClientMessage(`Die Rolle '${this.friendlyRoleName(this.dynSecAdminRoleName)}' kann vom aktuell angemeldeten Benutzer nicht entfernt werden und wird automatisch wieder hinzugefügt, da sie für die Verwaltung der Benutzerrechte benötigt wird. Bitte wechsle vor der Bearbeitung zu einem anderen Benutzer, um die Rolle zu entfernen.`,"warning"),this.clientDetails[t].roles.push({rolename:this.dynSecAdminRoleName})),[null,void 0,""].includes(this.clientDetails[t].password))delete this.clientDetails[t].password;else if(this.clientDetails[t].username==="admin"){console.warn("Admin password change requested, sending updateAdminPassword command to openWB."),this.$emit("sendCommand",{command:"updateAdminPassword",data:{newPassword:this.clientDetails[t].password}}),setTimeout(()=>{console.warn("Admin password updated via openWB command, updating dynamic security plugin with new password."),this.queueControlCommand("modifyClient",{username:t,...this.clientDetails[t]})},500);return}this.queueControlCommand("modifyClient",{username:t,...this.clientDetails[t]})},getGroupList(){this.queueControlCommand("listGroups")},getAnonymousGroupName(){this.queueControlCommand("getAnonymousGroup")},getGroupsDetails(){this.groups.forEach(t=>{this.queueControlCommand("getGroup",{groupname:t})})},getGroup(t){this.queueControlCommand("getGroup",{groupname:t})},createGroup(t){if(t==="confirm"){if(!this.newGroupName||this.groups.includes(this.newGroupName)){this.$root.postClientMessage("Ungültige Eingabe. Bitte stelle sicher, dass der Gruppenname ausgefüllt ist und noch nicht existiert.","danger");return}this.queueControlCommand("createGroup",{groupname:this.newGroupName})}this.showAddGroupModal=!1,this.newGroupName=null},deleteGroup(t){this.queueControlCommand("deleteGroup",{groupname:t})},modifyGroup(t){this.queueControlCommand("modifyGroup",{groupname:t,...this.groupDetails[t]})},getRoleList(){this.queueControlCommand("listRoles")},getRole(t){this.queueControlCommand("getRole",{rolename:t})},getDefaultAclAccess(){this.queueControlCommand("getDefaultACLAccess")}}},J={class:"security"},Q={name:"addUserForm"},j={name:"addGroupForm"},K={key:1},X={name:"accessForm"},Y={key:0},$={key:1},ee=["title","onClick"],ne={key:0},te=["name"],se={key:1},re={key:1},ie={key:0},le=["name"],ae={key:1},oe={key:1},ue={key:0},de=["name"],me={key:1},pe={key:1};function ge(t,e,h,v,s,o){const c=w("openwb-base-modal-dialog"),p=w("openwb-base-alert"),m=w("openwb-base-text-input"),z=w("openwb-base-button-group-input"),G=w("router-link"),x=w("openwb-base-button-input"),R=w("openwb-base-submit-buttons"),D=w("openwb-base-card"),B=w("FontAwesomeIcon"),y=w("font-awesome-icon"),A=w("openwb-base-avatar"),V=w("openwb-base-array-input"),S=w("openwb-base-textarea");return u(),f("div",J,[i(c,{show:s.showResetModal,title:"Benutzerverwaltung zurücksetzen",subtype:"danger",buttons:[{text:"Alles zurücksetzen!",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=n=>o.handleResetModal(n))},{default:r(()=>[...e[16]||(e[16]=[l(" Bist Du sicher, dass Du die openWB Benutzerverwaltung zurücksetzen möchtest? Hiermit werden alle Benutzer, Gruppen und Rollen gelöscht und auf die Werkseinstellungen zurückgesetzt. Diese Aktion ist irreversibel! ",-1)])]),_:1},8,["show"]),i(c,{show:s.showAddUserModal,title:"Benutzer hinzufügen",subtype:"success",buttons:[{text:"Benutzer hinzufügen",event:"confirm",subtype:"success",disabled:o.addUserDisabled}],onModalResult:e[5]||(e[5]=n=>o.createClient(n))},{default:r(()=>[d("form",Q,[i(p,{subtype:"info"},{default:r(()=>[...e[17]||(e[17]=[l(" Der Benutzername kann nicht mehr geändert werden! ",-1)])]),_:1}),i(m,{modelValue:s.newClientName,"onUpdate:modelValue":e[1]||(e[1]=n=>s.newClientName=n),title:"Benutzername",subtype:"user",required:"",validator:n=>s.clients.includes(n)?"Dieser Benutzername ist bereits vergeben":!0},null,8,["modelValue","validator"]),i(m,{modelValue:s.newClientEmail,"onUpdate:modelValue":e[2]||(e[2]=n=>s.newClientEmail=n),title:"E-Mail",subtype:"email",required:""},null,8,["modelValue"]),i(m,{modelValue:s.newClientPassword,"onUpdate:modelValue":e[3]||(e[3]=n=>s.newClientPassword=n),title:"Passwort",subtype:"password",required:""},null,8,["modelValue"]),i(m,{modelValue:s.newClientPasswordConfirmation,"onUpdate:modelValue":e[4]||(e[4]=n=>s.newClientPasswordConfirmation=n),title:"Passwort bestätigen",subtype:"password",required:"",validator:n=>n===s.newClientPassword||"Kennwörter stimmen nicht überein"},null,8,["modelValue","validator"])])]),_:1},8,["show","buttons"]),i(c,{show:s.showAddGroupModal,title:"Gruppe hinzufügen",subtype:"success",buttons:[{text:"Gruppe hinzufügen",event:"confirm",subtype:"success",disabled:o.addGroupDisabled}],onModalResult:e[7]||(e[7]=n=>o.createGroup(n))},{default:r(()=>[d("form",j,[i(p,{subtype:"info"},{default:r(()=>[...e[18]||(e[18]=[l(" Der Gruppenname kann nicht mehr geändert werden! ",-1)])]),_:1}),i(m,{modelValue:s.newGroupName,"onUpdate:modelValue":e[6]||(e[6]=n=>s.newGroupName=n),title:"Gruppenname",subtype:"user",required:"",validator:n=>s.groups.includes(n)?"Dieser Gruppenname ist bereits vergeben":!0},null,8,["modelValue","validator"])])]),_:1},8,["show","buttons"]),t.$store.state.mqtt["openWB/general/extern"]!==!1?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[l(" Die Einstellungen zur Sicherheit und Benutzerverwaltung werden aktuell nur für primary openWB unterstützt! ",-1)])]),_:1})):(u(),f("div",K,[d("form",X,[i(D,{title:"Allgemein"},{footer:r(()=>[i(R,{"form-name":"accessForm",onSave:o.saveSecuritySettings,onReset:e[11]||(e[11]=n=>t.$emit("reset")),onDefaults:e[12]||(e[12]=n=>t.$emit("defaults"))},null,8,["onSave"])]),default:r(()=>[i(p,{subtype:"danger"},{default:r(()=>[...e[20]||(e[20]=[l(" Der ",-1),d("strong",null,"Safari Browser",-1),l(" hat in der aktuellen ",-1),d("strong",null,"MacOS/iOS Version 26.x",-1),l(" Probleme mit Websocket-Verbindungen über HTTPs, wenn eine IP anstelle des Hostnamens verwendet wird. Das äußert sich darin, dass die Verbindung nicht zuverlässig hergestellt werden kann. Häufig sind mehrere Verbindungsversuche (Seite neu laden) notwendig, damit die Verbindung steht. Sobald die Verbindung hergestellt werden konnte, funktioniert der Zugriff für die aktuelle Sitzung auch mit Safari zuverlässig. Es wird empfohlen, einen anderen Browser zu verwenden oder die openWB über einen Hostnamen aufzurufen, um dieses Problem zu umgehen. ",-1)])]),_:1}),i(z,{title:"Unverschlüsselten Zugang erlauben","model-value":t.$store.state.mqtt["openWB/general/allow_unencrypted_access"],disabled:o.userManagementActive,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/general/allow_unencrypted_access",n))},{help:r(()=>[...e[21]||(e[21]=[d("p",null," Hier kann eingestellt werden, ob unverschlüsselter Zugang zu openWB erlaubt ist. Dies betrifft sowohl den Zugriff über MQTT (Ports 1883 und 9001) als auch über HTTP (Port 80) (Weboberfläche). ",-1),d("p",null,[d("strong",null,"Hinweis:"),l(" Aus Sicherheitsgründen sollte der unverschlüsselte Zugang nur in geschützten Netzwerken aktiviert werden. Um die Benutzerverwaltung zu aktivieren, muss der unverschlüsselte Zugang zuerst deaktiviert werden. ")],-1)])]),_:1},8,["model-value","disabled"]),i(z,{title:"Benutzerverwaltung","model-value":o.userManagementActive,disabled:t.$store.state.mqtt["openWB/general/allow_unencrypted_access"]===!0||!o.webThemeSupported||!o.displayThemeSupported,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>o.userManagementActive=n)},{help:r(()=>[...e[22]||(e[22]=[d("p",null," Hier kann die integrierte Benutzerverwaltung von openWB aktiviert oder deaktiviert werden. Mit aktivierter Benutzerverwaltung ist der Zugriff auf den Mosquitto Broker (MQTT) und davon abhängige Dienste (Weboberfläche, API) nur mit einem gültigen Benutzerkonto (oder anonym ohne Anmeldung, falls erlaubt) möglich. ",-1)])]),_:1},8,["model-value","disabled"]),i(p,{subtype:"warning",class:"mt-2"},{default:r(()=>[e[26]||(e[26]=d("p",null,[d("strong",null,"Die Benutzerverwaltung erfordert zwingend die Abschaltung des unverschlüsselten Zugangs!")],-1)),d("p",null,[e[24]||(e[24]=l(" Werden Änderungen an dem unverschlüsselten Zugang oder dem Status der Benutzerverwaltung vorgenommen, so ist zwingend ein ",-1)),i(G,{to:"/System/SystemConfiguration"},{default:r(()=>[...e[23]||(e[23]=[l("Neustart dieser openWB",-1)])]),_:1}),e[25]||(e[25]=l(" erforderlich, damit die Änderungen wirksam werden! Erst danach können Benutzer, Gruppen und Rollen angelegt und verwaltet werden. ",-1))]),e[27]||(e[27]=d("p",null,"Standard-Admin-Benutzer nach der ersten Aktivierung oder dem Zurücksetzen:",-1)),e[28]||(e[28]=d("ul",null,[d("li",null,[l("Benutzername: "),d("strong",null,"admin")]),d("li",null,[l("Passwort: "),d("strong",null,"openwb")])],-1))]),_:1}),i(p,{subtype:"danger"},{default:r(()=>[...e[29]||(e[29]=[l(" Einige Bereiche sind noch nicht kompatibel mit der Benutzerverwaltung. Bitte überprüfe vor der Aktivierung, ob Du eine oder mehrere dieser Funktionen nutzt: ",-1),d("ul",null,[d("li",null,"SmartHome"),d("li",null,"SimpleAPI")],-1)])]),_:1}),o.webThemeSupported?b("",!0):(u(),g(p,{key:0,subtype:"danger",class:"mt-2"},{default:r(()=>[l(' Das ausgewählte Theme "'+k(t.$store.state.mqtt["openWB/general/web_theme"]?.name)+'" für die ',1),i(G,{to:"/GeneralConfiguration"},{default:r(()=>[...e[30]||(e[30]=[l("Hauptseite",-1)])]),_:1}),e[31]||(e[31]=l(" unterstützt die Benutzerverwaltung nicht. ",-1))]),_:1})),o.displayThemeSupported?b("",!0):(u(),g(p,{key:1,subtype:"danger",class:"mt-2"},{default:r(()=>[l(' Das ausgewählte Theme "'+k(t.$store.state.mqtt["openWB/optional/int_display/theme"]?.name)+'" für das ',1),i(G,{to:"/DisplayConfiguration"},{default:r(()=>[...e[32]||(e[32]=[l("Display",-1)])]),_:1}),e[33]||(e[33]=l(" unterstützt die Benutzerverwaltung nicht. ",-1))]),_:1})),e[35]||(e[35]=d("hr",null,null,-1)),i(x,{title:"Benutzerverwaltung zurücksetzen","button-text":"Zurücksetzen",subtype:"danger",disabled:o.userManagementActive||o.loggedInUser!==null,onButtonClicked:e[10]||(e[10]=n=>s.showResetModal=!0)},{help:r(()=>[...e[34]||(e[34]=[l(" Hiermit werden alle Benutzer, Gruppen und Rollen der openWB Benutzerverwaltung gelöscht und auf die Werkseinstellungen zurückgesetzt. Diese Aktion ist irreversibel!",-1),d("br",null,null,-1),d("strong",null,"Hinweis:",-1),l(" Die Benutzerverwaltung muss deaktiviert sein und danach ein erforderlicher Neustart durchgeführt werden, um die Benutzerverwaltung zurücksetzen zu können. ",-1)])]),_:1},8,["disabled"])]),_:1})]),o.userManagementActive&&s.anonymousGroupName!==null?(u(),f("div",Y,[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(u(),g(p,{key:0,subtype:"warning"},{default:r(()=>[e[37]||(e[37]=l(" Sie müssen der ",-1)),i(G,{to:"/System/LegalSettings"},{default:r(()=>[...e[36]||(e[36]=[l("Datenschutzerklärung",-1)])]),_:1}),e[38]||(e[38]=l(' zustimmen, um die Funktion "Kennwort vergessen" nutzen zu können! ',-1))]),_:1})):b("",!0),i(D,{collapsible:!0,collapsed:!0,onExpanded:e[14]||(e[14]=n=>o.getClientsDetails())},{header:r(()=>[i(B,{icon:["fas","user"]}),e[39]||(e[39]=l(" Benutzer ",-1))]),actions:r(n=>[n.collapsed?b("",!0):(u(),g(A,{key:0,class:"bg-success clickable",title:"Neuen Benutzer erstellen",onClick:e[13]||(e[13]=N(a=>s.showAddUserModal=!0,["stop"]))},{default:r(()=>[i(y,{icon:["fas","plus"]})]),_:1}))]),default:r(()=>[s.clients.length===0?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[40]||(e[40]=[l(" Es sind noch keine Benutzer angelegt oder Du hast nicht die benötigten Rechte, Daten anzuzeigen. ",-1)])]),_:1})):(u(),f("div",$,[(u(!0),f(U,null,W(s.clients,n=>(u(),g(D,{key:n,collapsible:!0,collapsed:!0,onExpanded:a=>o.getClient(n)},{header:r(()=>[i(B,{icon:["fas",s.clientDetails[n]?.disabled?"user-slash":"user"]},null,8,["icon"]),l(" "+k(n),1)]),actions:r(a=>[a.collapsed?b("",!0):(u(),f("span",{key:0,class:H(["pill mr-2",[s.clientDetails[n]?.disabled?"bg-danger":"bg-success",{clickable:o.loggedInUser!==n}]]),title:o.loggedInUser!==n?`Benutzer ${s.clientDetails[n]?.disabled?"aktivieren":"deaktivieren"}`:"Der aktuell angemeldete Benutzer kann nicht deaktiviert werden.",onClick:N(C=>{o.loggedInUser!==n&&o.toggleClientDisabled(n)},["stop"])},k(s.clientDetails[n]?.disabled?"Deaktiviert":"Aktiv"),11,ee)),!a.collapsed&&o.loggedInUser!==n&&!n.startsWith("Display-")?(u(),g(A,{key:1,class:"bg-danger clickable",title:"Benutzer löschen",onClick:N(C=>{o.loggedInUser!==n&&o.deleteClient(n)},["stop"])},{default:r(()=>[i(y,{icon:["fas","trash"]})]),_:1},8,["onClick"])):b("",!0)]),footer:r(()=>[i(R,{"form-name":`clientForm-${n}`,"save-id":`saveClientBtn-${n}`,"hide-reset":!0,"hide-defaults":!0,onSave:a=>o.modifyClient(n)},null,8,["form-name","save-id","onSave"])]),default:r(()=>[s.clientDetails[n]?(u(),f("div",ne,[d("form",{name:`clientForm-${n}`},[i(m,{modelValue:s.clientDetails[n].username,"onUpdate:modelValue":a=>s.clientDetails[n].username=a,title:"Benutzername",subtype:"user",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),s.clientDetails[n].username.startsWith("Display-")?b("",!0):(u(),g(m,{key:0,modelValue:s.clientDetails[n].textname,"onUpdate:modelValue":a=>s.clientDetails[n].textname=a,title:"E-Mail",subtype:"email",required:!s.clientDetails[n].username.startsWith("Display-")},{help:r(()=>[...e[41]||(e[41]=[l(' Die hier angegebene E-Mail wird für die Funktion "Kennwort vergessen" verwendet. ',-1)])]),_:1},8,["modelValue","onUpdate:modelValue","required"])),s.clientDetails[n].username.startsWith("Display-")?b("",!0):(u(),g(m,{key:1,modelValue:s.clientDetails[n].password,"onUpdate:modelValue":a=>s.clientDetails[n].password=a,title:"Passwort",subtype:"password"},{help:r(()=>[...e[42]||(e[42]=[l(" Bereits festgelegte Passwörter werden nicht angezeigt!",-1),d("br",null,null,-1),l(" Um das Passwort zu ändern, bitte ein neues Passwort eingeben und speichern, andernfalls das Feld leer lassen. ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])),i(V,{title:"Zugewiesene Gruppen","valid-elements":s.groups,"model-value":s.clientDetails[n].groups.map(a=>a.groupname),"onUpdate:modelValue":a=>{s.clientDetails[n].groups=a.map(C=>({groupname:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","users"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","users"]})]),help:r(()=>[...e[43]||(e[43]=[l(" Hier können Gruppen zugewiesen werden, denen der Benutzer angehört. Über die Gruppen werden Rollen und damit verbundene Zugriffsrechte (ACLs) vererbt. Es wird empfohlen, Berechtigungen über Gruppen zu verwalten, damit bei mehreren Benutzern mit ähnlichen Rechten die Verwaltung einfacher und übersichtlicher bleibt. Es können aber auch direkt Rollen zugewiesen werden, um Ergänzungen zu den Gruppenrechten abzubilden. ",-1)])]),_:1},8,["valid-elements","model-value","onUpdate:modelValue"]),i(V,{title:"Zugewiesene Rollen","valid-elements":o.rolesList.map(a=>({value:a.name,label:a.friendlyName})),"model-value":s.clientDetails[n].roles.map(a=>a.rolename),"onUpdate:modelValue":a=>{s.clientDetails[n].roles=a.map(C=>({rolename:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),help:r(()=>[...e[44]||(e[44]=[l(" Hier können Rollen zugewiesen werden, die dem Benutzer direkt zugeordnet werden. Über die Rollen werden Zugriffsrechte (ACLs) vererbt. Es wird empfohlen, Berechtigungen über Gruppen zu verwalten und hier nur ergänzende Rollen zuzuweisen, um die Übersicht zu behalten. ",-1)])]),_:1},8,["valid-elements","model-value","onUpdate:modelValue"]),i(S,{modelValue:s.clientDetails[n].textdescription,"onUpdate:modelValue":a=>s.clientDetails[n].textdescription=a,title:"Zusatzinformationen",subtype:"text"},{help:r(()=>[...e[45]||(e[45]=[l(" Hier können zusätzliche Informationen zum Benutzer hinterlegt werden. ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])],8,te)])):(u(),f("div",se,"Lade Benutzerdetails..."))]),_:2},1032,["onExpanded"]))),128))]))]),_:1}),i(D,{collapsible:!0,collapsed:!0},{header:r(()=>[i(B,{icon:["fas","users"]}),e[46]||(e[46]=l(" Gruppen ",-1))]),actions:r(n=>[n.collapsed?b("",!0):(u(),g(A,{key:0,class:"bg-success clickable",title:"Neue Gruppe erstellen",onClick:e[15]||(e[15]=N(a=>s.showAddGroupModal=!0,["stop"]))},{default:r(()=>[i(y,{icon:["fas","plus"]})]),_:1}))]),default:r(()=>[s.groups.length===0?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[47]||(e[47]=[l(" Es sind noch keine Gruppen angelegt oder Du hast nicht die benötigten Rechte, Daten anzuzeigen. ",-1)])]),_:1})):(u(),f("div",re,[(u(!0),f(U,null,W(s.groups,n=>(u(),g(D,{key:n,collapsible:!0,collapsed:!0,onExpanded:a=>o.getGroup(n)},{header:r(()=>[i(B,{icon:["fas","users"]}),l(" "+k(n),1)]),actions:r(a=>[!a.collapsed&&![s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n)?(u(),g(A,{key:0,class:"bg-danger clickable",title:"Gruppe löschen",onClick:N(C=>o.deleteGroup(n),["stop"])},{default:r(()=>[i(y,{icon:["fas","trash"]})]),_:1},8,["onClick"])):b("",!0)]),footer:r(()=>[i(R,{"form-name":`groupForm-${n}`,"save-id":`saveGroupBtn-${n}`,"hide-reset":!0,"hide-defaults":!0,onSave:a=>o.modifyGroup(n)},null,8,["form-name","save-id","onSave"])]),default:r(()=>[s.groupDetails[n]?(u(),f("div",ie,[n===s.anonymousGroupName?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[l(' Die Gruppe "'+k(n)+'" kann nicht gelöscht werden, da sie für den anonymen Zugriff (ohne Anmeldung) auf openWB benötigt wird. ',1)]),_:2},1024)):b("",!0),n===s.userGroupName?(u(),g(p,{key:1,subtype:"info"},{default:r(()=>[l(' Die Gruppe "'+k(n)+'" kann nicht bearbeitet werden, da sie von openWB für reguläre Benutzer verwendet wird. Es wird empfohlen, diese Gruppe allen Benutzern zuzuweisen und weitere Rollen durch separate Gruppen oder direkt bei den Benutzern zu hinterlegen. ',1)]),_:2},1024)):b("",!0),n===s.displayGroupName?(u(),g(p,{key:2,subtype:"info"},{default:r(()=>[l(' Die Gruppe "'+k(n)+'" kann nicht bearbeitet werden, da sie von openWB für integrierte Displays verwendet wird. Es wird empfohlen, diese Gruppe allen Displays zuzuweisen und weitere Rollen durch separate Gruppen oder direkt bei den Display-Benutzern zu hinterlegen. ',1)]),_:2},1024)):b("",!0),d("form",{name:`groupForm-${n}`},[i(m,{modelValue:s.groupDetails[n].groupname,"onUpdate:modelValue":a=>s.groupDetails[n].groupname=a,title:"Gruppenname",subtype:"text",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),i(m,{modelValue:s.groupDetails[n].textname,"onUpdate:modelValue":a=>s.groupDetails[n].textname=a,title:"Beschreibung",subtype:"text",disabled:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n)},null,8,["modelValue","onUpdate:modelValue","disabled"]),i(V,{title:"Zugewiesene Benutzer","valid-elements":s.clients,"model-value":s.groupDetails[n].clients.map(a=>a.username),"onUpdate:modelValue":a=>{s.groupDetails[n].clients=a.map(C=>({username:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","circle-user"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","circle-user"]})]),_:1},8,["valid-elements","model-value","onUpdate:modelValue"]),i(V,{title:"Zugewiesene Rollen","valid-elements":o.rolesList.map(a=>({value:a.name,label:a.friendlyName})),disabled:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n),readonly:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n),"model-value":s.groupDetails[n].roles.map(a=>a.rolename),"onUpdate:modelValue":a=>{s.groupDetails[n].roles=a.map(C=>({rolename:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),_:1},8,["valid-elements","disabled","readonly","model-value","onUpdate:modelValue"]),i(S,{modelValue:s.groupDetails[n].textdescription,"onUpdate:modelValue":a=>s.groupDetails[n].textdescription=a,title:"Zusatzinformationen",subtype:"text",disabled:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n)},{help:r(()=>[...e[48]||(e[48]=[l(" Hier können zusätzliche Informationen zur Gruppe hinterlegt werden. ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","disabled"])],8,le)])):(u(),f("div",ae,"Lade Gruppendetails..."))]),_:2},1032,["onExpanded"]))),128))]))]),_:1}),i(D,{collapsible:!0,collapsed:!0},{header:r(()=>[i(B,{icon:["fas","file-shield"]}),e[49]||(e[49]=l(" Rollen ",-1))]),default:r(()=>[t.roles.length===0?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[50]||(e[50]=[l(" Es sind noch keine Rollen angelegt oder Du hast nicht die benötigten Rechte, Daten anzuzeigen. ",-1)])]),_:1})):(u(),f("div",oe,[i(p,{subtype:"info"},{default:r(()=>[...e[51]||(e[51]=[l(" Rollen definieren die Zugriffsrechte (Access Control Lists, ACLs) für Benutzer und Gruppen. Jeder Benutzer oder jede Gruppe kann mehrere Rollen zugewiesen bekommen, wodurch sich die effektiven Zugriffsrechte zusammensetzen.",-1),d("br",null,null,-1),l(" openWB erstellt automatisch relevante Rollen während der Installation und bei der Aktivierung bestimmter Funktionen oder Bearbeitung von Ladepunkten, Geräten und Komponenten etc. Rollen können hier nicht bearbeitet oder gelöscht werden. ",-1)])]),_:1}),i(m,{"model-value":s.rolesVersion,title:"Versionsnummer der Rollendefinitionen",disabled:""},{help:r(()=>[...e[52]||(e[52]=[l(" Hier wird die aktuell verwendete Rollen-Version der openWB Benutzerverwaltung angezeigt. Diese Version gibt an, welche vordefinierten Rollen und Zugriffsrechte (ACLs) von openWB generiert werden. Bei einem Update von openWB kann sich die Rollen-Version ändern, wodurch neue Rollen hinzugefügt oder bestehende Rollen angepasst werden können. ",-1)])]),_:1},8,["model-value"]),i(S,{title:"Standard-Zugriffsrechte","model-value":o.readableAcls(s.defaultAclAccess),disabled:""},{help:r(()=>[...e[53]||(e[53]=[l(" Hier werden die Standard Zugriffsrechte (Access Control Lists, ACLs) angezeigt. Diese werden verwendet, wenn keine spezifischen ACLs für einen Benutzer oder eine Gruppe definiert sind oder die Topics nicht explizit abgedeckt werden. ",-1)])]),_:1},8,["model-value"]),e[55]||(e[55]=d("hr",null,null,-1)),(u(!0),f(U,null,W(o.rolesList,n=>(u(),g(D,{key:n.name,collapsible:!0,collapsed:!0,onExpanded:a=>o.getRole(n.name)},{header:r(()=>[i(B,{icon:["fas","file-shield"]}),l(" "+k(n.friendlyName),1)]),default:r(()=>[s.roleDetails[n.name]?(u(),f("div",ue,[d("form",{name:`roleForm-${n.name}`},[i(m,{modelValue:s.roleDetails[n.name].rolename,"onUpdate:modelValue":a=>s.roleDetails[n.name].rolename=a,title:"Rollenname",subtype:"text",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),i(m,{modelValue:s.roleDetails[n.name].textname,"onUpdate:modelValue":a=>s.roleDetails[n.name].textname=a,title:"Beschreibung",subtype:"text",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),s.roleDetails[n.name].textdescription?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[l(k(s.roleDetails[n.name].textdescription),1)]),_:2},1024)):b("",!0),i(S,{title:"Zugriffsrechte (ACLs)","model-value":o.readableAcls(s.roleDetails[n.name].acls),disabled:""},{help:r(()=>[...e[54]||(e[54]=[l(" Hier werden die Zugriffsrechte (Access Control Lists, ACLs) für diese Rolle angezeigt. ",-1)])]),_:1},8,["model-value"])],8,de)])):(u(),f("div",me,"Lade Rollendetails..."))]),_:2},1032,["onExpanded"]))),128))]))]),_:1})])):(u(),f("div",pe,[i(p,{subtype:"info"},{default:r(()=>[e[57]||(e[57]=l(" Die Benutzerverwaltung ist deaktiviert. In diesem Modus hat jeder uneingeschränkten Zugriff auf openWB.",-1)),e[58]||(e[58]=d("br",null,null,-1)),e[59]||(e[59]=l(" Um Benutzer, Gruppen und Rollen zu verwalten, muss die Benutzerverwaltung zuerst aktiviert werden. Dazu ist nach der Aktivierung zwingend ein ",-1)),i(G,{to:"/System/SystemConfiguration"},{default:r(()=>[...e[56]||(e[56]=[l("Neustart dieser openWB",-1)])]),_:1}),e[60]||(e[60]=l(" erforderlich, damit die Änderungen wirksam werden. ",-1))]),_:1})]))]))])}const ye=O(F,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SecurityConfiguration.vue"]]);export{ye as default}; diff --git a/web/settings/assets/Status-DYns2lPM.js b/web/settings/assets/Status-bV6B6bv6.js similarity index 99% rename from web/settings/assets/Status-DYns2lPM.js rename to web/settings/assets/Status-bV6B6bv6.js index 519fd94647..0ae825a998 100644 --- a/web/settings/assets/Status-DYns2lPM.js +++ b/web/settings/assets/Status-bV6B6bv6.js @@ -1,3 +1,3 @@ -import{C as $}from"./index-CyH1Au4V.js";import{F as q,l as C,V as E,W as M,c as z,f as H,X as P,Y as V,Z as K,M as R,_ as G,$ as F,a0 as Z,a1 as J,a2 as Q,a3 as A,a4 as I,a5 as U,n as X,o as Y,p as tt,q as et,a6 as st,a7 as ot}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as W,l as n,k as r,y as g,D as O,q as i,x as t,e as b,m as l,A as h,u as y,J as a,f as S,j as at,L as k,K as B}from"./vendor-Bo8v-nQD.js";import{L as it,C as rt,p as nt,a as ct,b as lt,c as dt,P as pt,d as mt,T as ut,i as gt,e as ht}from"./vendor-chartjs-0RUe1kvq.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";C.add(E,M,z,H);const bt={name:"StatusCard",components:{FontAwesomeIcon:q},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}},hasMessageLineBreaks(){return this.stateMessage.includes(` +import{C as $}from"./index-D_eD74fL.js";import{F as q,l as C,V as E,W as M,c as z,f as H,X as P,Y as V,Z as K,M as R,_ as G,$ as F,a0 as Z,a1 as J,a2 as Q,a3 as A,a4 as I,a5 as U,n as X,o as Y,p as tt,q as et,a6 as st,a7 as ot}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as W,l as n,k as r,y as g,D as O,q as i,x as t,e as b,m as l,A as h,u as y,J as a,f as S,j as at,L as k,K as B}from"./vendor-Bo8v-nQD.js";import{L as it,C as rt,p as nt,a as ct,b as lt,c as dt,P as pt,d as mt,T as ut,i as gt,e as ht}from"./vendor-chartjs-0RUe1kvq.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";C.add(E,M,z,H);const bt={name:"StatusCard",components:{FontAwesomeIcon:q},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}},hasMessageLineBreaks(){return this.stateMessage.includes(` `)}}},ft={class:"container"},_t={class:"row justify-content-end"},vt={key:0,class:"col px-0"},yt={key:0},wt={style:{"white-space":"pre-wrap"}},Tt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-avatar"),m=n("openwb-base-alert"),u=n("openwb-base-card");return r(),g(u,{subtype:c.subtype,collapsible:!0,collapsed:!0},O({header:i(()=>[S(e.$slots,"header-left")]),actions:i(()=>[S(e.$slots,"header-right"),l(d,{class:at(["ml-2",`bg-${s.stateClass}`]),title:s.stateLabel},{default:i(()=>[l(p,{icon:s.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:i(()=>[S(e.$slots,"default")]),_:2},[c.componentId!==void 0||c.stateMessage?{name:"footer",fn:i(()=>[t("div",ft,[t("div",_t,[c.stateMessage?(r(),b("div",vt,[l(m,{subtype:s.stateClass},{default:i(()=>[l(p,{icon:s.stateIcon},null,8,["icon"]),o[0]||(o[0]=h(" Modulmeldung: ",-1)),s.hasMessageLineBreaks?(r(),b("br",yt)):y("",!0),t("span",wt,a(c.stateMessage),1)]),_:1},8,["subtype"])])):y("",!0),c.componentId!==void 0?(r(),b("div",Tt,[t("div",xt,"ID: "+a(c.componentId),1)])):y("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=W(bt,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(P);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/chargepoint/get/daily_exported",writeable:!1},{topic:"openWB/chargepoint/get/daily_imported",writeable:!1},{topic:"openWB/chargepoint/get/exported",writeable:!1},{topic:"openWB/chargepoint/get/imported",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Bt={class:"text-right"},$t={class:"row"},qt={class:"col text-right text-monospace"},Ct={class:"row"},Nt={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},Pt={class:"row"},At={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"primary"},{"header-left":i(()=>[l(p,{icon:["fas","charging-station"]}),o[0]||(o[0]=h(" Alle Ladepunkte ",-1))]),"header-right":i(()=>[t("span",Bt,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:i(()=>[l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",$t,[t("div",qt,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001)),1)])]),_:1}),l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:i(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Ct,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Nt,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",Pt,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",At,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1})]),_:1})}const Lt=W(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(P,V,K,R,G,F,Z,J);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{chargePointId:{type:Number,required:!0}},data(){return{mqttTopics:[{topic:`openWB/chargepoint/${this.chargePointId}/config`,writeable:!1},{topic:`openWB/chargepoint/${this.chargePointId}/get/+`,writeable:!1},{topic:`openWB/chargepoint/${this.chargePointId}/set/+`,writeable:!1},{topic:`openWB/internal_chargepoint/${this.chargePointId}/data/phases_to_use`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointId}},chargePointConfig:{get(){return this.$store.state.mqtt[`${this.baseTopic}/config`]}},chargingStatus:{get(){let e=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return e==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:e==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},Mt={style:{"white-space":"pre-wrap"}},zt={class:"row"},Ht={class:"col text-right text-monospace"},Vt={class:"col text-right text-monospace"},Kt={class:"row"},Rt={key:0,class:"col text-right text-monospace"},Gt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Zt={class:"row"},Jt={class:"col-4 text-right text-monospace"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},ie={class:"col text-right text-monospace"},re={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},me={class:"row"},ue={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},be={class:"row"},fe={class:"col text-center text-monospace"};function _e(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-alert"),m=n("openwb-base-card"),u=n("status-card");return s.chargePointConfig?(r(),g(u,{key:0,subtype:"primary","component-id":c.chargePointId,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","charging-station"]}),h(" "+a(s.chargePointConfig.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[l(p,{icon:s.chargingStatus.icon,title:s.chargingStatus.text},null,8,["icon","title"]),h(" "+a(s.chargingStatus.text),1)])]),l(d,{subtype:"info"},{default:i(()=>[o[1]||(o[1]=h(" Statusmeldung: ",-1)),t("span",Mt,a(e.$store.state.mqtt[s.baseTopic+"/get/state_str"]),1)]),_:1}),t("div",null," max. Ladeleistung: "+a((e.max_power=e.formatNumberTopic(s.baseTopic+"/get/max_evse_current",0))=="-"?e.max_power:(()=>{const _=Math.floor(e.max_power*3*230/1e3);return _===13?"20A 1-phasig, 16A 3-phasig":_+" kW"})()),1)]),_:1}),l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:i(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",zt,[t("div",Ht,a(e.formatNumberTopic(s.baseTopic+"/set/current",2))+" A",1),t("div",Vt,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Kt,[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),b("div",Rt,a(e.formatNumberTopic("openWB/internal_chargepoint/"+c.chargePointId+"/data/phases_to_use")),1)):(r(),b("div",Gt,a(e.formatNumberTopic(s.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(e.formatNumberTopic(s.baseTopic+"/get/phases_in_use")),1)])]),_:1}),l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:i(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Zt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Jt,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Qt,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Ut,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:i(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",ie,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",re,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",me,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",ue,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",be,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",fe,a(e.formatNumberTopic(s.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])):y("",!0)}const ve=W(jt,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(Q);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{counter:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:`openWB/counter/${this.counter.id}/get/+`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},we={class:"row"},Te={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Be={class:"col text-right text-monospace pl-0"},$e={class:"row"},qe={class:"col"},Ce={class:"row"},Ne={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Pe={class:"col text-right text-monospace pl-0"},Ae={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},Me={class:"col"},ze={class:"row"},He={class:"col text-right text-monospace pl-0"},Ve={class:"col text-right text-monospace pl-0"},Ke={class:"col text-right text-monospace pl-0"},Re={class:"row"},Ge={class:"col"},Fe={class:"row"},Ze={class:"col text-right text-monospace pl-0"},Je={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"};function Ue(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"danger","component-id":c.counter.id,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","gauge-high"]}),h(" "+a(c.counter.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",we,[t("div",Te,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(e.formatNumberTopic(s.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1}),l(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Be,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1}),l(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",$e,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",qe,[t("div",Ce,[t("div",Ne,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[1]),1),t("div",Pe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Ae,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",Me,[t("div",ze,[t("div",He,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ve,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ke,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",Re,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Ge,[t("div",Fe,[t("div",Ze,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[0]),1),t("div",Je,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[1]),1),t("div",Qe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=W(ye,[["render",Ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(A);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/pv/get/+",writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"};function ns(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"success",state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","solar-panel"]}),o[0]||(o[0]=h(" Alle Wechselrichter ",-1))]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",is,a(e.formatNumberTopic(s.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",rs,a(e.formatNumberTopic(s.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const cs=W(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(A);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:`openWB/pv/${this.inverter.id}/get/+`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},ms={class:"col text-right text-monospace"},us={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},bs={class:"col text-right text-monospace"},fs={class:"row"},_s={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"};function xs(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"success","component-id":c.inverter.id,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","solar-panel"]}),h(" "+a(c.inverter.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ms,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",us,[t("div",gs,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(e.formatNumberTopic(s.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",bs,a(e.formatNumberTopic(s.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",fs,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",_s,[t("div",vs,[t("div",ys,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",ws,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",Ts,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=W(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/bat/get/+",writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Bs={class:"row"},$s={class:"col text-right text-monospace pl-0"},qs={class:"col text-right text-monospace pl-0"},Cs={class:"row"},Ns={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},Ps={class:"row"},As={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"warning",state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","car-battery"]}),o[0]||(o[0]=h(" Alle Speicher ",-1))]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",1,1,.001))+" kW / "+a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" % ",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Bs,[t("div",$s,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",qs,a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" %",1)])]),_:1}),l(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Cs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ns,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Ps,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",As,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const Ls=W(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{battery:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:`openWB/bat/${this.battery.id}/get/+`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},Ms={class:"col text-right text-monospace pl-0"},zs={class:"row"},Hs={class:"col text-right text-monospace"},Vs={class:"col text-right text-monospace"},Ks={class:"row"},Rs={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Fs={class:"row"},Zs={class:"col"},Js={class:"row"},Qs={class:"col text-right text-monospace pl-0"},Us={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"warning","component-id":c.battery.id,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","car-battery"]}),h(" "+a(c.battery.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",1,1,.001))+" kW / "+a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" % ",1)]),default:i(()=>[e.$store.state.mqtt[s.baseTopic+"/get/state_str"]?.length>0?(r(),g(d,{key:0,title:"Status der aktiven Speichersteuerung",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[h(a(e.$store.state.mqtt[s.baseTopic+"/get/state_str"]),1)]),_:1})):y("",!0),l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ms,a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" %",1)])]),_:1}),l(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",zs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Hs,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Vs,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Ks,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Rs,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Gs,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Zs,[t("div",Js,[t("div",Qs,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",Us,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=W(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(U,X,Y,tt,et);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:"openWB/io/action/+/config",writeable:!1},{topic:"openWB/io/action/+/timestamp",writeable:!1},{topic:`openWB/io/states/${this.ioDevice.id}/get/+`,writeable:!1}],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,e])=>e.configuration.io_device===this.ioDevice.id))},ioActionState(){return e=>{const o=this.$store.state.mqtt[`openWB/io/action/${e}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(e){return this.state[e].icon},getTitle(e){return this.state[e].title},getActionTitle(e){return this.state[e].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},io={class:"row"},ro={class:"row"},no={class:"row"};function co(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-alert"),m=n("openwb-base-tooltip"),u=n("openwb-base-card"),_=n("status-card");return r(),g(_,{subtype:"secondary",state:e.$store.state.mqtt[`${s.baseTopic}/get/fault_state`],"state-message":e.$store.state.mqtt[`${s.baseTopic}/get/fault_str`],"component-id":c.ioDevice.id},{"header-left":i(()=>[l(p,{icon:["fas","tower-broadcast"]}),h(" "+a(c.ioDevice.name),1)]),default:i(()=>[l(u,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[Object.keys(s.ioActionConfigs).length===0?(r(),g(d,{key:0,subtype:"info",class:"mb-2"},{default:i(()=>[...o[0]||(o[0]=[h(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])]),_:1})):(r(!0),b(B,{key:1},k(s.ioActionConfigs,(f,x)=>(r(),b("div",{key:x,class:"row"},[t("div",so,[l(m,{description:s.getActionTitle(![void 0,null].includes(s.ioActionState(f.id)))},{default:i(()=>[l(p,{icon:s.getIcon(![void 0,null].includes(s.ioActionState(f.id))),class:"fa-fw"},null,8,["icon"])]),_:2},1032,["description"]),h(" "+a(f.name),1)]),t("div",oo,a(s.ioActionState(f.id)),1)]))),128))]),_:1}),s.hasDigitalInputs?(r(),g(u,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",ao,[(r(!0),b(B,null,k(s.digitalInputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},[h(a(x)+": ",1),l(m,{description:s.getTitle(f)},{default:i(()=>[l(p,{icon:s.getIcon(f),class:"fa-fw"},null,8,["icon"])]),_:2},1032,["description"])]))),128))])]),_:1})):y("",!0),s.hasDigitalOutputs?(r(),g(u,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",io,[(r(!0),b(B,null,k(s.digitalOutputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},[h(a(x)+": ",1),l(m,{description:s.getTitle(f)},{default:i(()=>[l(p,{icon:s.getIcon(f),class:"fa-fw"},null,8,["icon"])]),_:2},1032,["description"])]))),128))])]),_:1})):y("",!0),s.hasAnalogInputs?(r(),g(u,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",ro,[(r(!0),b(B,null,k(s.analogInputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},a(x)+": "+a(f),1))),128))])]),_:1})):y("",!0),s.hasAnalogOutputs?(r(),g(u,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",no,[(r(!0),b(B,null,k(s.analogOutputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},a(x)+": "+a(f),1))),128))])]),_:1})):y("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=W(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(st);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{vehicleId:{type:Number,required:!0}},data(){return{mqttTopics:[{topic:`openWB/vehicle/${this.vehicleId}/get/+`,writeable:!1},{topic:`openWB/vehicle/${this.vehicleId}/info`,writeable:!1},{topic:`openWB/vehicle/${this.vehicleId}/name`,writeable:!1}]}},computed:{information:{get(){return this.$store.state.mqtt[this.baseTopic+"/info"]}},name:{get(){const e=this.baseTopic+"/name";return this.$store.state.mqtt[e]!==void 0?this.$store.state.mqtt[e]:`Fahrzeug ${this.vehicleId}`}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},socOdometer:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/odometer"]!==void 0&&this.$store.state.mqtt[this.baseTopic+"/get/odometer"]!==null?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/odometer"]):"-"}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleId}}}},mo={class:"row"},uo={class:"col text-monospace"},go={class:"row"},ho={class:"col text-monospace"},bo={class:"row"},fo={class:"col text-right text-monospace"},_o={class:"row"},vo={class:"col text-right text-monospace"},yo={class:"row"},wo={class:"col text-right text-monospace"},To={class:"row"},xo={class:"col text-right text-monospace"};function Wo(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"info","component-id":c.vehicleId,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},O({"header-left":i(()=>[l(p,{icon:["fas","car"]}),h(" "+a(s.name),1)]),default:i(()=>[s.information!==void 0?(r(),g(d,{key:0,title:"Fahrzeuginformationen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",mo,[o[0]||(o[0]=t("div",{class:"col pr-0"},"Hersteller",-1)),t("div",uo,a(s.information.manufacturer),1)]),t("div",go,[o[1]||(o[1]=t("div",{class:"col pr-0"},"Modell",-1)),t("div",ho,a(s.information.model),1)])]),_:1})):y("",!0),l(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",bo,[o[2]||(o[2]=t("div",{class:"col pr-0 text-right"},"Ladestand",-1)),t("div",fo,a(s.soc)+" %",1)]),t("div",_o,[o[3]||(o[3]=t("div",{class:"col pr-0 text-right"},"Reichweite",-1)),t("div",vo,a(s.socRange)+" km",1)]),t("div",yo,[o[4]||(o[4]=t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel",-1)),t("div",wo,a(s.socTimestamp),1)]),t("div",To,[o[5]||(o[5]=t("div",{class:"col pr-0 text-right"},"Kilometerstand",-1)),t("div",xo,a(s.socOdometer)+" km",1)])]),_:1})]),_:2},[s.soc!="-"?{name:"header-right",fn:i(()=>[h(a(s.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const ko=W(po,[["render",Wo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(ot);rt.register(nt,ct,lt,dt,pt,mt,ut,gt,ht);const Bo={name:"ElectricityPricingCard",components:{StatusCard:N,FontAwesomeIcon:q,ChartjsLine:it},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/optional/ep/flexible_tariff/get/fault_state",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/get/fault_str",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/get/prices",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/ep/get/prices",writeable:!1},{topic:"openWB/optional/ep/grid_fee/get/fault_state",writeable:!1},{topic:"openWB/optional/ep/grid_fee/get/fault_str",writeable:!1},{topic:"openWB/optional/ep/grid_fee/get/prices",writeable:!1},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!1}],chartDatasets:{datasets:[{label:"Gesamtpreis",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(0, 149, 0, 0.9)",backgroundColor:"rgba(0, 149, 0, 0.7)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}},{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(139, 0, 0, 0.9)",backgroundColor:"rgba(139, 0, 0, 0.9)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}},{label:"Netzentgelt",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.4)",backgroundColor:"rgba(255, 0, 0, 0.4)",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:!0,position:"top",labels:{filter:function(e,o){return!o.datasets[e.datasetIndex].hidden}}}},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},callback:this.formatTickLabel,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:{electricityPricingConfigured(){const e=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"],o=this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"];return e&&e.type||o&&o.type},chartDataRead(){return this.chartDataObject.datasets.some(o=>o.data!==void 0&&!o.hidden)},chartDataObject(){const e=JSON.parse(JSON.stringify(this.chartDatasets)),o=this.getEndOfToday();let c=null;if(this.$store.state.mqtt["openWB/optional/ep/get/prices"]){var T=this.$store.state.mqtt["openWB/optional/ep/get/prices"],v=[];for(const[u,_]of Object.entries(T))v.push({timestamp:u*1e3,price:_*1e5});if(v.length>0){const u=v.slice(-1)[0];let _=o;if(v.length>1){const f=v.slice(-2,-1)[0];_=u.timestamp+u.timestamp-f.timestamp-1}v.push({timestamp:_,price:u.price})}e.datasets[0].data=v,c=e.datasets[0].data.slice(-1)[0].timestamp}else e.datasets[0].hidden=!0;if(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type&&this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/prices"],p=[];for(const[u,_]of Object.entries(s))c&&u*1e3>c||p.push({timestamp:u*1e3,price:_*1e5});if(p.length>0){const u=p.slice(-1)[0];let _=o;if(p.length>1){const f=p.slice(-2,-1)[0];_=u.timestamp+u.timestamp-f.timestamp-1}p.push({timestamp:_,price:u.price})}e.datasets[1].data=p}else e.datasets[1].hidden=!0;if(this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type&&this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/prices"]){var d=this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/prices"],m=[];for(const[u,_]of Object.entries(d))c&&u*1e3>c||m.push({timestamp:u*1e3,price:_*1e5});if(m.length>0){const u=m.slice(-1)[0];let _=o;if(m.length>1){const f=m.slice(-2,-1)[0];_=u.timestamp+u.timestamp-f.timestamp-1}m.push({timestamp:_,price:u.price})}e.datasets[2].data=m}else e.datasets[2].hidden=!0;return e},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/ep/flexible_tariff"}},combinedState(){const e=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/fault_state"]||0,o=this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/fault_state"]||0;return Math.max(e,o)},combinedStateMessage(){const e=[];if(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type){const c=(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/fault_state"]||0)>0?this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/fault_str"]:"Kein Fehler.";e.push(`Stromtarif: ${c}`)}if(this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type){const c=(this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/fault_state"]||0)>0?this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/fault_str"]:"Kein Fehler.";e.push(`Netzentgelt: ${c}`)}return e.length>0?e.join(` `):void 0},tariffProvider(){return this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.name||null},gridFeeProvider(){return this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.name||null},showLegend(){const e=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type,o=this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type;return e&&o},dynamicChartOptions(){const e=JSON.parse(JSON.stringify(this.chartOptions));return e.plugins.legend.display=this.showLegend,e.scales.x.ticks.callback=this.formatTickLabel,e}},methods:{getEndOfToday(){return new Date().setHours(23,59,59,999).valueOf()},formatTickLabel(e){const o=new Date(e);return`${this.getEndOfToday()[l(p,{icon:["fas","ranking-star"]}),o[0]||(o[0]=h(" Variable Strompreise ",-1))]),"header-right":i(()=>[h(a(s.currentPrice)+" ct/kWh",1)]),default:i(()=>[l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{header:i(()=>[...o[1]||(o[1]=[h("Tarifinformationen",-1)])]),default:i(()=>[s.tariffProvider?(r(),b("div",$o,[o[2]||(o[2]=t("div",{class:"col-xl-3 pr-0"},"Stromtarif:",-1)),t("div",qo,a(s.tariffProvider),1)])):y("",!0),s.gridFeeProvider?(r(),b("div",Co,[o[3]||(o[3]=t("div",{class:"col-xl-3 pr-0"},"Netzentgelte:",-1)),t("div",No,a(s.gridFeeProvider),1)])):y("",!0)]),_:1}),l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",So,[s.chartDataRead?(r(),g(m,{key:0,ref:"myChart",data:s.chartDataObject,options:s.dynamicChartOptions},null,8,["data","options"])):y("",!0)])]),_:1})]),_:1},8,["state","state-message"])):y("",!0)}const Ao=W(Bo,[["render",Po],["__scopeId","data-v-6a18833c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityPricingCard.vue"]]),Io={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:ko,ElectricityPricingCard:Ao},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/bat/get/power",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!1},{topic:"openWB/pv/get/power",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1}]}},computed:{installedChargePoints:{get(){return Object.keys(this.getWildcardTopics("openWB/chargepoint/+/config")).map(e=>{let o=e.match(/^openWB\/chargepoint\/(\d+)\/config$/);return o?parseInt(o[1]):null}).filter(e=>e!==null)}},showChargePointSumCard:{get(){return this.$store.state.mqtt["openWB/chargepoint/get/power"]!==void 0&&this.$store.state.mqtt["openWB/general/extern"]===!1&&this.installedChargePoints.length>1}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},showInverterSumCard:{get(){return this.$store.state.mqtt["openWB/pv/get/power"]!==void 0&&this.$store.state.mqtt["openWB/general/extern"]===!1&&Object.keys(this.inverterConfigs).length>1}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},showBatterySumCard:{get(){return this.$store.state.mqtt["openWB/bat/get/power"]!==void 0&&this.$store.state.mqtt["openWB/general/extern"]===!1&&Object.keys(this.batteryConfigs).length>1}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicles:{get(){if(this.$store.state.mqtt["openWB/general/extern"]===!0)return[];let e=this.getWildcardTopics("openWB/vehicle/+/info");return Object.keys(e).map(o=>{let c=o.match(/^openWB\/vehicle\/(\d+)\/info$/);return c?parseInt(c[1]):null})}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},showElectricityPricingCard:{get(){return(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type||this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type)&&this.$store.state.mqtt["openWB/general/extern"]===!1}}},methods:{filterComponentsByType(e,o){return Object.keys(e).filter(c=>e[c].type.includes(o)).reduce((c,T)=>({...c,[T]:e[T]}),{})}}},Oo={class:"status"};function Lo(e,o,c,T,v,s){const p=n("charge-point-sum-card"),d=n("charge-point-card"),m=n("counter-card"),u=n("inverter-sum-card"),_=n("inverter-card"),f=n("battery-sum-card"),x=n("battery-card"),L=n("vehicle-card"),j=n("io-device-card"),D=n("electricity-pricing-card");return r(),b("div",Oo,[s.showChargePointSumCard?(r(),g(p,{key:0})):y("",!0),(r(!0),b(B,null,k(s.installedChargePoints,w=>(r(),g(d,{key:w,"charge-point-id":w},null,8,["charge-point-id"]))),128)),(r(!0),b(B,null,k(s.counterConfigs,w=>(r(),g(m,{key:w.id,counter:w},null,8,["counter"]))),128)),s.showInverterSumCard?(r(),g(u,{key:1})):y("",!0),(r(!0),b(B,null,k(s.inverterConfigs,w=>(r(),g(_,{key:w.id,inverter:w},null,8,["inverter"]))),128)),s.showBatterySumCard?(r(),g(f,{key:2})):y("",!0),(r(!0),b(B,null,k(s.batteryConfigs,w=>(r(),g(x,{key:w.id,battery:w},null,8,["battery"]))),128)),(r(!0),b(B,null,k(s.vehicles,w=>(r(),g(L,{key:w,"vehicle-id":w},null,8,["vehicle-id"]))),128)),(r(!0),b(B,null,k(s.ioDeviceConfigs,w=>(r(),g(j,{key:w.id,"io-device":w},null,8,["io-device"]))),128)),s.showElectricityPricingCard?(r(),g(D,{key:3})):y("",!0)])}const Ro=W(Io,[["render",Lo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Ro as default}; diff --git a/web/settings/assets/Support-LbG1Bt3q.js b/web/settings/assets/Support-DMhdXgqE.js similarity index 99% rename from web/settings/assets/Support-LbG1Bt3q.js rename to web/settings/assets/Support-DMhdXgqE.js index 2dabee1cbc..fe677e8283 100644 --- a/web/settings/assets/Support-LbG1Bt3q.js +++ b/web/settings/assets/Support-DMhdXgqE.js @@ -1,3 +1,3 @@ -import{F as V,l as W,g as F}from"./vendor-fortawesome-CBc-2W7w.js";import{C as A}from"./index-CyH1Au4V.js";import{_ as C,l as d,k as f,e as h,m as n,q as s,A as t,x as l,y as w,D as z,j as M,u as k,K as x}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";W.add(F);const q={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[A],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/device/+/config",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],showDeprecatedFirmwareModal:!1,email:void 0,components:void 0,subject:void 0,ticketNumber:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,subject:this.subject,ticketNumber:this.ticketNumber,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){if(this.components!==void 0)return this.components;let r="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const m of Object.values(e)){const p=m.id,o=m.info?.manufacturer||"N/A",u=m.info?.model||"N/A";r+=`(${p}) Hersteller: ${o}, Modell: ${u} +import{F as V,l as W,g as F}from"./vendor-fortawesome-CBc-2W7w.js";import{C as A}from"./index-D_eD74fL.js";import{_ as C,l as d,k as f,e as h,m as n,q as s,A as t,x as l,y as w,D as z,j as M,u as k,K as x}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";W.add(F);const q={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[A],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/device/+/config",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],showDeprecatedFirmwareModal:!1,email:void 0,components:void 0,subject:void 0,ticketNumber:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,subject:this.subject,ticketNumber:this.ticketNumber,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){if(this.components!==void 0)return this.components;let r="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const m of Object.values(e)){const p=m.id,o=m.info?.manufacturer||"N/A",u=m.info?.model||"N/A";r+=`(${p}) Hersteller: ${o}, Modell: ${u} `}return r.trim()},vehicleInfo(){if(this.vehicles!==void 0)return this.vehicles;let r="";const e=this.getWildcardTopics("openWB/vehicle/+/info");for(const[m,p]of Object.entries(e)){const o=parseInt(m.split("/")[2]);if(o!==0){const u=p.manufacturer||"N/A",a=p.model||"N/A";r+=`(${o}) Hersteller: ${u}, Modell: ${a} `}}return r.trim()},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"]}},beforeMount(){this.sendSystemCommand("systemFetchVersions")},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.sendSystemCommand("sendDebug",this.debugData),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}},checkFirmware(){this.updateAvailable?this.showDeprecatedFirmwareModal=!0:this.sendDebugMessage()},verifyModalInput(r){this.showDeprecatedFirmwareModal=!1,r=="confirm"&&this.sendDebugMessage()},sendSystemCommand(r,e={}){this.$emit("sendCommand",{command:r,data:e})}}},N={class:"support"},I={name:"supportForm"},T={key:1},j={key:0},U={class:"row justify-content-center"};function H(r,e,m,p,o,u){const a=d("router-link"),v=d("openwb-base-modal-dialog"),b=d("openwb-base-alert"),y=d("FontAwesomeIcon"),g=d("openwb-base-text-input"),c=d("openwb-base-textarea"),B=d("openwb-base-click-button"),S=d("openwb-base-card"),D=d("font-awesome-icon");return f(),h(x,null,[n(v,{show:o.showDeprecatedFirmwareModal,title:"Achtung: Veraltete Software!",subtype:"danger","prevent-close":!0,buttons:[{text:"Trotzdem versenden",event:"confirm",subtype:"danger"},{text:"Nicht versenden",event:"closeDialog"}],onModalResult:e[0]||(e[0]=i=>u.verifyModalInput(i))},{default:s(()=>[e[9]||(e[9]=t(" Möglicherweise wurde das Problem bereits behoben.",-1)),e[10]||(e[10]=l("br",null,null,-1)),e[11]||(e[11]=t(" Bitte führe vor dem Absenden ein ",-1)),n(a,{to:"/System/SystemConfiguration"},{default:s(()=>[...e[8]||(e[8]=[t(" Update ",-1)])]),_:1}),e[12]||(e[12]=t(" durch.",-1)),e[13]||(e[13]=l("br",null,null,-1)),e[14]||(e[14]=t(" Falls ein Update nicht möglich ist, kann der Systembericht dennoch versendet werden. Falls kein Update gewünscht ist, bieten wir auch über unseren Partner WB Solution GmbH ",-1)),e[15]||(e[15]=l("a",{href:"https://wb-solution.de/produkt/support-token-aeltere-version/",target:"_blank",rel:"noopener noreferrer"},"Support für ältere Softwareversionen",-1)),e[16]||(e[16]=t(" an. ",-1))]),_:1},8,["show"]),l("div",N,[l("form",I,[r.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(f(),w(b,{key:0,subtype:"danger"},{default:s(()=>[e[18]||(e[18]=t(" Du musst der ",-1)),n(a,{to:"/System/LegalSettings"},{default:s(()=>[...e[17]||(e[17]=[t(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=t(" zustimmen, um einen Systembericht senden zu können. ",-1))]),_:1})):(f(),h("div",T,[n(b,{subtype:"success"},{default:s(()=>[e[21]||(e[21]=t(" Du hast der ",-1)),n(a,{to:"/System/LegalSettings"},{default:s(()=>[...e[20]||(e[20]=[t(" Datenschutzerklärung ",-1)])]),_:1}),e[22]||(e[22]=t(" zugestimmt und kannst Systemberichte senden. ",-1))]),_:1}),n(S,{title:"Systembericht"},z({default:s(()=>[r.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(f(),h("div",j,[n(b,{subtype:"danger"},{default:s(()=>[...e[23]||(e[23]=[t(' Vergewissere Dich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1)])]),_:1}),n(b,{subtype:"info"},{default:s(()=>[l("ul",null,[l("li",null,[e[24]||(e[24]=t(" Lies bitte den Hilfetext, der durch Klick auf das ",-1)),n(y,{icon:["far","question-circle"]}),e[25]||(e[25]=t(" angezeigt wird. Nimm das Wiki zur Hilfe. ",-1))]),e[26]||(e[26]=l("li",null," Stelle beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1)),e[27]||(e[27]=l("li",null," Stelle sicher, dass der richtige Lademodus gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1)),e[28]||(e[28]=l("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Du erhältst ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei Dir. Bitte kontrolliere daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhältst Du trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes vermutlich fehlgeschlagen. ",-1))])]),_:1}),n(g,{modelValue:o.email,"onUpdate:modelValue":e[1]||(e[1]=i=>o.email=i),title:"E-Mail",required:"",subtype:"email"},{help:s(()=>[...e[29]||(e[29]=[t(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ",-1)])]),_:1},8,["modelValue"]),n(g,{modelValue:o.subject,"onUpdate:modelValue":e[2]||(e[2]=i=>o.subject=i),title:"Betreff",required:"",minlength:"15",maxlength:"100"},{help:s(()=>[...e[30]||(e[30]=[t(" Du kannst hier einen kurzen Titel für dein Problem angeben. ",-1)])]),_:1},8,["modelValue"]),n(g,{modelValue:o.ticketNumber,"onUpdate:modelValue":e[3]||(e[3]=i=>o.ticketNumber=i),title:"Bestehende Ticketnummer",maxlength:"8",pattern:"[1-9][0-9]{7}"},{help:s(()=>[...e[31]||(e[31]=[t(" Hier kann eine bereits bestehende Ticketnummer eingegeben werden, damit das Ticket schneller zugeordnet werden kann. ",-1)])]),_:1},8,["modelValue"]),n(g,{title:"openWB Seriennummer",required:"","model-value":r.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[4]||(e[4]=i=>r.updateState("openWB/system/serial_number",i))},{help:s(()=>[...e[32]||(e[32]=[t(" Die Seriennummer der openWB findest Du außen am, bei älteren Installationen innen im Gehäuse. Du kannst uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden!",-1),l("br",null,null,-1),t(" Bei einer gekauften openWB wird die Seriennummer automatisch ermittelt. ",-1)])]),_:1},8,["model-value"]),n(c,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500","model-value":u.installedComponents,"onUpdate:modelValue":e[5]||(e[5]=i=>o.components=i)},{help:s(()=>[e[34]||(e[34]=t(" Gib hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind.",-1)),e[35]||(e[35]=l("br",null,null,-1)),n(a,{to:"/HardwareInstallation"},{default:s(()=>[...e[33]||(e[33]=[t(" Die Angaben können auch direkt in der Konfiguration der Komponenten dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),n(c,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500","model-value":u.vehicleInfo,"onUpdate:modelValue":e[6]||(e[6]=i=>o.vehicles=i)},{help:s(()=>[e[37]||(e[37]=t(" Gib hier an, welche Fahrzeuge geladen (Hersteller, Modell, Baujahr).",-1)),e[38]||(e[38]=l("br",null,null,-1)),n(a,{to:"/VehicleConfiguration"},{default:s(()=>[...e[36]||(e[36]=[t(" Die Angaben können auch direkt in der Konfiguration der Fahrzeuge dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),n(c,{modelValue:o.message,"onUpdate:modelValue":e[7]||(e[7]=i=>o.message=i),title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500"},null,8,["modelValue"])])):k("",!0)]),_:2},[r.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[l("div",U,[n(B,{class:M(["col-4",o.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!o.enableSendDebugButton,onButtonClicked:u.checkFirmware},{default:s(()=>[...e[39]||(e[39]=[t(" Absenden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),o.enableSendDebugButton?k("",!0):(f(),w(b,{key:0,subtype:"success"},{default:s(()=>[e[40]||(e[40]=t(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Du kannst diese Seite jetzt verlassen. ",-1)),n(D,{icon:["fas","check"]})]),_:1}))]))])])],64)}const O=C(q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{O as default}; diff --git a/web/settings/assets/SurplusChargeConfiguration-Mmn_2MTQ.js b/web/settings/assets/SurplusChargeConfiguration-i4C8x6Va.js similarity index 99% rename from web/settings/assets/SurplusChargeConfiguration-Mmn_2MTQ.js rename to web/settings/assets/SurplusChargeConfiguration-i4C8x6Va.js index 362b90b8d4..b030dbb37f 100644 --- a/web/settings/assets/SurplusChargeConfiguration-Mmn_2MTQ.js +++ b/web/settings/assets/SurplusChargeConfiguration-i4C8x6Va.js @@ -1 +1 @@ -import{C as f}from"./index-CyH1Au4V.js";import{S as w}from"./SystemVersion-DQAfG1DR.js";import{l as v,a4 as _,ag as W,ah as z}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,l as g,k as h,e as p,x as i,m as a,q as l,A as t,J as k}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";v.add(_,W,z);const S={name:"OpenwbSurplusChargeConfigView",components:{},mixins:[f,w],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/chargemode_config/pv_charging/control_range",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/feed_in_yield",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/phase_switch_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_threshold",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_threshold",writeable:!0},{topic:"openWB/general/extern",writeable:!1}],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;let e=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"];var d="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?d="export":e[0]===0&&e[1]===230?d="import":e[0]===-115&&e[1]===115?d="balanced":d="individual"),d},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}}},watch:{controlMode(n){this.calculatedControlMode=n}}},y={class:"pvChargeConfig"},V={name:"pvChargeConfigForm"},L={key:0},P={key:1},q=["href"];function E(n,e,d,U,C,o){const u=g("openwb-base-alert"),m=g("openwb-base-button-group-input"),s=g("openwb-base-number-input"),c=g("openwb-base-card"),b=g("openwb-base-submit-buttons");return h(),p("div",y,[i("form",V,[a(c,{title:"Regelparameter"},{default:l(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(h(),p("div",L,[a(u,{subtype:"info"},{default:l(()=>[...e[13]||(e[13]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(h(),p("div",P,[a(m,{modelValue:o.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>o.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:l(()=>[...e[14]||(e[14]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),i("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),i("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])]),_:1},8,["modelValue"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:l(()=>[...e[15]||(e[15]=[t(" Untere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:l(()=>[...e[16]||(e[16]=[t(" Obere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),e[32]||(e[32]=i("hr",null,null,-1)),a(u,{subtype:o.chargingSwitchRange<1400?"danger":"info"},{default:l(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+k((o.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),a(s,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:l(()=>[...e[17]||(e[17]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),i("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:l(()=>[...e[18]||(e[18]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[33]||(e[33]=i("hr",null,null,-1)),a(u,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:l(()=>[...e[19]||(e[19]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])]),_:1},8,["subtype"]),a(s,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:l(()=>[...e[20]||(e[20]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:l(()=>[...e[21]||(e[21]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[34]||(e[34]=i("hr",null,null,-1)),a(m,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches"],"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",r))},{help:l(()=>[...e[22]||(e[22]=[t(" Phasenumschaltungen werden zum Schutz der EV- und WB-Hardware begrenzt.",-1),i("br",null,null,-1),t(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),i("br",null,null,-1),t(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phase_switch_delay"],"onUpdate:modelValue":e[8]||(e[8]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/phase_switch_delay",r))},{help:l(()=>[...e[23]||(e[23]=[t(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),i("br",null,null,-1),t(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])]),_:1},8,["model-value"]),e[35]||(e[35]=i("hr",null,null,-1)),a(s,{title:"Regelpunkt Einspeisegrenze",min:-1e3,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:l(()=>[e[24]||(e[24]=t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1)),e[25]||(e[25]=i("br",null,null,-1)),e[26]||(e[26]=t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter in irgendeiner Form abgeregelt wird Weitere Infos dazu im ",-1)),i("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:einstell-konfig:ladeeinstellungen:pv-laden-speicherbeachtung#regelpunkt_einspeisegrenze`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Beachtung der Einspeisegrenze ",8,q),e[27]||(e[27]=t(".",-1)),e[28]||(e[28]=i("br",null,null,-1)),e[29]||(e[29]=t(' Bei Erreichen dieses Werts wird die PV-Ladung nacheinander für jedes Fahrzeug im PV-Modus gestartet, bei welchem "Einspeisegrenze beachten" im Ladeprofil aktiviert ist, dies setzt die Einschaltschwelle außer kraft!',-1)),e[30]||(e[30]=i("br",null,null,-1)),e[31]||(e[31]=t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1))]),_:1},8,["model-value"])]))]),_:1}),a(b,{"form-name":"pvChargeConfigForm",onSave:e[10]||(e[10]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[11]||(e[11]=r=>n.$emit("reset")),onDefaults:e[12]||(e[12]=r=>n.$emit("defaults"))})])])}const F=B(S,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SurplusChargeConfiguration.vue"]]);export{F as default}; +import{C as f}from"./index-D_eD74fL.js";import{S as w}from"./SystemVersion-DQAfG1DR.js";import{l as v,a4 as _,ag as W,ah as z}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,l as g,k as h,e as p,x as i,m as a,q as l,A as t,J as k}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";v.add(_,W,z);const S={name:"OpenwbSurplusChargeConfigView",components:{},mixins:[f,w],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/chargemode_config/pv_charging/control_range",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/feed_in_yield",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/phase_switch_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_threshold",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_threshold",writeable:!0},{topic:"openWB/general/extern",writeable:!1}],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;let e=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"];var d="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?d="export":e[0]===0&&e[1]===230?d="import":e[0]===-115&&e[1]===115?d="balanced":d="individual"),d},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}}},watch:{controlMode(n){this.calculatedControlMode=n}}},y={class:"pvChargeConfig"},V={name:"pvChargeConfigForm"},L={key:0},P={key:1},q=["href"];function E(n,e,d,U,C,o){const u=g("openwb-base-alert"),m=g("openwb-base-button-group-input"),s=g("openwb-base-number-input"),c=g("openwb-base-card"),b=g("openwb-base-submit-buttons");return h(),p("div",y,[i("form",V,[a(c,{title:"Regelparameter"},{default:l(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(h(),p("div",L,[a(u,{subtype:"info"},{default:l(()=>[...e[13]||(e[13]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(h(),p("div",P,[a(m,{modelValue:o.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>o.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:l(()=>[...e[14]||(e[14]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),i("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),i("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])]),_:1},8,["modelValue"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:l(()=>[...e[15]||(e[15]=[t(" Untere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:l(()=>[...e[16]||(e[16]=[t(" Obere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),e[32]||(e[32]=i("hr",null,null,-1)),a(u,{subtype:o.chargingSwitchRange<1400?"danger":"info"},{default:l(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+k((o.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),a(s,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:l(()=>[...e[17]||(e[17]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),i("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:l(()=>[...e[18]||(e[18]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[33]||(e[33]=i("hr",null,null,-1)),a(u,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:l(()=>[...e[19]||(e[19]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])]),_:1},8,["subtype"]),a(s,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:l(()=>[...e[20]||(e[20]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:l(()=>[...e[21]||(e[21]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[34]||(e[34]=i("hr",null,null,-1)),a(m,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches"],"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",r))},{help:l(()=>[...e[22]||(e[22]=[t(" Phasenumschaltungen werden zum Schutz der EV- und WB-Hardware begrenzt.",-1),i("br",null,null,-1),t(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),i("br",null,null,-1),t(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phase_switch_delay"],"onUpdate:modelValue":e[8]||(e[8]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/phase_switch_delay",r))},{help:l(()=>[...e[23]||(e[23]=[t(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),i("br",null,null,-1),t(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])]),_:1},8,["model-value"]),e[35]||(e[35]=i("hr",null,null,-1)),a(s,{title:"Regelpunkt Einspeisegrenze",min:-1e3,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:l(()=>[e[24]||(e[24]=t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1)),e[25]||(e[25]=i("br",null,null,-1)),e[26]||(e[26]=t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter in irgendeiner Form abgeregelt wird Weitere Infos dazu im ",-1)),i("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:einstell-konfig:ladeeinstellungen:pv-laden-speicherbeachtung#regelpunkt_einspeisegrenze`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Beachtung der Einspeisegrenze ",8,q),e[27]||(e[27]=t(".",-1)),e[28]||(e[28]=i("br",null,null,-1)),e[29]||(e[29]=t(' Bei Erreichen dieses Werts wird die PV-Ladung nacheinander für jedes Fahrzeug im PV-Modus gestartet, bei welchem "Einspeisegrenze beachten" im Ladeprofil aktiviert ist, dies setzt die Einschaltschwelle außer kraft!',-1)),e[30]||(e[30]=i("br",null,null,-1)),e[31]||(e[31]=t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1))]),_:1},8,["model-value"])]))]),_:1}),a(b,{"form-name":"pvChargeConfigForm",onSave:e[10]||(e[10]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[11]||(e[11]=r=>n.$emit("reset")),onDefaults:e[12]||(e[12]=r=>n.$emit("defaults"))})])])}const F=B(S,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SurplusChargeConfiguration.vue"]]);export{F as default}; diff --git a/web/settings/assets/SystemConfiguration-BYwqt7v1.js b/web/settings/assets/SystemConfiguration-BN4gvHU6.js similarity index 99% rename from web/settings/assets/SystemConfiguration-BYwqt7v1.js rename to web/settings/assets/SystemConfiguration-BN4gvHU6.js index a61e7b35b5..07cd04f087 100644 --- a/web/settings/assets/SystemConfiguration-BYwqt7v1.js +++ b/web/settings/assets/SystemConfiguration-BN4gvHU6.js @@ -1 +1 @@ -import{F as z,l as U,aB as E,u as x,an as L,a9 as R,aC as j}from"./vendor-fortawesome-CBc-2W7w.js";import{C as F}from"./index-CyH1Au4V.js";import{_ as D,l as h,k as p,e as g,y as B,q as u,x as a,m as r,u as y,j as k,K as V,L as q,J as W,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";U.add(E,x,L,R,j);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:z},mixins:[F],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/current_branch",writeable:!1},{topic:"openWB/chargepoint/+/get/version",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/available_branches",writeable:!1},{topic:"openWB/system/current_branch",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/current_missing_commits",writeable:!1},{topic:"openWB/system/hostname",writeable:!1},{topic:"openWB/system/ip_address",writeable:!1},{topic:"openWB/system/mac_address",writeable:!1},{topic:"openWB/system/secondary_auto_update",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/system/version",writeable:!1}],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[i,f]of Object.entries(t))f.type==="external_openwb"&&(e[i]=f);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]!==void 0&&this.$store.state.mqtt["openWB/system/available_branches"]!==void 0&&this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",i="master",f=[t,e],c=(s,l)=>s.value==l.value?0:s.value==t?-1:l.value==t?1:s.value==e?-1:l.value==e?1:s.value==i?-1:l.value==i||s.value>l.value?1:s.value{const m=l=>{const b=l.split("-"),v=b[0].split(".");let w;return b.length>1?w=b[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(f.value),s=m(c.value);if(o.semver[0]=="*HEAD*")return-1;if(s.semver[0]=="*HEAD*")return 1;if(o.semver[0]>s.semver[0])return-1;if(o.semver[0]s.semver[1])return-1;if(o.semver[1]s.semver[2])return-1;if(o.semver[2]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]t[i].type.includes(e)).reduce((i,f)=>({...i,[f]:t[f]}),{})}}},I={class:"system"},O={key:1},N={name:"systemInfoForm"},P={name:"versionInfoForm"},Z={class:"missing-commits"},G={class:"row justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:1},X={key:0,name:"powerForm"},Y={class:"row justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={class:"col-md-4 d-flex py-1 justify-content-center"},se={key:1,name:"releaseChangeForm"},ne={class:"row justify-content-center"},re={class:"col-md-4 d-flex py-1 justify-content-center"};function ae(t,e,i,f,c,m){const o=h("openwb-base-button-group-input"),s=h("openwb-base-alert"),l=h("openwb-base-text-input"),b=h("openwb-base-card"),v=h("font-awesome-icon"),w=h("openwb-base-click-button"),A=h("openwb-base-heading"),S=h("openwb-base-submit-buttons"),C=h("router-link"),_=h("openwb-base-select-input");return p(),g("div",I,[i.installAssistantActive?y("",!0):(p(),B(s,{key:0,subtype:"danger"},{default:u(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:c.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>c.warningAcknowledged=n),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),c.warningAcknowledged||i.installAssistantActive?(p(),g("div",O,[r(b,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",N,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/serial_number"]=n),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/ip_address"]=n),title:"IP-Adresse",subtype:"host",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/mac_address"]=n),title:"MAC-Adresse",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/hostname"],"onUpdate:modelValue":e[4]||(e[4]=n=>t.$store.state.mqtt["openWB/system/hostname"]=n),title:"Hostname",subtype:"host",required:"",readonly:""},null,8,["modelValue"])])]),_:1},8,["collapsed"]),r(b,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",P,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[6]||(e[6]=n=>t.$store.state.mqtt["openWB/system/version"]=n),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),B(b,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:u(()=>[a("ul",Z,[(p(!0),g(V,null,q(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,$)=>(p(),g("li",{key:$},W(n),1))),128))])]),_:1})):y("",!0),i.installAssistantActive?y("",!0):(p(),B(s,{key:1,subtype:"danger"},{default:u(()=>[...e[20]||(e[20]=[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})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!i.installAssistantActive?(p(),B(s,{key:2,subtype:"danger"},{default:u(()=>[...e[21]||(e[21]=[d(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),d(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])]),_:1})):y("",!0),a("div",G,[a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=n=>m.systemUpdate())},{default:u(()=>[e[22]||(e[22]=d(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!i.installAssistantActive&&Object.keys(m.externalChargePoints).length>0?(p(),g("div",J,[e[27]||(e[27]=a("hr",null,null,-1)),r(A,null,{default:u(()=>[...e[23]||(e[23]=[d("Automatisches Update von Secondary openWBs",-1)])]),_:1}),r(s,{subtype:"info"},{default:u(()=>[...e[24]||(e[24]=[d(' Die automatische Aktualisierung für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Release-Version zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])]),_:1}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateState("openWB/system/secondary_auto_update",n))},{help:u(()=>[...e[25]||(e[25]=[d(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])]),_:1},8,["model-value"])])):y("",!0),a("table",K,[e[26]||(e[26]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),g(V,null,q(m.externalChargePoints,n=>(p(),g("tr",{key:n.id},[a("td",null,W(n.name),1),a("td",null,W(t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/version"]),1),a("td",null,W(n.configuration.ip_address),1)]))),128))])]),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",Q,[r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=n=>t.$emit("save",["openWB/system/secondary_auto_update"])),onReset:e[12]||(e[12]=n=>t.$emit("reset"))})])):y("",!0)])):y("",!0)])]),_:1},8,["collapsed"]),i.installAssistantActive?y("",!0):(p(),g("form",X,[r(b,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",Y,[a("div",ee,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=n=>m.systemReboot())},{default:u(()=>[e[34]||(e[34]=d(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1})]),a("div",te,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=n=>m.systemShutdown())},{default:u(()=>[e[35]||(e[35]=d(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1})])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[28]||(e[28]=[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}),r(s,{subtype:"info"},{default:u(()=>[e[30]||(e[30]=d(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[31]||(e[31]=a("br",null,null,-1)),e[32]||(e[32]=d("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:u(()=>[...e[29]||(e[29]=[d(" Systembericht ",-1)])]),_:1}),e[33]||(e[33]=d(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1})]),_:1})])),i.installAssistantActive?y("",!0):(p(),g("form",se,[r(b,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",ne,[a("div",re,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=n=>m.switchBranch())},{default:u(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[38]||(e[38]=d(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[36]||(e[36]=[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])]),_:1}),r(s,{subtype:"warning"},{default:u(()=>[...e[37]||(e[37]=[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.",-1),a("br",null,null,-1),d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),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.',-1),a("br",null,null,-1),d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])]),_:1}),r(_,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),r(_,{modelValue:c.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=n=>c.selectedTag=n),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):y("",!0)])}const pe=D(T,[["render",ae],["__scopeId","data-v-e5e73130"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SystemConfiguration.vue"]]);export{pe as default}; +import{F as z,l as U,aB as E,u as x,an as L,a9 as R,aC as j}from"./vendor-fortawesome-CBc-2W7w.js";import{C as F}from"./index-D_eD74fL.js";import{_ as D,l as h,k as p,e as g,y as B,q as u,x as a,m as r,u as y,j as k,K as V,L as q,J as W,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";U.add(E,x,L,R,j);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:z},mixins:[F],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/current_branch",writeable:!1},{topic:"openWB/chargepoint/+/get/version",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/available_branches",writeable:!1},{topic:"openWB/system/current_branch",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/current_missing_commits",writeable:!1},{topic:"openWB/system/hostname",writeable:!1},{topic:"openWB/system/ip_address",writeable:!1},{topic:"openWB/system/mac_address",writeable:!1},{topic:"openWB/system/secondary_auto_update",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/system/version",writeable:!1}],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[i,f]of Object.entries(t))f.type==="external_openwb"&&(e[i]=f);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]!==void 0&&this.$store.state.mqtt["openWB/system/available_branches"]!==void 0&&this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",i="master",f=[t,e],c=(s,l)=>s.value==l.value?0:s.value==t?-1:l.value==t?1:s.value==e?-1:l.value==e?1:s.value==i?-1:l.value==i||s.value>l.value?1:s.value{const m=l=>{const b=l.split("-"),v=b[0].split(".");let w;return b.length>1?w=b[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(f.value),s=m(c.value);if(o.semver[0]=="*HEAD*")return-1;if(s.semver[0]=="*HEAD*")return 1;if(o.semver[0]>s.semver[0])return-1;if(o.semver[0]s.semver[1])return-1;if(o.semver[1]s.semver[2])return-1;if(o.semver[2]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]t[i].type.includes(e)).reduce((i,f)=>({...i,[f]:t[f]}),{})}}},I={class:"system"},O={key:1},N={name:"systemInfoForm"},P={name:"versionInfoForm"},Z={class:"missing-commits"},G={class:"row justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:1},X={key:0,name:"powerForm"},Y={class:"row justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={class:"col-md-4 d-flex py-1 justify-content-center"},se={key:1,name:"releaseChangeForm"},ne={class:"row justify-content-center"},re={class:"col-md-4 d-flex py-1 justify-content-center"};function ae(t,e,i,f,c,m){const o=h("openwb-base-button-group-input"),s=h("openwb-base-alert"),l=h("openwb-base-text-input"),b=h("openwb-base-card"),v=h("font-awesome-icon"),w=h("openwb-base-click-button"),A=h("openwb-base-heading"),S=h("openwb-base-submit-buttons"),C=h("router-link"),_=h("openwb-base-select-input");return p(),g("div",I,[i.installAssistantActive?y("",!0):(p(),B(s,{key:0,subtype:"danger"},{default:u(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:c.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>c.warningAcknowledged=n),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),c.warningAcknowledged||i.installAssistantActive?(p(),g("div",O,[r(b,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",N,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/serial_number"]=n),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/ip_address"]=n),title:"IP-Adresse",subtype:"host",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/mac_address"]=n),title:"MAC-Adresse",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/hostname"],"onUpdate:modelValue":e[4]||(e[4]=n=>t.$store.state.mqtt["openWB/system/hostname"]=n),title:"Hostname",subtype:"host",required:"",readonly:""},null,8,["modelValue"])])]),_:1},8,["collapsed"]),r(b,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",P,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[6]||(e[6]=n=>t.$store.state.mqtt["openWB/system/version"]=n),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),B(b,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:u(()=>[a("ul",Z,[(p(!0),g(V,null,q(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,$)=>(p(),g("li",{key:$},W(n),1))),128))])]),_:1})):y("",!0),i.installAssistantActive?y("",!0):(p(),B(s,{key:1,subtype:"danger"},{default:u(()=>[...e[20]||(e[20]=[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})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!i.installAssistantActive?(p(),B(s,{key:2,subtype:"danger"},{default:u(()=>[...e[21]||(e[21]=[d(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),d(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])]),_:1})):y("",!0),a("div",G,[a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=n=>m.systemUpdate())},{default:u(()=>[e[22]||(e[22]=d(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!i.installAssistantActive&&Object.keys(m.externalChargePoints).length>0?(p(),g("div",J,[e[27]||(e[27]=a("hr",null,null,-1)),r(A,null,{default:u(()=>[...e[23]||(e[23]=[d("Automatisches Update von Secondary openWBs",-1)])]),_:1}),r(s,{subtype:"info"},{default:u(()=>[...e[24]||(e[24]=[d(' Die automatische Aktualisierung für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Release-Version zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])]),_:1}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateState("openWB/system/secondary_auto_update",n))},{help:u(()=>[...e[25]||(e[25]=[d(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])]),_:1},8,["model-value"])])):y("",!0),a("table",K,[e[26]||(e[26]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),g(V,null,q(m.externalChargePoints,n=>(p(),g("tr",{key:n.id},[a("td",null,W(n.name),1),a("td",null,W(t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/version"]),1),a("td",null,W(n.configuration.ip_address),1)]))),128))])]),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",Q,[r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=n=>t.$emit("save",["openWB/system/secondary_auto_update"])),onReset:e[12]||(e[12]=n=>t.$emit("reset"))})])):y("",!0)])):y("",!0)])]),_:1},8,["collapsed"]),i.installAssistantActive?y("",!0):(p(),g("form",X,[r(b,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",Y,[a("div",ee,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=n=>m.systemReboot())},{default:u(()=>[e[34]||(e[34]=d(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1})]),a("div",te,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=n=>m.systemShutdown())},{default:u(()=>[e[35]||(e[35]=d(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1})])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[28]||(e[28]=[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}),r(s,{subtype:"info"},{default:u(()=>[e[30]||(e[30]=d(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[31]||(e[31]=a("br",null,null,-1)),e[32]||(e[32]=d("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:u(()=>[...e[29]||(e[29]=[d(" Systembericht ",-1)])]),_:1}),e[33]||(e[33]=d(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1})]),_:1})])),i.installAssistantActive?y("",!0):(p(),g("form",se,[r(b,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",ne,[a("div",re,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=n=>m.switchBranch())},{default:u(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[38]||(e[38]=d(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[36]||(e[36]=[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])]),_:1}),r(s,{subtype:"warning"},{default:u(()=>[...e[37]||(e[37]=[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.",-1),a("br",null,null,-1),d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),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.',-1),a("br",null,null,-1),d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])]),_:1}),r(_,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),r(_,{modelValue:c.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=n=>c.selectedTag=n),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):y("",!0)])}const pe=D(T,[["render",ae],["__scopeId","data-v-e5e73130"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SystemConfiguration.vue"]]);export{pe as default}; diff --git a/web/settings/assets/TestingStore-D88H008a.js b/web/settings/assets/TestingStore-pmOfDSbe.js similarity index 98% rename from web/settings/assets/TestingStore-D88H008a.js rename to web/settings/assets/TestingStore-pmOfDSbe.js index f5a2ea7bc7..fbdf450c1e 100644 --- a/web/settings/assets/TestingStore-D88H008a.js +++ b/web/settings/assets/TestingStore-pmOfDSbe.js @@ -1 +1 @@ -import{C as B}from"./index-CyH1Au4V.js";import{S as O}from"./OpenwbSortableList-BORHS8nd.js";import{_ as T,l as u,k as D,e as N,x as s,m as o,q as n,A as a,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const Z={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopics:[]}}},A={class:"testingStore"},L={name:"testingStoreForm"};function G(t,e,J,j,F,W){const v=u("OpenwbBaseHeading"),x=u("OpenwbBaseSettingElement"),E=u("openwb-base-button-input"),f=u("openwb-base-button-group-input"),i=u("openwb-base-card"),g=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),d=u("openwb-base-number-input"),V=u("openwb-base-textarea"),S=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),y=u("openwb-base-checkbox-input"),$=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),r=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),N("div",A,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(v,null,{default:n(()=>[...e[34]||(e[34]=[a(" Basiselement ",-1)])]),_:1}),o(x,null,{title:n(()=>[...e[35]||(e[35]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])]),help:n(()=>[...e[36]||(e[36]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1}),o(v,null,{default:n(()=>[...e[37]||(e[37]=[a(" Abgeleitete Elemente ",-1)])]),_:1}),o(E,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>[...e[38]||(e[38]=[a(" Einfacher Click-Button für Aktionen. ",-1)])]),_:1}),o(f,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[39]||(e[39]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>[...e[40]||(e[40]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>[...e[41]||(e[41]=[a(" Eingabefeld für E-Mailadressen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>[...e[42]||(e[42]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>[...e[43]||(e[43]=[a(" Eingabefeld für URLs ",-1)])]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>[...e[44]||(e[44]=[a(" Eingabefeld für Benutzernamen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>[...e[45]||(e[45]=[a(" Eingabefeld für Zeiten ",-1)])]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>[...e[46]||(e[46]=[a(" Eingabefeld für ein Datum ",-1)])]),_:1},8,["model-value"]),o(p,{title:"8. Text (mit Add-Button)",subtype:"text","add-button":"",class:"mb-2","model-value":t.$store.state.examples.text8,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("text8",l)),"onInput:add":e[10]||(e[10]=l=>t.alert("Add button clicked!"))},{help:n(()=>[...e[47]||(e[47]=[a(" Eingabefeld mit einem Add-Button ",-1)])]),_:1},8,["model-value"]),e[53]||(e[53]=s("hr",null,null,-1)),o(d,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number1",l))},{help:n(()=>[...e[48]||(e[48]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(d,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("number2",l))},{help:n(()=>[...e[49]||(e[49]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])]),_:1},8,["model-value"]),o(d,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>[...e[50]||(e[50]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])]),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("password1",l))},{help:n(()=>[...e[51]||(e[51]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])]),_:1},8,["model-value"]),e[54]||(e[54]=s("hr",null,null,-1)),o(V,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("textarea1",l))},{help:n(()=>[...e[52]||(e[52]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(S,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("range1",l))},{help:n(()=>[...e[55]||(e[55]=[a(" Range ohne spezielle Labels ",-1)])]),_:1},8,["model-value"]),o(S,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("range2",l))},{help:n(()=>[...e[56]||(e[56]=[a(" Range mit speziellen Labels ",-1)])]),_:1},8,["model-value"]),e[62]||(e[62]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[19]||(e[19]=l=>t.updateState("select1",l))},{help:n(()=>[...e[57]||(e[57]=[a(" Select mit einfachen Optionen ",-1)])]),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("select2",l)),"onInput:add":e[21]||(e[21]=l=>t.alert("add button pressed"))},{help:n(()=>[...e[58]||(e[58]=[a(" Select mit Gruppen und Add-Button. ",-1)])]),_:1},8,["model-value"]),e[63]||(e[63]=s("hr",null,null,-1)),o(f,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[59]||(e[59]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[60]||(e[60]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1}),e[64]||(e[64]=s("hr",null,null,-1)),o(y,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("checkbox1",l))},{help:n(()=>[...e[61]||(e[61]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l))},{help:n(()=>[...e[65]||(e[65]=[a(" JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("json1",l,"text"))},{help:n(()=>[...e[66]||(e[66]=[a(" Text im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(d,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[27]||(e[27]=l=>t.updateState("json1",l,"number"))},{help:n(()=>[...e[67]||(e[67]=[a(" Zahl im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o($,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[28]||(e[28]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"]),o($,{title:"Tag Array mit Vorgaben","valid-elements":["1234","5678"],"model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[29]||(e[29]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>[...e[68]||(e[68]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])]),default:n(()=>[o(w,null,{help:n(()=>[...e[69]||(e[69]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])]),default:n(()=>[e[70]||(e[70]=a(" Das ist eine Überschrift ",-1))]),_:1}),o(r,null,{default:n(()=>[e[72]||(e[72]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>[...e[71]||(e[71]=[a("Kopiere mich!",-1)])]),_:1})]),_:1}),o(r,{subtype:"info"},{default:n(()=>[...e[73]||(e[73]=[a(" Infomeldung ",-1)])]),_:1}),o(r,{subtype:"warning"},{default:n(()=>[...e[74]||(e[74]=[a(" Warnmeldung ",-1)])]),_:1}),o(r,{subtype:"danger"},{default:n(()=>[...e[75]||(e[75]=[a(" Fehlermeldung ",-1)])]),_:1})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[30]||(e[30]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[31]||(e[31]=l=>t.$emit("save",[])),onReset:e[32]||(e[32]=l=>t.$emit("reset")),onDefaults:e[33]||(e[33]=l=>t.$emit("defaults"))})])])}const q=T(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{q as default}; +import{C as B}from"./index-D_eD74fL.js";import{S as O}from"./OpenwbSortableList-CSUuyi79.js";import{_ as T,l as u,k as D,e as N,x as s,m as o,q as n,A as a,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const Z={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopics:[]}}},A={class:"testingStore"},L={name:"testingStoreForm"};function G(t,e,J,j,F,W){const v=u("OpenwbBaseHeading"),x=u("OpenwbBaseSettingElement"),E=u("openwb-base-button-input"),f=u("openwb-base-button-group-input"),i=u("openwb-base-card"),g=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),d=u("openwb-base-number-input"),V=u("openwb-base-textarea"),S=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),y=u("openwb-base-checkbox-input"),$=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),r=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),N("div",A,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(v,null,{default:n(()=>[...e[34]||(e[34]=[a(" Basiselement ",-1)])]),_:1}),o(x,null,{title:n(()=>[...e[35]||(e[35]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])]),help:n(()=>[...e[36]||(e[36]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1}),o(v,null,{default:n(()=>[...e[37]||(e[37]=[a(" Abgeleitete Elemente ",-1)])]),_:1}),o(E,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>[...e[38]||(e[38]=[a(" Einfacher Click-Button für Aktionen. ",-1)])]),_:1}),o(f,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[39]||(e[39]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>[...e[40]||(e[40]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>[...e[41]||(e[41]=[a(" Eingabefeld für E-Mailadressen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>[...e[42]||(e[42]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>[...e[43]||(e[43]=[a(" Eingabefeld für URLs ",-1)])]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>[...e[44]||(e[44]=[a(" Eingabefeld für Benutzernamen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>[...e[45]||(e[45]=[a(" Eingabefeld für Zeiten ",-1)])]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>[...e[46]||(e[46]=[a(" Eingabefeld für ein Datum ",-1)])]),_:1},8,["model-value"]),o(p,{title:"8. Text (mit Add-Button)",subtype:"text","add-button":"",class:"mb-2","model-value":t.$store.state.examples.text8,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("text8",l)),"onInput:add":e[10]||(e[10]=l=>t.alert("Add button clicked!"))},{help:n(()=>[...e[47]||(e[47]=[a(" Eingabefeld mit einem Add-Button ",-1)])]),_:1},8,["model-value"]),e[53]||(e[53]=s("hr",null,null,-1)),o(d,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number1",l))},{help:n(()=>[...e[48]||(e[48]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(d,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("number2",l))},{help:n(()=>[...e[49]||(e[49]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])]),_:1},8,["model-value"]),o(d,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>[...e[50]||(e[50]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])]),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("password1",l))},{help:n(()=>[...e[51]||(e[51]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])]),_:1},8,["model-value"]),e[54]||(e[54]=s("hr",null,null,-1)),o(V,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("textarea1",l))},{help:n(()=>[...e[52]||(e[52]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(S,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("range1",l))},{help:n(()=>[...e[55]||(e[55]=[a(" Range ohne spezielle Labels ",-1)])]),_:1},8,["model-value"]),o(S,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("range2",l))},{help:n(()=>[...e[56]||(e[56]=[a(" Range mit speziellen Labels ",-1)])]),_:1},8,["model-value"]),e[62]||(e[62]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[19]||(e[19]=l=>t.updateState("select1",l))},{help:n(()=>[...e[57]||(e[57]=[a(" Select mit einfachen Optionen ",-1)])]),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("select2",l)),"onInput:add":e[21]||(e[21]=l=>t.alert("add button pressed"))},{help:n(()=>[...e[58]||(e[58]=[a(" Select mit Gruppen und Add-Button. ",-1)])]),_:1},8,["model-value"]),e[63]||(e[63]=s("hr",null,null,-1)),o(f,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[59]||(e[59]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[60]||(e[60]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1}),e[64]||(e[64]=s("hr",null,null,-1)),o(y,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("checkbox1",l))},{help:n(()=>[...e[61]||(e[61]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l))},{help:n(()=>[...e[65]||(e[65]=[a(" JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("json1",l,"text"))},{help:n(()=>[...e[66]||(e[66]=[a(" Text im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(d,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[27]||(e[27]=l=>t.updateState("json1",l,"number"))},{help:n(()=>[...e[67]||(e[67]=[a(" Zahl im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o($,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[28]||(e[28]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"]),o($,{title:"Tag Array mit Vorgaben","valid-elements":["1234","5678"],"model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[29]||(e[29]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>[...e[68]||(e[68]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])]),default:n(()=>[o(w,null,{help:n(()=>[...e[69]||(e[69]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])]),default:n(()=>[e[70]||(e[70]=a(" Das ist eine Überschrift ",-1))]),_:1}),o(r,null,{default:n(()=>[e[72]||(e[72]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>[...e[71]||(e[71]=[a("Kopiere mich!",-1)])]),_:1})]),_:1}),o(r,{subtype:"info"},{default:n(()=>[...e[73]||(e[73]=[a(" Infomeldung ",-1)])]),_:1}),o(r,{subtype:"warning"},{default:n(()=>[...e[74]||(e[74]=[a(" Warnmeldung ",-1)])]),_:1}),o(r,{subtype:"danger"},{default:n(()=>[...e[75]||(e[75]=[a(" Fehlermeldung ",-1)])]),_:1})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[30]||(e[30]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[31]||(e[31]=l=>t.$emit("save",[])),onReset:e[32]||(e[32]=l=>t.$emit("reset")),onDefaults:e[33]||(e[33]=l=>t.$emit("defaults"))})])])}const q=T(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{q as default}; diff --git a/web/settings/assets/VehicleConfiguration-TZSwJptx.js b/web/settings/assets/VehicleConfiguration-B3d9qly5.js similarity index 96% rename from web/settings/assets/VehicleConfiguration-TZSwJptx.js rename to web/settings/assets/VehicleConfiguration-B3d9qly5.js index 2dfc31ed14..baa72deae2 100644 --- a/web/settings/assets/VehicleConfiguration-TZSwJptx.js +++ b/web/settings/assets/VehicleConfiguration-B3d9qly5.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vehicle-CYTzHFS6.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-CyH1Au4V.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/vehicle-C4xon1Al.js","assets/vehicle-Bo3E1wuI.js","assets/vehicle-7u_dqMEp.js","assets/vehicle-uzGGKIpS.js","assets/vehicle-bxge8VZs.js","assets/vehicle-CoVie7os.js","assets/vehicle-Qsp1JuH6.js","assets/vehicle-BxcO7fDO.js","assets/vehicle-Bwnke49F.js","assets/SystemVersion-DQAfG1DR.js","assets/vehicle-CeWm61bY.js","assets/vehicle-BjW8elSd.js","assets/vehicle-CiPbB9w2.js","assets/vehicle-9Vh-TxGa.js","assets/vehicle-TwRWpbVJ.js","assets/vehicle-wE-5x93X.js","assets/vehicle-CPjkbES5.js","assets/vehicle-mz1O0JRs.js","assets/vehicle-BJ8Vq-80.js","assets/vehicle-BgWejNBx.js","assets/vehicle-B0tJYS46.js"])))=>i.map(i=>d[i]); -import{F as Z,l as O,ac as ae,ad as ie,a4 as R,Z as I,G as j,H,ax as J,aw as G,az as re,aA as ue,aq as $,av as Y,aj as Q,P as oe,d as de,a6 as se,ay as me,Y as ge}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as V,C as X}from"./index-CyH1Au4V.js";import{_ as pe}from"./dynamic-import-helper-BheWnx7M.js";import{_ as q,l as c,k as d,e as p,y as b,q as a,A as i,J as w,m as l,x as g,a1 as he,a2 as ce,K as W,u as m,L as D,z as B,j as ee,D as x}from"./vendor-Bo8v-nQD.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function we(n,e,f,P,S,t){const y=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(y,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),p("div",Ve,[l(y,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),l(y,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const ke=q(ve,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);O.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:Z},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>V(()=>import("./vehicle-CYTzHFS6.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./cupra/vehicle.vue":()=>V(()=>import("./vehicle-C4xon1Al.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./evcc/vehicle.vue":()=>V(()=>import("./vehicle-Bo3E1wuI.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./evnotify/vehicle.vue":()=>V(()=>import("./vehicle-7u_dqMEp.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./homeassistant/vehicle.vue":()=>V(()=>import("./vehicle-uzGGKIpS.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./http/vehicle.vue":()=>V(()=>import("./vehicle-bxge8VZs.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./json/vehicle.vue":()=>V(()=>import("./vehicle-CoVie7os.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./kia/vehicle.vue":()=>V(()=>import("./vehicle-Qsp1JuH6.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./leaf/vehicle.vue":()=>V(()=>import("./vehicle-BxcO7fDO.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./manual/vehicle.vue":()=>V(()=>import("./vehicle-Bwnke49F.js"),__vite__mapDeps([19,20,1,2,3,4,5,6,7,8,9,10])),"./mercedeseq/vehicle.vue":()=>V(()=>import("./vehicle-CeWm61bY.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./mqtt/vehicle.vue":()=>V(()=>import("./vehicle-BjW8elSd.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./ovms/vehicle.vue":()=>V(()=>import("./vehicle-CiPbB9w2.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./psa/vehicle.vue":()=>V(()=>import("./vehicle-9Vh-TxGa.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./psacc/vehicle.vue":()=>V(()=>import("./vehicle-TwRWpbVJ.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./renault/vehicle.vue":()=>V(()=>import("./vehicle-wE-5x93X.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./skoda/vehicle.vue":()=>V(()=>import("./vehicle-CPjkbES5.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./smarthello/vehicle.vue":()=>V(()=>import("./vehicle-mz1O0JRs.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./tesla/vehicle.vue":()=>V(()=>import("./vehicle-BJ8Vq-80.js"),__vite__mapDeps([29,1,2,8,4,3,5,6,7,9,10])),"./tronity/vehicle.vue":()=>V(()=>import("./vehicle-BgWejNBx.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./vwid/vehicle.vue":()=>V(()=>import("./vehicle-B0tJYS46.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10]))}),`./${this.vehicle.type}/vehicle.vue`,3),errorComponent:ke})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,S,t){const y=c("font-awesome-icon"),h=c("openwb-base-alert"),k=c("openwb-base-heading");return d(),p(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(k,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=z=>t.updateConfiguration(z))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);O.add(R,I,j,H,J,G,re,ue,$,Y,Q);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},Ee={key:0},Le={key:1},Pe={key:2},Ue={key:3},Ae={key:4},We={key:5},Fe={key:1},Be={key:1},Me={key:7};function Te(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Le,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Ae,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),p("span",Fe,[l(k,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Termin",subtype:"time"},{help:a(()=>[...e[18]||(e[18]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",Be,[(d(!0),p(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[30]||(e[30]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>[...e[19]||(e[19]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])]),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:2,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[20]||(e[20]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[21]||(e[21]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[22]||(e[22]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:3,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[23]||(e[23]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:4,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[24]||(e[24]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(E,{key:5,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>[...e[25]||(e[25]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type)?(d(),b(M,{key:6,subtype:"danger"},{default:a(()=>[...e[26]||(e[26]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])]),_:1})):m("",!0),t.plan.limit.selected=="soc"?(d(),p("div",Me,[e[29]||(e[29]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>[...e[27]||(e[27]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])]),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>[...e[28]||(e[28]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])]),_:1})):m("",!0)])):m("",!0)]),_:1},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);O.add(R,I,j,H,J,G,Y,Q);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/dc_charging",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},xe={key:0},Ze={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},je={key:2};function He(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",xe,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Ze,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),p("span",Ie,[l(k,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(z,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",je,[(d(!0),p(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[20]||(e[20]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:3,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>[...e[16]||(e[16]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[17]||(e[17]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.limit.soc=v),title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[18]||(e[18]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])]),_:1},8,["modelValue"]),l(E,{title:"Energie-Limit",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>[...e[19]||(e[19]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])]),_:1},8,["title"])],64)}const Je=q(qe,[["render",He],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);O.add(de,Q,H,G,J,j,R,I,se,me,ge,$,Y);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:Z,FontAwesomeLayers:oe,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[X],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/soc_modules",writeable:!1},{topic:"openWB/vehicle/+/charge_template",writeable:!0},{topic:"openWB/vehicle/+/ev_template",writeable:!0},{topic:"openWB/vehicle/+/info",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!0},{topic:"openWB/vehicle/+/soc_module/config",writeable:!0},{topic:"openWB/vehicle/+/soc_module/general_config",writeable:!0},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0},{topic:"openWB/vehicle/template/ev_template/+",writeable:!0}],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/info")}},evTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/ev_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/charge_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n,changed_in_theme:!1}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n,changed_in_theme:!1}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const S=`card-${n}-${P}`,t=this.$refs[S],y=Array.isArray(t)?t[0]:t;y&&(y.isCollapsed=P!==e)})})}}},Ye={class:"vehicleConfig"},Qe={name:"vehicleConfigForm"},Xe={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},rn={key:0},un={key:1},on={key:0},dn={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),E=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),A=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),p(W,null,[l(y,{show:S.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,S.modalVehicleIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug "'+w(t.getVehicleName(S.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,S.modalEvTemplateIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug-Profil "'+w(t.getEvTemplateName(S.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,S.modalChargeTemplateIndex))},{default:a(()=>[i(' Willst Du das Lade-Profil "'+w(t.getChargeTemplateName(S.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Ye,[g("form",Qe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",Xe,[l(z,{subtype:"info"},{default:a(()=>[...e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",Ke,[(d(!0),p(W,null,D(t.vehicleIndexes,r=>(d(),b(U,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/name",o)},x({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),p("div",$e,[l(E,null,{default:a(()=>[...e[13]||(e[13]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1}),(n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]?.length??0)>0?(d(),p("div",en,[l(z,{subtype:"info"},{default:a(()=>[e[15]||(e[15]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[14]||(e[14]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[16]||(e[16]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),p("div",nn," Aktuell ist die Identifikation in den Einstellungen deaktiviert. ")):(d(),p("div",tn," Die Identifikation ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. "))]),_:1}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},{help:a(()=>[...e[17]||(e[17]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Fahrzeug zugeordnet sind. Mit diesen ID-Tags kann dieses Fahrzeug an Ladepunkten automatisch zugeordnet werden. ",-1)])]),_:1},8,["model-value"])])):(d(),p("div",ln,[l(z,{subtype:"info"},{default:a(()=>[e[19]||(e[19]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[18]||(e[18]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[20]||(e[20]=i(".",-1)),e[21]||(e[21]=g("br",null,null,-1)),e[22]||(e[22]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})])),e[23]||(e[23]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(r,o)},{help:a(()=>[...e[24]||(e[24]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Während des Ladevorgangs wird der Zeitstempel der SoC-Abfrage geprüft. Ist dieser älter als der Zeitstempel der vorherigen Abfrage, wird das Ergebnis verworfen, stattdessen eine Berechnung durchgeführt und auch so im Fahrzeugstatus vermerkt.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type?(d(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[25]||(e[25]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{help:a(()=>[...e[26]||(e[26]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[27]||(e[27]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[28]||(e[28]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[30]||(e[30]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[91]||(e[91]=g("hr",{class:"border-secondary"},null,-1)),l(E,null,{default:a(()=>[...e[32]||(e[32]=[i("Profile",-1)])]),_:1}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[33]||(e[33]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",rn,[l(z,{subtype:"info"},{default:a(()=>[...e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",un,[(d(!0),p(W,null,D(t.evTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!0},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[35]||(e[35]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[36]||(e[36]=[i(" Angaben zur Batterie ",-1)])]),_:1}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"battery_capacity")},{help:a(()=>[...e[37]||(e[37]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",on,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(o,u,"efficiency")},{help:a(()=>[...e[38]||(e[38]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(o,u,"bidi")},{help:a(()=>[...e[39]||(e[39]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),p("div",dn,[l(E,null,{default:a(()=>[...e[40]||(e[40]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(E,null,{default:a(()=>[e[41]||(e[41]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),p("span",sn," (AC) ")):m("",!0)]),_:1}),l(A,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(o,u,"nominal_difference")},{help:a(()=>[...e[42]||(e[42]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),p("span",mn," (AC) ")):m("",!0)]),_:1}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_phases")},{help:a(()=>[...e[44]||(e[44]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption")},{help:a(()=>[...e[45]||(e[45]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_phase_switch")},{help:a(()=>[...e[46]||(e[46]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_charge_stop")},{help:a(()=>[...e[47]||(e[47]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"keep_charge_active_duration")},{help:a(()=>[...e[48]||(e[48]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:L=>t.addEvTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:L=>t.removeEvTemplateModal(L,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[49]||(e[49]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",pn,[l(z,{subtype:"info"},{default:a(()=>[...e[50]||(e[50]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",hn,[(d(!0),p(W,null,D(t.chargeTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:L=>t.addChargeTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(L=>t.removeChargeTemplateModal(L,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[51]||(e[51]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[52]||(e[52]=[i(" Allgemeine Optionen ",-1)])]),_:1}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(o,u)},{help:a(()=>[...e[53]||(e[53]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:1},8,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(o,u,"prio")},{help:a(()=>[...e[54]||(e[54]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(o,u,"load_default")},{help:a(()=>[...e[55]||(e[55]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[57]||(e[57]=g("hr",null,null,-1)),l(E,null,{default:a(()=>[...e[56]||(e[56]=[i("Einstellungen der Lademodi",-1)])]),_:1})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[58]||(e[58]=[i(" Sofort ",-1)])]),default:a(()=>[l(A,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[59]||(e[59]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (s.g. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[60]||(e[60]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[61]||(e[61]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[62]||(e[62]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[63]||(e[63]=[i(" PV ",-1)])]),default:a(()=>[l(A,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[64]||(e[64]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[65]||(e[65]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[67]||(e[67]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[68]||(e[68]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[69]||(e[69]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[71]||(e[71]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[72]||(e[72]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[73]||(e[73]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[74]||(e[74]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "Überschuss-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[75]||(e[75]=[i(" Ziel ",-1)])]),default:a(()=>[l(E,null,{actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),help:a(()=>[...e[76]||(e[76]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt, bis max 20 Minuten nach dem angegebenen Zieltermin. ",-1)])]),default:a(()=>[e[77]||(e[77]=i(" Zielladepläne ",-1))]),_:2},1024),r.chargemode.scheduled_charging.plans.length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[78]||(e[78]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,L)=>(d(),b(ne,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${L}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[79]||(e[79]=[i(" Eco ",-1)])]),default:a(()=>[l(E,null,{help:a(()=>[...e[80]||(e[80]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[81]||(e[81]=i("Arbeitsweise von Eco ",-1))]),_:1}),l(A,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen bei Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[82]||(e[82]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p).',-1),g("br",null,null,-1),i(" Wird die eingestellte Preisgrenze unterschritten, wird immer mit der maximalen Anzahl Phasen geladen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[83]||(e[83]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[84]||(e[84]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[85]||(e[85]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(d(),b(z,{key:1,subtype:"warning"},{default:a(()=>[...e[86]||(e[86]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(o,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),p("div",bn,[e[90]||(e[90]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(o,u,"time_charging.active")},{help:a(()=>[...e[87]||(e[87]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (enteisen, vorwärmen, abkühlen). 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 Einstellungen zur Vorklimatisierung in der Fahrzeug-App). ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[88]||(e[88]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[89]||(e[89]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.time_charging.plans??[],(u,L)=>(d(),b(te,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${L}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfiguration.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vehicle-uRvyo-2W.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/vehicle-Br3C3ndJ.js","assets/vehicle-BBQyN4nf.js","assets/vehicle-BtE1rfvQ.js","assets/vehicle-DDs9o72d.js","assets/vehicle-DTOXQ3ag.js","assets/vehicle-D363Q7cB.js","assets/vehicle-DT7Lg5C4.js","assets/vehicle-DjrtYuS-.js","assets/vehicle-CUR0E3wk.js","assets/SystemVersion-DQAfG1DR.js","assets/vehicle-Bzw0t3uD.js","assets/vehicle-TpGqMVx6.js","assets/vehicle-7kCruC46.js","assets/vehicle-CO6j-SQn.js","assets/vehicle-XMzQc45d.js","assets/vehicle-lU7Zuadi.js","assets/vehicle-CH_9CnU6.js","assets/vehicle-ClSMB-k7.js","assets/vehicle-BV1RfRrF.js","assets/vehicle-uZMeCx8f.js","assets/vehicle-ADVayxu-.js"])))=>i.map(i=>d[i]); +import{F as Z,l as O,ac as ae,ad as ie,a4 as R,Z as I,G as j,H,ax as J,aw as G,az as re,aA as ue,aq as $,av as Y,aj as Q,P as oe,d as de,a6 as se,ay as me,Y as ge}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as V,C as X}from"./index-D_eD74fL.js";import{_ as pe}from"./dynamic-import-helper-BheWnx7M.js";import{_ as q,l as c,k as d,e as p,y as b,q as a,A as i,J as w,m as l,x as g,a1 as he,a2 as ce,K as W,u as m,L as D,z as B,j as ee,D as x}from"./vendor-Bo8v-nQD.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function we(n,e,f,P,S,t){const y=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(y,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),p("div",Ve,[l(y,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),l(y,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const ke=q(ve,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);O.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:Z},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>V(()=>import("./vehicle-uRvyo-2W.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./cupra/vehicle.vue":()=>V(()=>import("./vehicle-Br3C3ndJ.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./evcc/vehicle.vue":()=>V(()=>import("./vehicle-BBQyN4nf.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./evnotify/vehicle.vue":()=>V(()=>import("./vehicle-BtE1rfvQ.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./homeassistant/vehicle.vue":()=>V(()=>import("./vehicle-DDs9o72d.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./http/vehicle.vue":()=>V(()=>import("./vehicle-DTOXQ3ag.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./json/vehicle.vue":()=>V(()=>import("./vehicle-D363Q7cB.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./kia/vehicle.vue":()=>V(()=>import("./vehicle-DT7Lg5C4.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./leaf/vehicle.vue":()=>V(()=>import("./vehicle-DjrtYuS-.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./manual/vehicle.vue":()=>V(()=>import("./vehicle-CUR0E3wk.js"),__vite__mapDeps([19,20,1,2,3,4,5,6,7,8,9,10])),"./mercedeseq/vehicle.vue":()=>V(()=>import("./vehicle-Bzw0t3uD.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./mqtt/vehicle.vue":()=>V(()=>import("./vehicle-TpGqMVx6.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./ovms/vehicle.vue":()=>V(()=>import("./vehicle-7kCruC46.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./psa/vehicle.vue":()=>V(()=>import("./vehicle-CO6j-SQn.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./psacc/vehicle.vue":()=>V(()=>import("./vehicle-XMzQc45d.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./renault/vehicle.vue":()=>V(()=>import("./vehicle-lU7Zuadi.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./skoda/vehicle.vue":()=>V(()=>import("./vehicle-CH_9CnU6.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./smarthello/vehicle.vue":()=>V(()=>import("./vehicle-ClSMB-k7.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./tesla/vehicle.vue":()=>V(()=>import("./vehicle-BV1RfRrF.js"),__vite__mapDeps([29,1,2,8,4,3,5,6,7,9,10])),"./tronity/vehicle.vue":()=>V(()=>import("./vehicle-uZMeCx8f.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./vwid/vehicle.vue":()=>V(()=>import("./vehicle-ADVayxu-.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10]))}),`./${this.vehicle.type}/vehicle.vue`,3),errorComponent:ke})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,S,t){const y=c("font-awesome-icon"),h=c("openwb-base-alert"),k=c("openwb-base-heading");return d(),p(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(k,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=z=>t.updateConfiguration(z))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);O.add(R,I,j,H,J,G,re,ue,$,Y,Q);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},Ee={key:0},Le={key:1},Pe={key:2},Ue={key:3},Ae={key:4},We={key:5},Fe={key:1},Be={key:1},Me={key:7};function Te(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Le,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Ae,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),p("span",Fe,[l(k,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Termin",subtype:"time"},{help:a(()=>[...e[18]||(e[18]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",Be,[(d(!0),p(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[30]||(e[30]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>[...e[19]||(e[19]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])]),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:2,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[20]||(e[20]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[21]||(e[21]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[22]||(e[22]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:3,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[23]||(e[23]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:4,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[24]||(e[24]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(E,{key:5,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>[...e[25]||(e[25]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type)?(d(),b(M,{key:6,subtype:"danger"},{default:a(()=>[...e[26]||(e[26]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])]),_:1})):m("",!0),t.plan.limit.selected=="soc"?(d(),p("div",Me,[e[29]||(e[29]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>[...e[27]||(e[27]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])]),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>[...e[28]||(e[28]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])]),_:1})):m("",!0)])):m("",!0)]),_:1},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);O.add(R,I,j,H,J,G,Y,Q);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/dc_charging",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},xe={key:0},Ze={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},je={key:2};function He(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",xe,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Ze,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),p("span",Ie,[l(k,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(z,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",je,[(d(!0),p(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[20]||(e[20]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:3,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>[...e[16]||(e[16]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[17]||(e[17]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.limit.soc=v),title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[18]||(e[18]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])]),_:1},8,["modelValue"]),l(E,{title:"Energie-Limit",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>[...e[19]||(e[19]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])]),_:1},8,["title"])],64)}const Je=q(qe,[["render",He],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);O.add(de,Q,H,G,J,j,R,I,se,me,ge,$,Y);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:Z,FontAwesomeLayers:oe,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[X],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/soc_modules",writeable:!1},{topic:"openWB/vehicle/+/charge_template",writeable:!0},{topic:"openWB/vehicle/+/ev_template",writeable:!0},{topic:"openWB/vehicle/+/info",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!0},{topic:"openWB/vehicle/+/soc_module/config",writeable:!0},{topic:"openWB/vehicle/+/soc_module/general_config",writeable:!0},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0},{topic:"openWB/vehicle/template/ev_template/+",writeable:!0}],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/info")}},evTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/ev_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/charge_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n,changed_in_theme:!1}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n,changed_in_theme:!1}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const S=`card-${n}-${P}`,t=this.$refs[S],y=Array.isArray(t)?t[0]:t;y&&(y.isCollapsed=P!==e)})})}}},Ye={class:"vehicleConfig"},Qe={name:"vehicleConfigForm"},Xe={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},rn={key:0},un={key:1},on={key:0},dn={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),E=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),A=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),p(W,null,[l(y,{show:S.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,S.modalVehicleIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug "'+w(t.getVehicleName(S.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,S.modalEvTemplateIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug-Profil "'+w(t.getEvTemplateName(S.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,S.modalChargeTemplateIndex))},{default:a(()=>[i(' Willst Du das Lade-Profil "'+w(t.getChargeTemplateName(S.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Ye,[g("form",Qe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",Xe,[l(z,{subtype:"info"},{default:a(()=>[...e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",Ke,[(d(!0),p(W,null,D(t.vehicleIndexes,r=>(d(),b(U,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/name",o)},x({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),p("div",$e,[l(E,null,{default:a(()=>[...e[13]||(e[13]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1}),(n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]?.length??0)>0?(d(),p("div",en,[l(z,{subtype:"info"},{default:a(()=>[e[15]||(e[15]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[14]||(e[14]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[16]||(e[16]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),p("div",nn," Aktuell ist die Identifikation in den Einstellungen deaktiviert. ")):(d(),p("div",tn," Die Identifikation ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. "))]),_:1}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},{help:a(()=>[...e[17]||(e[17]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Fahrzeug zugeordnet sind. Mit diesen ID-Tags kann dieses Fahrzeug an Ladepunkten automatisch zugeordnet werden. ",-1)])]),_:1},8,["model-value"])])):(d(),p("div",ln,[l(z,{subtype:"info"},{default:a(()=>[e[19]||(e[19]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[18]||(e[18]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[20]||(e[20]=i(".",-1)),e[21]||(e[21]=g("br",null,null,-1)),e[22]||(e[22]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})])),e[23]||(e[23]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(r,o)},{help:a(()=>[...e[24]||(e[24]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Während des Ladevorgangs wird der Zeitstempel der SoC-Abfrage geprüft. Ist dieser älter als der Zeitstempel der vorherigen Abfrage, wird das Ergebnis verworfen, stattdessen eine Berechnung durchgeführt und auch so im Fahrzeugstatus vermerkt.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type?(d(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[25]||(e[25]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{help:a(()=>[...e[26]||(e[26]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[27]||(e[27]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[28]||(e[28]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[30]||(e[30]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[91]||(e[91]=g("hr",{class:"border-secondary"},null,-1)),l(E,null,{default:a(()=>[...e[32]||(e[32]=[i("Profile",-1)])]),_:1}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[33]||(e[33]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",rn,[l(z,{subtype:"info"},{default:a(()=>[...e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",un,[(d(!0),p(W,null,D(t.evTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!0},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[35]||(e[35]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[36]||(e[36]=[i(" Angaben zur Batterie ",-1)])]),_:1}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"battery_capacity")},{help:a(()=>[...e[37]||(e[37]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",on,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(o,u,"efficiency")},{help:a(()=>[...e[38]||(e[38]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(o,u,"bidi")},{help:a(()=>[...e[39]||(e[39]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),p("div",dn,[l(E,null,{default:a(()=>[...e[40]||(e[40]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(E,null,{default:a(()=>[e[41]||(e[41]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),p("span",sn," (AC) ")):m("",!0)]),_:1}),l(A,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(o,u,"nominal_difference")},{help:a(()=>[...e[42]||(e[42]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),p("span",mn," (AC) ")):m("",!0)]),_:1}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_phases")},{help:a(()=>[...e[44]||(e[44]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption")},{help:a(()=>[...e[45]||(e[45]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_phase_switch")},{help:a(()=>[...e[46]||(e[46]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_charge_stop")},{help:a(()=>[...e[47]||(e[47]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"keep_charge_active_duration")},{help:a(()=>[...e[48]||(e[48]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:L=>t.addEvTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:L=>t.removeEvTemplateModal(L,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[49]||(e[49]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",pn,[l(z,{subtype:"info"},{default:a(()=>[...e[50]||(e[50]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",hn,[(d(!0),p(W,null,D(t.chargeTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:L=>t.addChargeTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(L=>t.removeChargeTemplateModal(L,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[51]||(e[51]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[52]||(e[52]=[i(" Allgemeine Optionen ",-1)])]),_:1}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(o,u)},{help:a(()=>[...e[53]||(e[53]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:1},8,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(o,u,"prio")},{help:a(()=>[...e[54]||(e[54]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(o,u,"load_default")},{help:a(()=>[...e[55]||(e[55]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[57]||(e[57]=g("hr",null,null,-1)),l(E,null,{default:a(()=>[...e[56]||(e[56]=[i("Einstellungen der Lademodi",-1)])]),_:1})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[58]||(e[58]=[i(" Sofort ",-1)])]),default:a(()=>[l(A,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[59]||(e[59]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (s.g. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[60]||(e[60]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[61]||(e[61]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[62]||(e[62]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[63]||(e[63]=[i(" PV ",-1)])]),default:a(()=>[l(A,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[64]||(e[64]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[65]||(e[65]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[67]||(e[67]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[68]||(e[68]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[69]||(e[69]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[71]||(e[71]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[72]||(e[72]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[73]||(e[73]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[74]||(e[74]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "Überschuss-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[75]||(e[75]=[i(" Ziel ",-1)])]),default:a(()=>[l(E,null,{actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),help:a(()=>[...e[76]||(e[76]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt, bis max 20 Minuten nach dem angegebenen Zieltermin. ",-1)])]),default:a(()=>[e[77]||(e[77]=i(" Zielladepläne ",-1))]),_:2},1024),r.chargemode.scheduled_charging.plans.length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[78]||(e[78]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,L)=>(d(),b(ne,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${L}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[79]||(e[79]=[i(" Eco ",-1)])]),default:a(()=>[l(E,null,{help:a(()=>[...e[80]||(e[80]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[81]||(e[81]=i("Arbeitsweise von Eco ",-1))]),_:1}),l(A,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen bei Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[82]||(e[82]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p).',-1),g("br",null,null,-1),i(" Wird die eingestellte Preisgrenze unterschritten, wird immer mit der maximalen Anzahl Phasen geladen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[83]||(e[83]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[84]||(e[84]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[85]||(e[85]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(d(),b(z,{key:1,subtype:"warning"},{default:a(()=>[...e[86]||(e[86]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(o,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),p("div",bn,[e[90]||(e[90]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(o,u,"time_charging.active")},{help:a(()=>[...e[87]||(e[87]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (enteisen, vorwärmen, abkühlen). 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 Einstellungen zur Vorklimatisierung in der Fahrzeug-App). ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[88]||(e[88]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[89]||(e[89]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.time_charging.plans??[],(u,L)=>(d(),b(te,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${L}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfiguration.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; diff --git a/web/settings/assets/backup_cloud-C1Vw5Mh4.js b/web/settings/assets/backup_cloud-CDlXI8NQ.js similarity index 90% rename from web/settings/assets/backup_cloud-C1Vw5Mh4.js rename to web/settings/assets/backup_cloud-CDlXI8NQ.js index dfc58a50ff..0a1be4a4d8 100644 --- a/web/settings/assets/backup_cloud-C1Vw5Mh4.js +++ b/web/settings/assets/backup_cloud-CDlXI8NQ.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-FAi2cjUn.js";import{_ as p,l as a,k as d,e as m,m as u,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"BackupCloudNextCloud",mixins:[r]},c={class:"backup-cloud-next-cloud"};function f(n,e,k,g,C,w){const t=a("openwb-base-text-input"),i=a("openwb-base-number-input");return d(),m("div",c,[u(t,{title:"Cloud-URL",subtype:"url",required:"","model-value":n.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},{help:s(()=>[...e[4]||(e[4]=[l(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])]),_:1},8,["model-value"]),u(t,{title:"Benutzername",subtype:"user","model-value":n.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),u(t,{title:"Passwort",subtype:"password","model-value":n.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),u(i,{title:"Anzahl Backups aufbewahren",min:0,step:1,required:"","model-value":n.backupCloud.configuration.max_backups??0,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:s(()=>[...e[5]||(e[5]=[l(" 0 = keine automatische Löschung; sonst werden nur die neuesten N Backups behalten. ",-1)])]),_:1},8,["model-value"])])}const L=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{L as default}; +import{B as r}from"./DataManagement-C57poL-r.js";import{_ as p,l as a,k as d,e as m,m as u,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"BackupCloudNextCloud",mixins:[r]},c={class:"backup-cloud-next-cloud"};function f(n,e,k,g,C,w){const t=a("openwb-base-text-input"),i=a("openwb-base-number-input");return d(),m("div",c,[u(t,{title:"Cloud-URL",subtype:"url",required:"","model-value":n.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},{help:s(()=>[...e[4]||(e[4]=[l(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])]),_:1},8,["model-value"]),u(t,{title:"Benutzername",subtype:"user","model-value":n.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),u(t,{title:"Passwort",subtype:"password","model-value":n.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),u(i,{title:"Anzahl Backups aufbewahren",min:0,step:1,required:"","model-value":n.backupCloud.configuration.max_backups??0,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:s(()=>[...e[5]||(e[5]=[l(" 0 = keine automatische Löschung; sonst werden nur die neuesten N Backups behalten. ",-1)])]),_:1},8,["model-value"])])}const L=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{L as default}; diff --git a/web/settings/assets/backup_cloud-ChCyb_mM.js b/web/settings/assets/backup_cloud-CPUdKiBb.js similarity index 96% rename from web/settings/assets/backup_cloud-ChCyb_mM.js rename to web/settings/assets/backup_cloud-CPUdKiBb.js index ec538e0302..b38b653ca3 100644 --- a/web/settings/assets/backup_cloud-ChCyb_mM.js +++ b/web/settings/assets/backup_cloud-CPUdKiBb.js @@ -1 +1 @@ -import{B as c}from"./DataManagement-FAi2cjUn.js";import{_ as m,l as a,k as b,e as f,m as t,q as r,A as n,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,C){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])]),_:1}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>[...e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>[...e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])]),_:1}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>[...e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])]),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>[...e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>[...e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1})])}const $=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{$ as default}; +import{B as c}from"./DataManagement-C57poL-r.js";import{_ as m,l as a,k as b,e as f,m as t,q as r,A as n,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,C){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])]),_:1}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>[...e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>[...e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])]),_:1}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>[...e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])]),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>[...e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>[...e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1})])}const $=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{$ as default}; diff --git a/web/settings/assets/backup_cloud-mhyMQPm9.js b/web/settings/assets/backup_cloud-CXDQV4ep.js similarity index 89% rename from web/settings/assets/backup_cloud-mhyMQPm9.js rename to web/settings/assets/backup_cloud-CXDQV4ep.js index 455e9cf1fe..78964bb8b9 100644 --- a/web/settings/assets/backup_cloud-mhyMQPm9.js +++ b/web/settings/assets/backup_cloud-CXDQV4ep.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-FAi2cjUn.js";import{_ as p,l as u,k as i,e as l,m as d,q as c,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudNfs",mixins:[r]},m={class:"backup-cloud-nfs"};function _(t,e,b,k,v,x){const a=u("openwb-base-text-input");return i(),l("div",m,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>[...e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{$ as default}; +import{B as r}from"./DataManagement-C57poL-r.js";import{_ as p,l as u,k as i,e as l,m as d,q as c,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudNfs",mixins:[r]},m={class:"backup-cloud-nfs"};function _(t,e,b,k,v,x){const a=u("openwb-base-text-input");return i(),l("div",m,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>[...e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{$ as default}; diff --git a/web/settings/assets/backup_cloud-Dr6eBKwO.js b/web/settings/assets/backup_cloud-CzI98uku.js similarity index 94% rename from web/settings/assets/backup_cloud-Dr6eBKwO.js rename to web/settings/assets/backup_cloud-CzI98uku.js index 47bc15f482..543561023e 100644 --- a/web/settings/assets/backup_cloud-Dr6eBKwO.js +++ b/web/settings/assets/backup_cloud-CzI98uku.js @@ -1 +1 @@ -import{B as p}from"./DataManagement-FAi2cjUn.js";import{_ as d,l as r,k as m,e as b,m as u,q as i,A as a,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudSamba",mixins:[p]},g={class:"backup-cloud-samba"};function k(n,e,v,C,c,w){const l=r("openwb-base-text-input"),s=r("openwb-base-number-input");return m(),b("div",g,[u(l,{title:"Server",subtype:"host",required:"","model-value":n.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.smb_server"))},null,8,["model-value"]),u(l,{title:"Freigabe",required:"","model-value":n.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.smb_share"))},null,8,["model-value"]),u(l,{title:"Unterordner (optional)","model-value":n.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.smb_path"))},{help:i(()=>[...e[6]||(e[6]=[a(" Jeder Unterordner muss mit / enden.",-1),t("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),t("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),t("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])]),_:1},8,["model-value"]),u(l,{title:"Benutzer",subtype:"user","model-value":n.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.smb_user"))},null,8,["model-value"]),u(l,{title:"Kennwort",subtype:"password","model-value":n.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.smb_password"))},null,8,["model-value"]),u(s,{title:"Anzahl Backups aufbewahren","model-value":n.backupCloud.configuration.max_backups??0,min:0,max:100,required:"",step:1,"onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:i(()=>[...e[7]||(e[7]=[a(" 0 = keine automatische Löschung.",-1),t("br",null,null,-1),a(' Bei Werten > 0 werden nur die neuesten Backups behalten, ältere mit dem Prefix "openwb_backup_" werden gelöscht. ',-1)])]),_:1},8,["model-value"])])}const x=d(f,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{x as default}; +import{B as p}from"./DataManagement-C57poL-r.js";import{_ as d,l as r,k as m,e as b,m as u,q as i,A as a,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudSamba",mixins:[p]},g={class:"backup-cloud-samba"};function k(n,e,v,C,c,w){const l=r("openwb-base-text-input"),s=r("openwb-base-number-input");return m(),b("div",g,[u(l,{title:"Server",subtype:"host",required:"","model-value":n.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.smb_server"))},null,8,["model-value"]),u(l,{title:"Freigabe",required:"","model-value":n.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.smb_share"))},null,8,["model-value"]),u(l,{title:"Unterordner (optional)","model-value":n.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.smb_path"))},{help:i(()=>[...e[6]||(e[6]=[a(" Jeder Unterordner muss mit / enden.",-1),t("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),t("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),t("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])]),_:1},8,["model-value"]),u(l,{title:"Benutzer",subtype:"user","model-value":n.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.smb_user"))},null,8,["model-value"]),u(l,{title:"Kennwort",subtype:"password","model-value":n.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.smb_password"))},null,8,["model-value"]),u(s,{title:"Anzahl Backups aufbewahren","model-value":n.backupCloud.configuration.max_backups??0,min:0,max:100,required:"",step:1,"onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:i(()=>[...e[7]||(e[7]=[a(" 0 = keine automatische Löschung.",-1),t("br",null,null,-1),a(' Bei Werten > 0 werden nur die neuesten Backups behalten, ältere mit dem Prefix "openwb_backup_" werden gelöscht. ',-1)])]),_:1},8,["model-value"])])}const x=d(f,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{x as default}; diff --git a/web/settings/assets/bat-B4mETs5R.js b/web/settings/assets/bat-BAPssBwn.js similarity index 86% rename from web/settings/assets/bat-B4mETs5R.js rename to web/settings/assets/bat-BAPssBwn.js index 47bdf5a5f8..0768ec3daa 100644 --- a/web/settings/assets/bat-B4mETs5R.js +++ b/web/settings/assets/bat-BAPssBwn.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as r,k as s,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPlenticoreBat",mixins:[o]},m={class:"device-kostal-plenticore-bat"};function d(_,e,u,b,f,k){const t=r("openwb-base-alert");return s(),i("div",m,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' Für die aktive Batteriesteuerung muss die Funktion "Extern über Protokoll (Modbus TCP)" in der Nutzeroberfläche des Plenticore mit dem Handwerkerzugang aktiviert werden. ',-1)])]),_:1})])}const N=n(l,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/bat.vue"]]);export{N as default}; +import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as r,k as s,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPlenticoreBat",mixins:[o]},m={class:"device-kostal-plenticore-bat"};function d(_,e,u,b,f,k){const t=r("openwb-base-alert");return s(),i("div",m,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' Für die aktive Batteriesteuerung muss die Funktion "Extern über Protokoll (Modbus TCP)" in der Nutzeroberfläche des Plenticore mit dem Handwerkerzugang aktiviert werden. ',-1)])]),_:1})])}const N=n(l,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-jEZsteDp.js b/web/settings/assets/bat-BFJihL5b.js similarity index 87% rename from web/settings/assets/bat-jEZsteDp.js rename to web/settings/assets/bat-BFJihL5b.js index fc6930ced7..2da93b4cce 100644 --- a/web/settings/assets/bat-jEZsteDp.js +++ b/web/settings/assets/bat-BFJihL5b.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceFemsBat",mixins:[r]},f={class:"device-fems-bat"};function _(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",f,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const M=p(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{M as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceFemsBat",mixins:[r]},f={class:"device-fems-bat"};function _(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",f,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const M=p(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-BCGKgQxP.js b/web/settings/assets/bat-BLn3ChiW.js similarity index 90% rename from web/settings/assets/bat-BCGKgQxP.js rename to web/settings/assets/bat-BLn3ChiW.js index c281c82b84..fcd60f4a3d 100644 --- a/web/settings/assets/bat-BCGKgQxP.js +++ b/web/settings/assets/bat-BLn3ChiW.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as t,k as u,e as m,m as i,q as d,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},f={class:"device-openwb-flex-bat"};function _(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",f,[i(a,null,{default:d(()=>[...e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])]),_:1}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const S=r(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{S as default}; +import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as t,k as u,e as m,m as i,q as d,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},f={class:"device-openwb-flex-bat"};function _(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",f,[i(a,null,{default:d(()=>[...e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])]),_:1}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const S=r(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-BVitR6eQ.js b/web/settings/assets/bat-BO99Yxvy.js similarity index 88% rename from web/settings/assets/bat-BVitR6eQ.js rename to web/settings/assets/bat-BO99Yxvy.js index 5380baad0b..114373687c 100644 --- a/web/settings/assets/bat-BVitR6eQ.js +++ b/web/settings/assets/bat-BO99Yxvy.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[p]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const V=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[p]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const V=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-DgzuvGkr.js b/web/settings/assets/bat-BtNiOzPi.js similarity index 97% rename from web/settings/assets/bat-DgzuvGkr.js rename to web/settings/assets/bat-BtNiOzPi.js index 57c0cae64f..6e8f77b31b 100644 --- a/web/settings/assets/bat-DgzuvGkr.js +++ b/web/settings/assets/bat-BtNiOzPi.js @@ -1 +1 @@ -import{C as g}from"./HardwareInstallation-caZ0sA9z.js";import{_ as b,l as u,k as f,e as B,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"DeviceMqttBat",mixins:[g]},w={class:"device-mqtt-bat"};function z(o,e,v,W,S,T){const d=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),a=u("openwb-base-button-group-input");return f(),B("div",w,[i(d,null,{default:l(()=>[...e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])]),_:1}),i(p,{subtype:"warning"},{default:l(()=>[e[2]||(e[2]=t(" Ist die ",-1)),e[3]||(e[3]=n("strong",null,"Benutzerverwaltung",-1)),e[4]||(e[4]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Speicher '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[5]||(e[5]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[31]||(e[31]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Beispiel: ",-1)),e[10]||(e[10]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/soc ",1)]),_:1}),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Beispiel: ",-1)),e[15]||(e[15]=n("span",{class:"text-info"},"95",-1))])]),e[32]||(e[32]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[16]||(e[16]=n("br",null,null,-1)),e[17]||(e[17]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Beispiel: ",-1)),e[20]||(e[20]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Beispiel: ",-1)),e[25]||(e[25]=n("span",{class:"text-info"},"123.45",-1))])]),e[33]||(e[33]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[26]||(e[26]=n("br",null,null,-1)),e[27]||(e[27]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[28]||(e[28]=n("br",null,null,-1)),e[29]||(e[29]=t(" Beispiel: ",-1)),e[30]||(e[30]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1}),i(d,null,{default:l(()=>[...e[34]||(e[34]=[t(" Optionale Einstellungen ",-1)])]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[40]||(e[40]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/mqtt/bat/"+s(o.component.id)+"/set/power_limit ",1)]),_:1}),e[35]||(e[35]=n("br",null,null,-1)),e[36]||(e[36]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[37]||(e[37]=n("br",null,null,-1)),e[38]||(e[38]=t(" Beispiel: ",-1)),e[39]||(e[39]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1}),i(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const V=b(k,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{V as default}; +import{C as g}from"./HardwareInstallation-DrK-NlWu.js";import{_ as b,l as u,k as f,e as B,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"DeviceMqttBat",mixins:[g]},w={class:"device-mqtt-bat"};function z(o,e,v,W,S,T){const d=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),a=u("openwb-base-button-group-input");return f(),B("div",w,[i(d,null,{default:l(()=>[...e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])]),_:1}),i(p,{subtype:"warning"},{default:l(()=>[e[2]||(e[2]=t(" Ist die ",-1)),e[3]||(e[3]=n("strong",null,"Benutzerverwaltung",-1)),e[4]||(e[4]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Speicher '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[5]||(e[5]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[31]||(e[31]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Beispiel: ",-1)),e[10]||(e[10]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/soc ",1)]),_:1}),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Beispiel: ",-1)),e[15]||(e[15]=n("span",{class:"text-info"},"95",-1))])]),e[32]||(e[32]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[16]||(e[16]=n("br",null,null,-1)),e[17]||(e[17]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Beispiel: ",-1)),e[20]||(e[20]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Beispiel: ",-1)),e[25]||(e[25]=n("span",{class:"text-info"},"123.45",-1))])]),e[33]||(e[33]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[26]||(e[26]=n("br",null,null,-1)),e[27]||(e[27]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[28]||(e[28]=n("br",null,null,-1)),e[29]||(e[29]=t(" Beispiel: ",-1)),e[30]||(e[30]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1}),i(d,null,{default:l(()=>[...e[34]||(e[34]=[t(" Optionale Einstellungen ",-1)])]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[40]||(e[40]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/mqtt/bat/"+s(o.component.id)+"/set/power_limit ",1)]),_:1}),e[35]||(e[35]=n("br",null,null,-1)),e[36]||(e[36]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[37]||(e[37]=n("br",null,null,-1)),e[38]||(e[38]=t(" Beispiel: ",-1)),e[39]||(e[39]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1}),i(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const V=b(k,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-26IrZ19X.js b/web/settings/assets/bat-C-8Z5eMd.js similarity index 95% rename from web/settings/assets/bat-26IrZ19X.js rename to web/settings/assets/bat-C-8Z5eMd.js index 16c334fca5..03d4338aec 100644 --- a/web/settings/assets/bat-26IrZ19X.js +++ b/web/settings/assets/bat-C-8Z5eMd.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as s,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(n,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":n.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":n.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateConfiguration(t,"configuration.jq_imported"))},{help:l(()=>[...e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const U=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{U as default}; +import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as s,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(n,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":n.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":n.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateConfiguration(t,"configuration.jq_imported"))},{help:l(()=>[...e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const U=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{U as default}; diff --git a/web/settings/assets/bat-XK6ruyYp.js b/web/settings/assets/bat-C5vCaakP.js similarity index 97% rename from web/settings/assets/bat-XK6ruyYp.js rename to web/settings/assets/bat-C5vCaakP.js index 6cb2b79040..a21d2b5428 100644 --- a/web/settings/assets/bat-XK6ruyYp.js +++ b/web/settings/assets/bat-C5vCaakP.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as d,k as p,e as g,m as l,q as i,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>[...e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])]),_:1}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>[...e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>[...e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; +import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as d,k as p,e as g,m as l,q as i,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>[...e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])]),_:1}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>[...e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>[...e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-ByCHTSc9.js b/web/settings/assets/bat-CA1pDpyc.js similarity index 92% rename from web/settings/assets/bat-ByCHTSc9.js rename to web/settings/assets/bat-CA1pDpyc.js index 6654627a47..51891f60e6 100644 --- a/web/settings/assets/bat-ByCHTSc9.js +++ b/web/settings/assets/bat-CA1pDpyc.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as d,m as a,q as b,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxBat",mixins:[l]},f={class:"device-solarmax-bat"};function g(o,e,v,x,w,S){const r=n("openwb-base-alert"),s=n("openwb-base-number-input"),u=n("openwb-base-button-group-input");return m(),d("div",f,[a(r,{subtype:"info"},{default:b(()=>[...e[2]||(e[2]=[i(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden.",-1),c("br",null,null,-1),i(' Die aktive Speichersteuerung ist ab Solarmax Software Version 3.4.4 verfügbar. Zur Nutzung muss die Funktion "Connectivity+" durch den Solarmax Support (nicht openWB Support) freigeschaltet werden. ',-1)])]),_:1}),a(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),a(u,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const D=p(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{D as default}; +import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as d,m as a,q as b,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxBat",mixins:[l]},f={class:"device-solarmax-bat"};function g(o,e,v,x,w,S){const r=n("openwb-base-alert"),s=n("openwb-base-number-input"),u=n("openwb-base-button-group-input");return m(),d("div",f,[a(r,{subtype:"info"},{default:b(()=>[...e[2]||(e[2]=[i(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden.",-1),c("br",null,null,-1),i(' Die aktive Speichersteuerung ist ab Solarmax Software Version 3.4.4 verfügbar. Zur Nutzung muss die Funktion "Connectivity+" durch den Solarmax Support (nicht openWB Support) freigeschaltet werden. ',-1)])]),_:1}),a(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),a(u,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const D=p(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-Dbv3vNU1.js b/web/settings/assets/bat-CW5lqe8H.js similarity index 87% rename from web/settings/assets/bat-Dbv3vNU1.js rename to web/settings/assets/bat-CW5lqe8H.js index bd9c498f23..c4b5c2d5e5 100644 --- a/web/settings/assets/bat-Dbv3vNU1.js +++ b/web/settings/assets/bat-CW5lqe8H.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as d,e as m,m as n,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceStuderBat",mixins:[a]},_={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return d(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as d,e as m,m as n,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceStuderBat",mixins:[a]},_={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return d(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-BERY8z9f.js b/web/settings/assets/bat-CWWcSN5h.js similarity index 86% rename from web/settings/assets/bat-BERY8z9f.js rename to web/settings/assets/bat-CWWcSN5h.js index ba2c32e9f9..d161f6b0e0 100644 --- a/web/settings/assets/bat-BERY8z9f.js +++ b/web/settings/assets/bat-CWWcSN5h.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as o,k as i,e as s,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceBatterXBat",mixins:[r]},l={class:"device-batterx-bat"};function d(_,e,b,u,f,x){const t=o("openwb-base-alert");return i(),s("div",l,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Der BatterX Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. ",-1)])]),_:1})])}const $=n(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/bat.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as o,k as i,e as s,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceBatterXBat",mixins:[r]},l={class:"device-batterx-bat"};function d(_,e,b,u,f,x){const t=o("openwb-base-alert");return i(),s("div",l,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Der BatterX Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. ",-1)])]),_:1})])}const $=n(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-B0T6AimZ.js b/web/settings/assets/bat-C_Uav9BA.js similarity index 88% rename from web/settings/assets/bat-B0T6AimZ.js rename to web/settings/assets/bat-C_Uav9BA.js index 8a79b2b17a..7506fc3be4 100644 --- a/web/settings/assets/bat-B0T6AimZ.js +++ b/web/settings/assets/bat-C_Uav9BA.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-Dw1dp4yk.js b/web/settings/assets/bat-CcOi7qeq.js similarity index 87% rename from web/settings/assets/bat-Dw1dp4yk.js rename to web/settings/assets/bat-CcOi7qeq.js index 3ade7dcd90..9db891a6f2 100644 --- a/web/settings/assets/bat-Dw1dp4yk.js +++ b/web/settings/assets/bat-CcOi7qeq.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{q as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{q as default}; diff --git a/web/settings/assets/bat-_7mtDj_h.js b/web/settings/assets/bat-ChvTGfrS.js similarity index 91% rename from web/settings/assets/bat-_7mtDj_h.js rename to web/settings/assets/bat-ChvTGfrS.js index 649af39c36..9c3989f2db 100644 --- a/web/settings/assets/bat-_7mtDj_h.js +++ b/web/settings/assets/bat-ChvTGfrS.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as a,k as p,e as u,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeBat",mixins:[d]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>[...e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const h=m(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{h as default}; +import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as a,k as p,e as u,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeBat",mixins:[d]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>[...e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const h=m(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-EML-jKM6.js b/web/settings/assets/bat-CjexnhY1.js similarity index 87% rename from web/settings/assets/bat-EML-jKM6.js rename to web/settings/assets/bat-CjexnhY1.js index dc0897ed38..40f6240884 100644 --- a/web/settings/assets/bat-EML-jKM6.js +++ b/web/settings/assets/bat-CjexnhY1.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-DrOtsCLh.js b/web/settings/assets/bat-Cjlfvz8n.js similarity index 91% rename from web/settings/assets/bat-DrOtsCLh.js rename to web/settings/assets/bat-Cjlfvz8n.js index 5ed3b37edc..0a2e167554 100644 --- a/web/settings/assets/bat-DrOtsCLh.js +++ b/web/settings/assets/bat-Cjlfvz8n.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as l,e as g,m as t,q as i,A as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSigenergyBat",mixins:[u]},c={class:"device-sigenergy-bat"};function _(r,e,f,v,h,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),g("div",c,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Sigenergy Batteriespeicher ",-1)])]),_:1}),t(a,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[o(" Der Sigenergy Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. Die aktive Beladung des Speichers ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":r.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>r.updateConfiguration(d,"configuration.modbus_id"))},{help:i(()=>[...e[3]||(e[3]=[o(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const E=m(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{E as default}; +import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as l,e as g,m as t,q as i,A as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSigenergyBat",mixins:[u]},c={class:"device-sigenergy-bat"};function _(r,e,f,v,h,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),g("div",c,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Sigenergy Batteriespeicher ",-1)])]),_:1}),t(a,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[o(" Der Sigenergy Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. Die aktive Beladung des Speichers ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":r.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>r.updateConfiguration(d,"configuration.modbus_id"))},{help:i(()=>[...e[3]||(e[3]=[o(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const E=m(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-DwRFcEFG.js b/web/settings/assets/bat-ClqXmjbq.js similarity index 87% rename from web/settings/assets/bat-DwRFcEFG.js rename to web/settings/assets/bat-ClqXmjbq.js index 2f298a1e12..58b78ada47 100644 --- a/web/settings/assets/bat-DwRFcEFG.js +++ b/web/settings/assets/bat-ClqXmjbq.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeBat",mixins:[r]},_={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeBat",mixins:[r]},_={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-CrV_lSyl.js b/web/settings/assets/bat-CrV_lSyl.js new file mode 100644 index 0000000000..b354172ab2 --- /dev/null +++ b/web/settings/assets/bat-CrV_lSyl.js @@ -0,0 +1 @@ +import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l,k as a,e as i,m as u,q as c,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceQCellsBat",mixins:[o]},p={class:"device-qcells-bat"};function m(_,n,b,g,f,h){const s=l("openwb-base-alert");return a(),i("div",p,[u(s,{subtype:"info"},{default:c(()=>[...n[0]||(n[0]=[e(" Die aktive Speichersteuerung erfolgt über das Solax Remote Control Modbus-Protokoll (Mode 1, Active Power Control).",-1),t("br",null,null,-1),e(" Unterstützte Hardware: QCells Q.VOLT HYB-G3-3P (Solax Gen4).",-1),t("br",null,null,-1),e(" openWB berechnet den Sollwert aus Hauslast und PV-Leistung.",-1),t("br",null,null,-1),e(" Damit bei 0W Speicher-Sollwert die Batterie nicht entlädt, muss die Hausanschlussgrenze am EVU-Zähler (max_total_power) korrekt gesetzt sein.",-1),t("br",null,null,-1),e(' Bitte die Felder "Maximale Ladeleistung" und "Maximale Entladeleistung" unter Ladeeinstellungen > Speichersteuerung entsprechend der Leistungsfähigkeit des Wechselrichters und der angeschlossenen Batterie konfigurieren. ',-1)])]),_:1})])}const L=r(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/bat.vue"]]);export{L as default}; diff --git a/web/settings/assets/bat-CnxJ24UF.js b/web/settings/assets/bat-Cso_FjAB.js similarity index 87% rename from web/settings/assets/bat-CnxJ24UF.js rename to web/settings/assets/bat-Cso_FjAB.js index 7c1e3e1ba3..0ae74a0f62 100644 --- a/web/settings/assets/bat-CnxJ24UF.js +++ b/web/settings/assets/bat-Cso_FjAB.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHBat",mixins:[r]},_={class:"device-kaco-nh-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),a=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Kaco NH Batteriespeicher ",-1)])]),_:1}),t(a,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/bat.vue"]]);export{q as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHBat",mixins:[r]},_={class:"device-kaco-nh-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),a=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Kaco NH Batteriespeicher ",-1)])]),_:1}),t(a,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/bat.vue"]]);export{q as default}; diff --git a/web/settings/assets/bat-g-gN6DNl.js b/web/settings/assets/bat-DGxxvF09.js similarity index 87% rename from web/settings/assets/bat-g-gN6DNl.js rename to web/settings/assets/bat-DGxxvF09.js index 51bff3c760..d6273bd05d 100644 --- a/web/settings/assets/bat-g-gN6DNl.js +++ b/web/settings/assets/bat-DGxxvF09.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Victron Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID Speicher",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Victron Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID Speicher",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat--jkW4uM1.js b/web/settings/assets/bat-DM6pfv3v.js similarity index 87% rename from web/settings/assets/bat--jkW4uM1.js rename to web/settings/assets/bat-DM6pfv3v.js index a13ab71e25..9d9237436e 100644 --- a/web/settings/assets/bat--jkW4uM1.js +++ b/web/settings/assets/bat-DM6pfv3v.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVenusCEBat",mixins:[r]},c={class:"device-venus_c_e-bat"};function b(o,e,f,v,g,C){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für Marstek Venus C, E Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVenusCEBat",mixins:[r]},c={class:"device-venus_c_e-bat"};function b(o,e,f,v,g,C){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für Marstek Venus C, E Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-CQPOUTj3.js b/web/settings/assets/bat-DM7fO5hq.js similarity index 90% rename from web/settings/assets/bat-CQPOUTj3.js rename to web/settings/assets/bat-DM7fO5hq.js index c188490ea5..ec27e8ab41 100644 --- a/web/settings/assets/bat-CQPOUTj3.js +++ b/web/settings/assets/bat-DM7fO5hq.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as d,e as c,m as i,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>[...e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])]),_:1}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const q=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{q as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as d,e as c,m as i,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>[...e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])]),_:1}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const q=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{q as default}; diff --git a/web/settings/assets/bat-DAoCRKqd.js b/web/settings/assets/bat-DYO-TJpZ.js similarity index 87% rename from web/settings/assets/bat-DAoCRKqd.js rename to web/settings/assets/bat-DYO-TJpZ.js index 45133234e8..50f956c602 100644 --- a/web/settings/assets/bat-DAoCRKqd.js +++ b/web/settings/assets/bat-DYO-TJpZ.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFroniusBat",mixins:[a]},_={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const D=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFroniusBat",mixins:[a]},_={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const D=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-DtUSWouQ.js b/web/settings/assets/bat-DfC3LldK.js similarity index 89% rename from web/settings/assets/bat-DtUSWouQ.js rename to web/settings/assets/bat-DfC3LldK.js index ccb569d9f0..1fc0af80a9 100644 --- a/web/settings/assets/bat-DtUSWouQ.js +++ b/web/settings/assets/bat-DfC3LldK.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])]),_:1}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>[...e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const I=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])]),_:1}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>[...e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const I=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{I as default}; diff --git a/web/settings/assets/bat-eF5oA3Oa.js b/web/settings/assets/bat-DjyCL_fH.js similarity index 87% rename from web/settings/assets/bat-eF5oA3Oa.js rename to web/settings/assets/bat-DjyCL_fH.js index 2d674bd150..3134136bcd 100644 --- a/web/settings/assets/bat-eF5oA3Oa.js +++ b/web/settings/assets/bat-DjyCL_fH.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisBat",mixins:[r]},_={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{D as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisBat",mixins:[r]},_={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-DlQIYeS5.js b/web/settings/assets/bat-DlQIYeS5.js deleted file mode 100644 index 4cfc90d235..0000000000 --- a/web/settings/assets/bat-DlQIYeS5.js +++ /dev/null @@ -1 +0,0 @@ -import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l,k as i,e as a,m as c,q as d,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceQCellsBat",mixins:[o]},p={class:"device-qcells-bat"};function m(_,n,b,f,h,x){const s=l("openwb-base-alert");return i(),a("div",p,[c(s,{subtype:"info"},{default:d(()=>[...n[0]||(n[0]=[e(" Die aktive Speichersteuerung erfolgt über das Solax Remote Control Modbus-Protokoll (Mode 8).",-1),t("br",null,null,-1),e(" Unterstützte Hardware: QCells Q.VOLT HYB-G3-3P (Solax Gen4), Solax Gen4/Gen5/Gen6 Hybrid und AC Wechselrichter.",-1),t("br",null,null,-1),e(" Gen2/Gen3 Wechselrichter werden nicht unterstützt, da diese kein Remote Control unterstützen.",-1),t("br",null,null,-1),e(' Bitte die Felder "Maximale Ladeleistung" und "Maximale Entladeleistung" unter Ladeeinstellungen > Speichersteuerung entsprechend der Leistungsfähigkeit des Wechselrichters und der angeschlossenen Batterie konfigurieren. ',-1)])]),_:1})])}const S=r(u,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-Cn1EQGgB.js b/web/settings/assets/bat-DpnEphe_.js similarity index 87% rename from web/settings/assets/bat-Cn1EQGgB.js rename to web/settings/assets/bat-DpnEphe_.js index 05ba1daeea..dac7c03a6f 100644 --- a/web/settings/assets/bat-Cn1EQGgB.js +++ b/web/settings/assets/bat-DpnEphe_.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{V as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-B0JSSnLj.js b/web/settings/assets/bat-Ikmja4Vs.js similarity index 87% rename from web/settings/assets/bat-B0JSSnLj.js rename to web/settings/assets/bat-Ikmja4Vs.js index 6403624c57..fdbecb13cb 100644 --- a/web/settings/assets/bat-B0JSSnLj.js +++ b/web/settings/assets/bat-Ikmja4Vs.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as p,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])]),_:1}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{D as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as p,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])]),_:1}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-CE8ZvzxW.js b/web/settings/assets/bat-LvnuQvaR.js similarity index 89% rename from web/settings/assets/bat-CE8ZvzxW.js rename to web/settings/assets/bat-LvnuQvaR.js index 464f1f588b..2abe2e4409 100644 --- a/web/settings/assets/bat-CE8ZvzxW.js +++ b/web/settings/assets/bat-LvnuQvaR.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as i,l as r,k as s,e as o,m as p,q as l,A as n,x as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceAlphaEssBat",mixins:[a]},m={class:"device-alphaess-bat"};function u(_,e,f,b,g,h){const t=r("openwb-base-alert");return s(),o("div",m,[p(t,{subtype:"info"},{default:l(()=>[...e[0]||(e[0]=[n(" Der AlphaESS Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren.",-1),d("br",null,null,-1),n(' Zur Nutzung müssen über Webinterface oder App einmalig Zeiten für das Netzladen definiert werden. (Einstellungen -> Funktionseinstellungen -> Netzladen/Entladen). Hier einen durchgängigen Zeitraum eintragen (Ladezeit 1: 00:00-23:00, Ladezeit 2 23:00-00:00). Den Schalter "Netzladen" deaktivieren! ',-1)])]),_:1})])}const C=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/bat.vue"]]);export{C as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as i,l as r,k as s,e as o,m as p,q as l,A as n,x as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceAlphaEssBat",mixins:[a]},m={class:"device-alphaess-bat"};function u(_,e,f,b,g,h){const t=r("openwb-base-alert");return s(),o("div",m,[p(t,{subtype:"info"},{default:l(()=>[...e[0]||(e[0]=[n(" Der AlphaESS Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren.",-1),d("br",null,null,-1),n(' Zur Nutzung müssen über Webinterface oder App einmalig Zeiten für das Netzladen definiert werden. (Einstellungen -> Funktionseinstellungen -> Netzladen/Entladen). Hier einen durchgängigen Zeitraum eintragen (Ladezeit 1: 00:00-23:00, Ladezeit 2 23:00-00:00). Den Schalter "Netzladen" deaktivieren! ',-1)])]),_:1})])}const C=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-DZNpCoR7.js b/web/settings/assets/bat-P6JfJZmF.js similarity index 89% rename from web/settings/assets/bat-DZNpCoR7.js rename to web/settings/assets/bat-P6JfJZmF.js index 0b30dd563b..56af6670e6 100644 --- a/web/settings/assets/bat-DZNpCoR7.js +++ b/web/settings/assets/bat-P6JfJZmF.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as p,k as t,e as c,y as i,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function f(s,e,v,b,l,g){const n=p("openwb-base-alert");return t(),c("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])]),_:1})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])]),_:1}))])}const h=d(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{h as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as p,k as t,e as c,y as i,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function f(s,e,v,b,l,g){const n=p("openwb-base-alert");return t(),c("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])]),_:1})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])]),_:1}))])}const h=d(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-BbH2OvqQ.js b/web/settings/assets/bat-g5CpLXKe.js similarity index 87% rename from web/settings/assets/bat-BbH2OvqQ.js rename to web/settings/assets/bat-g5CpLXKe.js index c275a2a632..cd3323d8b3 100644 --- a/web/settings/assets/bat-BbH2OvqQ.js +++ b/web/settings/assets/bat-g5CpLXKe.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolakonOneBat",mixins:[r]},c={class:"device-solakon-one-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/bat.vue"]]);export{D as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolakonOneBat",mixins:[r]},c={class:"device-solakon-one-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat_smart_energy-CXDoZsZR.js b/web/settings/assets/bat_smart_energy-Czb4GYtP.js similarity index 88% rename from web/settings/assets/bat_smart_energy-CXDoZsZR.js rename to web/settings/assets/bat_smart_energy-Czb4GYtP.js index 2222aa18a0..0c52543af8 100644 --- a/web/settings/assets/bat_smart_energy-CXDoZsZR.js +++ b/web/settings/assets/bat_smart_energy-Czb4GYtP.js @@ -1 +1 @@ -import{C as i}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as p,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[i]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{M as default}; +import{C as i}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as p,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[i]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{M as default}; diff --git a/web/settings/assets/chargePoint-mAO4xa7T.js b/web/settings/assets/chargePoint-Bd2Kp2l0.js similarity index 90% rename from web/settings/assets/chargePoint-mAO4xa7T.js rename to web/settings/assets/chargePoint-Bd2Kp2l0.js index 89f46953de..e3f795b717 100644 --- a/web/settings/assets/chargePoint-mAO4xa7T.js +++ b/web/settings/assets/chargePoint-Bd2Kp2l0.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-C3IshOKk.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{q as default}; +import{C as p}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-f_Y7TEQC.js b/web/settings/assets/chargePoint-CIyU28Hf.js similarity index 90% rename from web/settings/assets/chargePoint-f_Y7TEQC.js rename to web/settings/assets/chargePoint-CIyU28Hf.js index c58ba13fd6..dfddd0d1f6 100644 --- a/web/settings/assets/chargePoint-f_Y7TEQC.js +++ b/web/settings/assets/chargePoint-CIyU28Hf.js @@ -1 +1 @@ -import{C as s}from"./ChargePointInstallation-C3IshOKk.js";import{_ as p,l as n,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>[...e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])]),_:1},8,["model-value"])])}const W=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{W as default}; +import{C as s}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as p,l as n,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>[...e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])]),_:1},8,["model-value"])])}const W=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{W as default}; diff --git a/web/settings/assets/chargePoint-BxYclOKe.js b/web/settings/assets/chargePoint-CZkD_QGG.js similarity index 98% rename from web/settings/assets/chargePoint-BxYclOKe.js rename to web/settings/assets/chargePoint-CZkD_QGG.js index 3982469b0d..faea696080 100644 --- a/web/settings/assets/chargePoint-BxYclOKe.js +++ b/web/settings/assets/chargePoint-CZkD_QGG.js @@ -1 +1 @@ -import{C as d}from"./ChargePointInstallation-C3IshOKk.js";import{_ as g,l as p,k as a,e as m,m as l,q as i,A as t,x as e,J as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>[...n[0]||(n[0]=[t(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])]),_:1}),l(u,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Ladepunkt '`+r(o.chargePoint.name)+"' ("+r(o.chargePoint.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(u,{subtype:"info"},{default:i(()=>[n[76]||(n[76]=e("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format). ",-1)),n[77]||(n[77]=e("p",null,' In Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics "openWB/set/chargepoint/id/get/..." und "openWB/chargepoint/set/..." bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ',-1)),e("ol",null,[e("li",null,[n[15]||(n[15]=t(" von openWB gesendete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"12.34",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"1",-1))])])]),e("li",null,[n[41]||(n[41]=t(" von openWB zwingend erwartete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"3",-1))])])]),e("li",null,[n[75]||(n[75]=t(" optionale Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[44]||(n[44]=e("br",null,null,-1)),n[45]||(n[45]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[46]||(n[46]=e("br",null,null,-1)),n[47]||(n[47]=t(" Beispiel: ",-1)),n[48]||(n[48]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[49]||(n[49]=e("br",null,null,-1)),n[50]||(n[50]=t(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[51]||(n[51]=e("br",null,null,-1)),n[52]||(n[52]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[53]||(n[53]=e("br",null,null,-1)),n[54]||(n[54]=t(" Beispiel: ",-1)),n[55]||(n[55]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[56]||(n[56]=e("br",null,null,-1)),n[57]||(n[57]=t(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[58]||(n[58]=e("br",null,null,-1)),n[59]||(n[59]=t(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[60]||(n[60]=e("br",null,null,-1)),n[61]||(n[61]=t(" Beispiel: ",-1)),n[62]||(n[62]=e("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[63]||(n[63]=e("br",null,null,-1)),n[64]||(n[64]=t(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[65]||(n[65]=e("br",null,null,-1)),n[66]||(n[66]=t(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[67]||(n[67]=e("br",null,null,-1)),n[68]||(n[68]=t(" Beispiel: ",-1)),n[69]||(n[69]=e("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid ",1)]),_:1}),n[70]||(n[70]=e("br",null,null,-1)),n[71]||(n[71]=t(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert. Der Tag darf nur einmalig nach dem Scannen gesendet werden. Nach der Verarbeitung leert openWB das Topic.",-1)),n[72]||(n[72]=e("br",null,null,-1)),n[73]||(n[73]=t(" Beispiel: ",-1)),n[74]||(n[74]=e("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1})])}const A=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{A as default}; +import{C as d}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as g,l as p,k as a,e as m,m as l,q as i,A as t,x as e,J as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>[...n[0]||(n[0]=[t(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])]),_:1}),l(u,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Ladepunkt '`+r(o.chargePoint.name)+"' ("+r(o.chargePoint.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(u,{subtype:"info"},{default:i(()=>[n[76]||(n[76]=e("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format). ",-1)),n[77]||(n[77]=e("p",null,' In Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics "openWB/set/chargepoint/id/get/..." und "openWB/chargepoint/set/..." bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ',-1)),e("ol",null,[e("li",null,[n[15]||(n[15]=t(" von openWB gesendete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"12.34",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"1",-1))])])]),e("li",null,[n[41]||(n[41]=t(" von openWB zwingend erwartete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"3",-1))])])]),e("li",null,[n[75]||(n[75]=t(" optionale Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[44]||(n[44]=e("br",null,null,-1)),n[45]||(n[45]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[46]||(n[46]=e("br",null,null,-1)),n[47]||(n[47]=t(" Beispiel: ",-1)),n[48]||(n[48]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[49]||(n[49]=e("br",null,null,-1)),n[50]||(n[50]=t(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[51]||(n[51]=e("br",null,null,-1)),n[52]||(n[52]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[53]||(n[53]=e("br",null,null,-1)),n[54]||(n[54]=t(" Beispiel: ",-1)),n[55]||(n[55]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[56]||(n[56]=e("br",null,null,-1)),n[57]||(n[57]=t(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[58]||(n[58]=e("br",null,null,-1)),n[59]||(n[59]=t(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[60]||(n[60]=e("br",null,null,-1)),n[61]||(n[61]=t(" Beispiel: ",-1)),n[62]||(n[62]=e("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[63]||(n[63]=e("br",null,null,-1)),n[64]||(n[64]=t(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[65]||(n[65]=e("br",null,null,-1)),n[66]||(n[66]=t(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[67]||(n[67]=e("br",null,null,-1)),n[68]||(n[68]=t(" Beispiel: ",-1)),n[69]||(n[69]=e("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid ",1)]),_:1}),n[70]||(n[70]=e("br",null,null,-1)),n[71]||(n[71]=t(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert. Der Tag darf nur einmalig nach dem Scannen gesendet werden. Nach der Verarbeitung leert openWB das Topic.",-1)),n[72]||(n[72]=e("br",null,null,-1)),n[73]||(n[73]=t(" Beispiel: ",-1)),n[74]||(n[74]=e("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1})])}const A=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{A as default}; diff --git a/web/settings/assets/chargePoint-CLglsVkD.js b/web/settings/assets/chargePoint-DWLMU56i.js similarity index 86% rename from web/settings/assets/chargePoint-CLglsVkD.js rename to web/settings/assets/chargePoint-DWLMU56i.js index 6a48265ae2..c8668fe101 100644 --- a/web/settings/assets/chargePoint-CLglsVkD.js +++ b/web/settings/assets/chargePoint-DWLMU56i.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-C3IshOKk.js";import{_ as i,l as p,k as s,e as a,m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const B=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{B as default}; +import{C as r}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as i,l as p,k as s,e as a,m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const B=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{B as default}; diff --git a/web/settings/assets/chargePoint-BsAFaJWO.js b/web/settings/assets/chargePoint-Dedwz5Jy.js similarity index 90% rename from web/settings/assets/chargePoint-BsAFaJWO.js rename to web/settings/assets/chargePoint-Dedwz5Jy.js index 825d705576..d4c5ea6666 100644 --- a/web/settings/assets/chargePoint-BsAFaJWO.js +++ b/web/settings/assets/chargePoint-Dedwz5Jy.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-C3IshOKk.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{q as default}; +import{C as p}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-DHvT86qo.js b/web/settings/assets/chargePoint-UK4SBHnE.js similarity index 90% rename from web/settings/assets/chargePoint-DHvT86qo.js rename to web/settings/assets/chargePoint-UK4SBHnE.js index 15ec11513b..46f716b561 100644 --- a/web/settings/assets/chargePoint-DHvT86qo.js +++ b/web/settings/assets/chargePoint-UK4SBHnE.js @@ -1 +1 @@ -import{C as a}from"./ChargePointInstallation-C3IshOKk.js";import{_ as i,l as p,k as s,e as u,m as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"ChargePointOpenwbDcAdapter",mixins:[a]},d={class:"charge-point-openwb-dc-adapter"};function m(e,o,g,f,c,b){const n=p("openwb-base-text-input");return s(),u("div",d,[r(n,{title:"URL",subtype:"url",required:"","model-value":e.chargePoint.configuration.url,"onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.url"))},null,8,["model-value"]),r(n,{title:"Benutzername",subtype:"user","model-value":e.chargePoint.configuration.user,"onUpdate:modelValue":o[1]||(o[1]=t=>e.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),r(n,{title:"Passwort",subtype:"password","model-value":e.chargePoint.configuration.password,"onUpdate:modelValue":o[2]||(o[2]=t=>e.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const $=i(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{$ as default}; +import{C as a}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as i,l as p,k as s,e as u,m as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"ChargePointOpenwbDcAdapter",mixins:[a]},d={class:"charge-point-openwb-dc-adapter"};function m(e,o,g,f,c,b){const n=p("openwb-base-text-input");return s(),u("div",d,[r(n,{title:"URL",subtype:"url",required:"","model-value":e.chargePoint.configuration.url,"onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.url"))},null,8,["model-value"]),r(n,{title:"Benutzername",subtype:"user","model-value":e.chargePoint.configuration.user,"onUpdate:modelValue":o[1]||(o[1]=t=>e.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),r(n,{title:"Passwort",subtype:"password","model-value":e.chargePoint.configuration.password,"onUpdate:modelValue":o[2]||(o[2]=t=>e.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const $=i(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{$ as default}; diff --git a/web/settings/assets/chargePoint-Cu68pCda.js b/web/settings/assets/chargePoint-sYavUqxv.js similarity index 93% rename from web/settings/assets/chargePoint-Cu68pCda.js rename to web/settings/assets/chargePoint-sYavUqxv.js index 235d0be185..4dfe6f1735 100644 --- a/web/settings/assets/chargePoint-Cu68pCda.js +++ b/web/settings/assets/chargePoint-sYavUqxv.js @@ -1 +1 @@ -import{C as u}from"./ChargePointInstallation-C3IshOKk.js";import{_ as p,l as t,k as i,e as d,m,y as l,q as c,A as g,u as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},B={class:"charge-point-internal-openwb"};function h(e,n,b,k,v,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",B,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"},{value:"se",text:"openWB SE 11kW"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":n[0]||(n[0]=o=>a.updateMode(o))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"||e.chargePoint.configuration.mode=="se"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":n[1]||(n[1]=o=>e.updateConfiguration(o-1,"configuration.duo_num"))},{help:c(()=>[...n[2]||(n[2]=[g(' Bei einer openWB Duo oder openWB SE Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. Bei einer openWB SE mit einem Ladepunkt ist hier eine 1 einzutragen. ',-1)])]),_:1},8,["model-value"])):f("",!0)])}const D=p(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{D as default}; +import{C as u}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as p,l as t,k as i,e as d,m,y as l,q as c,A as g,u as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},B={class:"charge-point-internal-openwb"};function h(e,n,b,k,v,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",B,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"},{value:"se",text:"openWB SE 11kW"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":n[0]||(n[0]=o=>a.updateMode(o))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"||e.chargePoint.configuration.mode=="se"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":n[1]||(n[1]=o=>e.updateConfiguration(o-1,"configuration.duo_num"))},{help:c(()=>[...n[2]||(n[2]=[g(' Bei einer openWB Duo oder openWB SE Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. Bei einer openWB SE mit einem Ladepunkt ist hier eine 1 einzutragen. ',-1)])]),_:1},8,["model-value"])):f("",!0)])}const D=p(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{D as default}; diff --git a/web/settings/assets/commands-Dy4aruCr.js b/web/settings/assets/commands-DVXr5SHv.js similarity index 95% rename from web/settings/assets/commands-Dy4aruCr.js rename to web/settings/assets/commands-DVXr5SHv.js index 648bbe2845..c2d5f377b6 100644 --- a/web/settings/assets/commands-Dy4aruCr.js +++ b/web/settings/assets/commands-DVXr5SHv.js @@ -1 +1 @@ -import{a as g}from"./ChargePointInstallation-C3IshOKk.js";import{_ as h,l as u,k as a,e as c,m as d,q as r,A as i,y as _,J as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let t=new FormData;t.append("command","update_pro_plus"),this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wird gestartet...","info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.","success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(t,n,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[t.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>[...n[0]||(n[0]=[i(" Hier kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte stelle sicher, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>[...n[1]||(n[1]=[i(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(t.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const A=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{A as default}; +import{a as g}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as h,l as u,k as a,e as c,m as d,q as r,A as i,y as _,J as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let t=new FormData;t.append("command","update_pro_plus"),this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wird gestartet...","info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.","success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(t,n,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[t.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>[...n[0]||(n[0]=[i(" Hier kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte stelle sicher, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>[...n[1]||(n[1]=[i(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(t.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const A=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{A as default}; diff --git a/web/settings/assets/commands-CZXUCdhE.js b/web/settings/assets/commands-WVGU9z4_.js similarity index 94% rename from web/settings/assets/commands-CZXUCdhE.js rename to web/settings/assets/commands-WVGU9z4_.js index a6b55be379..88ee7a5855 100644 --- a/web/settings/assets/commands-CZXUCdhE.js +++ b/web/settings/assets/commands-WVGU9z4_.js @@ -1 +1 @@ -import{a as d}from"./ChargePointInstallation-C3IshOKk.js";import{_ as u,l as c,k as l,e as g,m as a,q as r,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}'),this.$root.postClientMessage("Die Aktualisierung der openWB Pro wird gestartet...","info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.","success")}).catch(e=>{var n="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),n+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),n+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),n+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(n,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,s,e,n,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>[...s[0]||(s[0]=[p(" Mit diesem Befehl kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte beachte, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>[...s[1]||(s[1]=[p(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["disabled","onButtonClicked"])])}const E=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{E as default}; +import{a as d}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as u,l as c,k as l,e as g,m as a,q as r,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}'),this.$root.postClientMessage("Die Aktualisierung der openWB Pro wird gestartet...","info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.","success")}).catch(e=>{var n="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),n+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),n+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),n+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(n,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,s,e,n,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>[...s[0]||(s[0]=[p(" Mit diesem Befehl kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte beachte, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>[...s[1]||(s[1]=[p(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["disabled","onButtonClicked"])])}const E=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{E as default}; diff --git a/web/settings/assets/consumption_counter-Bdpmpdwz.js b/web/settings/assets/consumption_counter-s9tb-xVk.js similarity index 93% rename from web/settings/assets/consumption_counter-Bdpmpdwz.js rename to web/settings/assets/consumption_counter-s9tb-xVk.js index 92f2dcf1d0..02fecf6b2e 100644 --- a/web/settings/assets/consumption_counter-Bdpmpdwz.js +++ b/web/settings/assets/consumption_counter-s9tb-xVk.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,x,B){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])]),_:1}),t(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,x,B){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])]),_:1}),t(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-BlNNf5pm.js b/web/settings/assets/counter-5nvynE8p.js similarity index 97% rename from web/settings/assets/counter-BlNNf5pm.js rename to web/settings/assets/counter-5nvynE8p.js index 6a93ff8933..2a407af9ed 100644 --- a/web/settings/assets/counter-BlNNf5pm.js +++ b/web/settings/assets/counter-5nvynE8p.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as u,k as f,e as m,m as t,q as r,A as a,x as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,P,C){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>[...e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>[...e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>[...e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>[...e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const Z=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{Z as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as u,k as f,e as m,m as t,q as r,A as a,x as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,P,C){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>[...e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>[...e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>[...e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>[...e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const Z=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/counter-D7_oD-KG.js b/web/settings/assets/counter-B08rzQq5.js similarity index 87% rename from web/settings/assets/counter-D7_oD-KG.js rename to web/settings/assets/counter-B08rzQq5.js index 8bb2973112..c2ba6dc607 100644 --- a/web/settings/assets/counter-D7_oD-KG.js +++ b/web/settings/assets/counter-B08rzQq5.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as p,e as u,m as n,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as p,e as u,m as n,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-DW8E1juF.js b/web/settings/assets/counter-B2RD41ZG.js similarity index 88% rename from web/settings/assets/counter-DW8E1juF.js rename to web/settings/assets/counter-B2RD41ZG.js index 84210f25df..cbdc13b8cf 100644 --- a/web/settings/assets/counter-DW8E1juF.js +++ b/web/settings/assets/counter-B2RD41ZG.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as d,e as c,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as d,e as c,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-hPhZIn1G.js b/web/settings/assets/counter-BLEEk5vk.js similarity index 85% rename from web/settings/assets/counter-hPhZIn1G.js rename to web/settings/assets/counter-BLEEk5vk.js index 730954213f..b90472d637 100644 --- a/web/settings/assets/counter-hPhZIn1G.js +++ b/web/settings/assets/counter-BLEEk5vk.js @@ -1 +1 @@ -import{C as i}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as s,k as m,e as p,m as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const a={name:"DeviceChintCounter",mixins:[i]},c={class:"device-chint-counter"};function d(e,o,l,_,f,b){const n=s("openwb-base-number-input");return m(),p("div",c,[u(n,{title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"])])}const B=r(a,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/counter.vue"]]);export{B as default}; +import{C as i}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as s,k as m,e as p,m as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const a={name:"DeviceChintCounter",mixins:[i]},c={class:"device-chint-counter"};function d(e,o,l,_,f,b){const n=s("openwb-base-number-input");return m(),p("div",c,[u(n,{title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"])])}const B=r(a,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/counter.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter-DaNvZOHB.js b/web/settings/assets/counter-BLIDMuvJ.js similarity index 97% rename from web/settings/assets/counter-DaNvZOHB.js rename to web/settings/assets/counter-BLIDMuvJ.js index 61d70d12e1..eea449c587 100644 --- a/web/settings/assets/counter-DaNvZOHB.js +++ b/web/settings/assets/counter-BLIDMuvJ.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as s,k as p,e as g,m as i,q as a,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>[...e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])]),_:1}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>[...e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const U=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{U as default}; +import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as s,k as p,e as g,m as i,q as a,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>[...e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])]),_:1}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>[...e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const U=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter-D0K3UCGT.js b/web/settings/assets/counter-BWI3WRrg.js similarity index 85% rename from web/settings/assets/counter-D0K3UCGT.js rename to web/settings/assets/counter-BWI3WRrg.js index 8a4a04883b..f42688bb1c 100644 --- a/web/settings/assets/counter-D0K3UCGT.js +++ b/web/settings/assets/counter-BWI3WRrg.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-caZ0sA9z.js";import{_ as o,l as s,k as i,e as r,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},d={class:"device-sonnenbatterie-counter"};function _(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",d,[a(n,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1})])}const M=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{M as default}; +import{C as t}from"./HardwareInstallation-DrK-NlWu.js";import{_ as o,l as s,k as i,e as r,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},d={class:"device-sonnenbatterie-counter"};function _(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",d,[a(n,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1})])}const M=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-DwjPMM-K.js b/web/settings/assets/counter-BmG9nVGY.js similarity index 87% rename from web/settings/assets/counter-DwjPMM-K.js rename to web/settings/assets/counter-BmG9nVGY.js index d3aeebf5fa..4cfa550d1f 100644 --- a/web/settings/assets/counter-DwjPMM-K.js +++ b/web/settings/assets/counter-BmG9nVGY.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-B4eDF7ya.js b/web/settings/assets/counter-Bq_4dQ6X.js similarity index 90% rename from web/settings/assets/counter-B4eDF7ya.js rename to web/settings/assets/counter-Bq_4dQ6X.js index 638415bd2d..6b802d34a8 100644 --- a/web/settings/assets/counter-B4eDF7ya.js +++ b/web/settings/assets/counter-Bq_4dQ6X.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronCounter",mixins:[a]},_={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])]),_:1}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const q=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{q as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronCounter",mixins:[a]},_={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])]),_:1}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const q=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-CTI3HQV5.js b/web/settings/assets/counter-C3j9bCHZ.js similarity index 90% rename from web/settings/assets/counter-CTI3HQV5.js rename to web/settings/assets/counter-C3j9bCHZ.js index 756410296d..6f4ceba0d5 100644 --- a/web/settings/assets/counter-CTI3HQV5.js +++ b/web/settings/assets/counter-C3j9bCHZ.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-caZ0sA9z.js";import{_ as s,l as a,k as i,e as l,m as c,q as m,x as e,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function d(_,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[c(t,{subtype:"info"},{default:m(()=>[...o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])]),_:1})])}const S=s(p,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{S as default}; +import{C as n}from"./HardwareInstallation-DrK-NlWu.js";import{_ as s,l as a,k as i,e as l,m as c,q as m,x as e,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function d(_,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[c(t,{subtype:"info"},{default:m(()=>[...o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])]),_:1})])}const S=s(p,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{S as default}; diff --git a/web/settings/assets/counter-DyQR5TFM.js b/web/settings/assets/counter-C4Bc-LFa.js similarity index 88% rename from web/settings/assets/counter-DyQR5TFM.js rename to web/settings/assets/counter-C4Bc-LFa.js index e4384a60a7..7381d1a702 100644 --- a/web/settings/assets/counter-DyQR5TFM.js +++ b/web/settings/assets/counter-C4Bc-LFa.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(n,e,b,f,v,C){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const M=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(n,e,b,f,v,C){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const M=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-CuyIQkwJ.js b/web/settings/assets/counter-C5lMgFh-.js similarity index 84% rename from web/settings/assets/counter-CuyIQkwJ.js rename to web/settings/assets/counter-C5lMgFh-.js index 546f9b3679..6244a2d82e 100644 --- a/web/settings/assets/counter-CuyIQkwJ.js +++ b/web/settings/assets/counter-C5lMgFh-.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as a,e as i,m as r,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceJanitzaBat",mixins:[o]},u={class:"device-janitza-counter"};function _(d,e,f,l,v,b){const t=s("openwb-base-alert");return a(),i("div",u,[r(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])]),_:1})])}const j=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{j as default}; +import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as a,e as i,m as r,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceJanitzaBat",mixins:[o]},u={class:"device-janitza-counter"};function _(d,e,f,l,v,b){const t=s("openwb-base-alert");return a(),i("div",u,[r(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])]),_:1})])}const j=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{j as default}; diff --git a/web/settings/assets/counter-QsKjzQAu.js b/web/settings/assets/counter-C68GXHgb.js similarity index 84% rename from web/settings/assets/counter-QsKjzQAu.js rename to web/settings/assets/counter-C68GXHgb.js index 9f721cb746..c3a0a97c3f 100644 --- a/web/settings/assets/counter-QsKjzQAu.js +++ b/web/settings/assets/counter-C68GXHgb.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as a,e as r,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=s("openwb-base-alert");return a(),r("div",_,[i(o,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const M=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{M as default}; +import{C as t}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as a,e as r,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=s("openwb-base-alert");return a(),r("div",_,[i(o,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const M=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-BT5q5wk9.js b/web/settings/assets/counter-C7jGbtjK.js similarity index 97% rename from web/settings/assets/counter-BT5q5wk9.js rename to web/settings/assets/counter-C7jGbtjK.js index 34ef32633e..0db1798079 100644 --- a/web/settings/assets/counter-BT5q5wk9.js +++ b/web/settings/assets/counter-C7jGbtjK.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as u,k as g,e as f,m as l,q as i,A as t,x as e,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(o,n,z,w,v,W){const m=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard");return g(),f("div",B,[l(m,null,{default:i(()=>[...n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])]),_:1}),l(p,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Zähler '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(p,{subtype:"info"},{default:i(()=>[n[45]||(n[45]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"-123.45",-1))])]),n[46]||(n[46]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/imported ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/exported ",1)]),_:1}),n[15]||(n[15]=e("br",null,null,-1)),n[16]||(n[16]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[17]||(n[17]=e("br",null,null,-1)),n[18]||(n[18]=t(" Beispiel: ",-1)),n[19]||(n[19]=e("span",{class:"text-info"},"123.45",-1))])]),n[47]||(n[47]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/currents ",1)]),_:1}),n[20]||(n[20]=e("br",null,null,-1)),n[21]||(n[21]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[22]||(n[22]=e("br",null,null,-1)),n[23]||(n[23]=t(" Beispiel: ",-1)),n[24]||(n[24]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[48]||(n[48]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/frequency ",1)]),_:1}),n[25]||(n[25]=e("br",null,null,-1)),n[26]||(n[26]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[27]||(n[27]=e("br",null,null,-1)),n[28]||(n[28]=t(" Beispiel: ",-1)),n[29]||(n[29]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/voltages ",1)]),_:1}),n[30]||(n[30]=e("br",null,null,-1)),n[31]||(n[31]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[32]||(n[32]=e("br",null,null,-1)),n[33]||(n[33]=t(" Beispiel: ",-1)),n[34]||(n[34]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/powers ",1)]),_:1}),n[35]||(n[35]=e("br",null,null,-1)),n[36]||(n[36]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[37]||(n[37]=e("br",null,null,-1)),n[38]||(n[38]=t(" Beispiel: ",-1)),n[39]||(n[39]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power_factors ",1)]),_:1}),n[40]||(n[40]=e("br",null,null,-1)),n[41]||(n[41]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Beispiel: ",-1)),n[44]||(n[44]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1})])}const E=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{E as default}; +import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as u,k as g,e as f,m as l,q as i,A as t,x as e,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(o,n,z,w,v,W){const m=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard");return g(),f("div",B,[l(m,null,{default:i(()=>[...n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])]),_:1}),l(p,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Zähler '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(p,{subtype:"info"},{default:i(()=>[n[45]||(n[45]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"-123.45",-1))])]),n[46]||(n[46]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/imported ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/exported ",1)]),_:1}),n[15]||(n[15]=e("br",null,null,-1)),n[16]||(n[16]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[17]||(n[17]=e("br",null,null,-1)),n[18]||(n[18]=t(" Beispiel: ",-1)),n[19]||(n[19]=e("span",{class:"text-info"},"123.45",-1))])]),n[47]||(n[47]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/currents ",1)]),_:1}),n[20]||(n[20]=e("br",null,null,-1)),n[21]||(n[21]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[22]||(n[22]=e("br",null,null,-1)),n[23]||(n[23]=t(" Beispiel: ",-1)),n[24]||(n[24]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[48]||(n[48]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/frequency ",1)]),_:1}),n[25]||(n[25]=e("br",null,null,-1)),n[26]||(n[26]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[27]||(n[27]=e("br",null,null,-1)),n[28]||(n[28]=t(" Beispiel: ",-1)),n[29]||(n[29]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/voltages ",1)]),_:1}),n[30]||(n[30]=e("br",null,null,-1)),n[31]||(n[31]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[32]||(n[32]=e("br",null,null,-1)),n[33]||(n[33]=t(" Beispiel: ",-1)),n[34]||(n[34]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/powers ",1)]),_:1}),n[35]||(n[35]=e("br",null,null,-1)),n[36]||(n[36]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[37]||(n[37]=e("br",null,null,-1)),n[38]||(n[38]=t(" Beispiel: ",-1)),n[39]||(n[39]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power_factors ",1)]),_:1}),n[40]||(n[40]=e("br",null,null,-1)),n[41]||(n[41]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Beispiel: ",-1)),n[44]||(n[44]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1})])}const E=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-CXEiOT31.js b/web/settings/assets/counter-C7uERgGk.js similarity index 88% rename from web/settings/assets/counter-CXEiOT31.js rename to web/settings/assets/counter-C7uERgGk.js index 330a4d082d..8e7ce6b466 100644 --- a/web/settings/assets/counter-CXEiOT31.js +++ b/web/settings/assets/counter-C7uERgGk.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,w){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])]),_:1}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])]),_:1},8,["model-value"])])}const I=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,w){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])]),_:1}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])]),_:1},8,["model-value"])])}const I=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{I as default}; diff --git a/web/settings/assets/counter-DNHoKahk.js b/web/settings/assets/counter-C9TFKAZS.js similarity index 92% rename from web/settings/assets/counter-DNHoKahk.js rename to web/settings/assets/counter-C9TFKAZS.js index a8b6a84016..d7e26eb458 100644 --- a/web/settings/assets/counter-DNHoKahk.js +++ b/web/settings/assets/counter-C9TFKAZS.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as b,e as c,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceOpenwbFlexCounter",mixins:[d]},_={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),c("div",_,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as b,e as c,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceOpenwbFlexCounter",mixins:[d]},_={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),c("div",_,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-Ckg8eTmY.js b/web/settings/assets/counter-CALcAyno.js similarity index 88% rename from web/settings/assets/counter-Ckg8eTmY.js rename to web/settings/assets/counter-CALcAyno.js index e64fdc5df8..debe7d55bc 100644 --- a/web/settings/assets/counter-Ckg8eTmY.js +++ b/web/settings/assets/counter-CALcAyno.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiCounter",mixins:[m]},c={class:"device-kostal-piko-ci-counter"};function b(e,o,f,k,v,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return d(),l("div",c,[t(r,null,{default:i(()=>[...o[1]||(o[1]=[s(" Einstellungen für Kostal Piko CI Zähler ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=p=>e.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...o[2]||(o[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/counter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiCounter",mixins:[m]},c={class:"device-kostal-piko-ci-counter"};function b(e,o,f,k,v,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return d(),l("div",c,[t(r,null,{default:i(()=>[...o[1]||(o[1]=[s(" Einstellungen für Kostal Piko CI Zähler ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=p=>e.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...o[2]||(o[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-CZ_dQPx3.js b/web/settings/assets/counter-CAioz9cY.js similarity index 85% rename from web/settings/assets/counter-CZ_dQPx3.js rename to web/settings/assets/counter-CAioz9cY.js index 7022f82a77..039e458f89 100644 --- a/web/settings/assets/counter-CZ_dQPx3.js +++ b/web/settings/assets/counter-CAioz9cY.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-caZ0sA9z.js";import{_ as o,l as s,k as r,e as a,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>[...e[0]||(e[0]=[c(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])]),_:1})])}const B=o(p,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{B as default}; +import{C as n}from"./HardwareInstallation-DrK-NlWu.js";import{_ as o,l as s,k as r,e as a,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>[...e[0]||(e[0]=[c(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])]),_:1})])}const B=o(p,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter-CecO70YK.js b/web/settings/assets/counter-CBsxLQUz.js similarity index 87% rename from web/settings/assets/counter-CecO70YK.js rename to web/settings/assets/counter-CBsxLQUz.js index 1517a96de1..7934fd4b63 100644 --- a/web/settings/assets/counter-CecO70YK.js +++ b/web/settings/assets/counter-CBsxLQUz.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>[...o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>[...o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-DB0QI8WO.js b/web/settings/assets/counter-CDmfO7fm.js similarity index 87% rename from web/settings/assets/counter-DB0QI8WO.js rename to web/settings/assets/counter-CDmfO7fm.js index b4e5514c6c..a2ae577899 100644 --- a/web/settings/assets/counter-DB0QI8WO.js +++ b/web/settings/assets/counter-CDmfO7fm.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-DEQJUFuW.js b/web/settings/assets/counter-CFHdp5Rg.js similarity index 85% rename from web/settings/assets/counter-DEQJUFuW.js rename to web/settings/assets/counter-CFHdp5Rg.js index 0759194add..0d19b63759 100644 --- a/web/settings/assets/counter-DEQJUFuW.js +++ b/web/settings/assets/counter-CFHdp5Rg.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as s,l as n,k as r,e as a,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function d(_,e,u,f,b,h){const t=n("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])]),_:1})])}const K=s(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{K as default}; +import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as s,l as n,k as r,e as a,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function d(_,e,u,f,b,h){const t=n("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])]),_:1})])}const K=s(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{K as default}; diff --git a/web/settings/assets/counter-BHm4u10N.js b/web/settings/assets/counter-CG8UPJNQ.js similarity index 90% rename from web/settings/assets/counter-BHm4u10N.js rename to web/settings/assets/counter-CG8UPJNQ.js index b4c972626a..384c09c728 100644 --- a/web/settings/assets/counter-BHm4u10N.js +++ b/web/settings/assets/counter-CG8UPJNQ.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as m,e as d,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])]),_:1}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])]),_:1},8,["model-value"])])}const D=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as m,e as d,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])]),_:1}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])]),_:1},8,["model-value"])])}const D=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-BLXfQQ6R.js b/web/settings/assets/counter-CNaWH3hH.js similarity index 87% rename from web/settings/assets/counter-BLXfQQ6R.js rename to web/settings/assets/counter-CNaWH3hH.js index f694954f38..79bf2c5e77 100644 --- a/web/settings/assets/counter-BLXfQQ6R.js +++ b/web/settings/assets/counter-CNaWH3hH.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])]),_:1}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const q=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{q as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])]),_:1}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const q=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-Jn3S4DeN.js b/web/settings/assets/counter-CWRQi4AZ.js similarity index 88% rename from web/settings/assets/counter-Jn3S4DeN.js rename to web/settings/assets/counter-CWRQi4AZ.js index be23e35622..d1a7e1ff49 100644 --- a/web/settings/assets/counter-Jn3S4DeN.js +++ b/web/settings/assets/counter-CWRQi4AZ.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as c,l as t,k as m,e as d,m as o,q as s,A as l,x as n,J as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,x,v){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return m(),d("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as c,l as t,k as m,e as d,m as o,q as s,A as l,x as n,J as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,x,v){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return m(),d("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-CC6Wx6xY.js b/web/settings/assets/counter-C_KHyjgh.js similarity index 87% rename from web/settings/assets/counter-CC6Wx6xY.js rename to web/settings/assets/counter-C_KHyjgh.js index 7362fca4e1..bcf75f6d15 100644 --- a/web/settings/assets/counter-CC6Wx6xY.js +++ b/web/settings/assets/counter-C_KHyjgh.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as u,e as m,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoyCounter",mixins:[a]},_={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return u(),m("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as u,e as m,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoyCounter",mixins:[a]},_={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return u(),m("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-CyagC1co.js b/web/settings/assets/counter-CcBkZQq0.js similarity index 83% rename from web/settings/assets/counter-CyagC1co.js rename to web/settings/assets/counter-CcBkZQq0.js index f8732f40eb..b75a95ec6e 100644 --- a/web/settings/assets/counter-CyagC1co.js +++ b/web/settings/assets/counter-CcBkZQq0.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as r,e as i,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=s("openwb-base-alert");return r(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const g=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{g as default}; +import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as r,e as i,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=s("openwb-base-alert");return r(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const g=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{g as default}; diff --git a/web/settings/assets/counter-CEU7NcUL.js b/web/settings/assets/counter-CdY4HvNb.js similarity index 87% rename from web/settings/assets/counter-CEU7NcUL.js rename to web/settings/assets/counter-CdY4HvNb.js index a42e27cc1e..f0f167c320 100644 --- a/web/settings/assets/counter-CEU7NcUL.js +++ b/web/settings/assets/counter-CdY4HvNb.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{h as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{h as default}; diff --git a/web/settings/assets/counter-6OwhKOcX.js b/web/settings/assets/counter-CqYIUc0x.js similarity index 87% rename from web/settings/assets/counter-6OwhKOcX.js rename to web/settings/assets/counter-CqYIUc0x.js index b9e86c5103..3bc4a1554f 100644 --- a/web/settings/assets/counter-6OwhKOcX.js +++ b/web/settings/assets/counter-CqYIUc0x.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as s,l as n,k as i,e as a,m as c,q as p,A as o,x as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{Z as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as s,l as n,k as i,e as a,m as c,q as p,A as o,x as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/counter-CPpOsUI8.js b/web/settings/assets/counter-D2NORLkt.js similarity index 92% rename from web/settings/assets/counter-CPpOsUI8.js rename to web/settings/assets/counter-D2NORLkt.js index 56f8cc673a..309e67fd2f 100644 --- a/web/settings/assets/counter-CPpOsUI8.js +++ b/web/settings/assets/counter-D2NORLkt.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as r,k as m,e as g,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerCounter",mixins:[p]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),s=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])]),_:1}),t(s,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const q=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as r,k as m,e as g,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerCounter",mixins:[p]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),s=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])]),_:1}),t(s,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const q=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-0uEca16j.js b/web/settings/assets/counter-D8dbm9sC.js similarity index 91% rename from web/settings/assets/counter-0uEca16j.js rename to web/settings/assets/counter-D8dbm9sC.js index 06d0d2896d..b4b724b621 100644 --- a/web/settings/assets/counter-0uEca16j.js +++ b/web/settings/assets/counter-D8dbm9sC.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as r,k as p,e as f,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeCounter",mixins:[d]},b={class:"device-solaredge-counter"};function c(o,e,_,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),f("div",b,[n(l,null,{default:s(()=>[...e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])]),_:1}),n(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])]),_:1}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const q=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{q as default}; +import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as r,k as p,e as f,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeCounter",mixins:[d]},b={class:"device-solaredge-counter"};function c(o,e,_,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),f("div",b,[n(l,null,{default:s(()=>[...e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])]),_:1}),n(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])]),_:1}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const q=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-DtJWRRZK.js b/web/settings/assets/counter-D_yHfG7M.js similarity index 88% rename from web/settings/assets/counter-DtJWRRZK.js rename to web/settings/assets/counter-D_yHfG7M.js index ace7666364..50099b951c 100644 --- a/web/settings/assets/counter-DtJWRRZK.js +++ b/web/settings/assets/counter-D_yHfG7M.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as a,e as l,m as n,q as d,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:d(()=>[...o[1]||(o[1]=[m(" Einstellungen für Powerdog Zähler ",-1)])]),_:1}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const B=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{B as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as a,e as l,m as n,q as d,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:d(()=>[...o[1]||(o[1]=[m(" Einstellungen für Powerdog Zähler ",-1)])]),_:1}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const B=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter-BCEBVxHj.js b/web/settings/assets/counter-DbRhyf8N.js similarity index 89% rename from web/settings/assets/counter-BCEBVxHj.js rename to web/settings/assets/counter-DbRhyf8N.js index c9e0a54e24..8fb886dd76 100644 --- a/web/settings/assets/counter-BCEBVxHj.js +++ b/web/settings/assets/counter-DbRhyf8N.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},v={class:"device-openwb-evukit-counter"};function _(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{V as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},v={class:"device-openwb-evukit-counter"};function _(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-CrJU9pQp.js b/web/settings/assets/counter-DlTwNWk_.js similarity index 89% rename from web/settings/assets/counter-CrJU9pQp.js rename to web/settings/assets/counter-DlTwNWk_.js index d3c932b24c..ae94a066c8 100644 --- a/web/settings/assets/counter-CrJU9pQp.js +++ b/web/settings/assets/counter-DlTwNWk_.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as l,e as d,m as r,q as i,A as n,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])]),_:1}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>[...e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])]),_:1},8,["model-value"])])}const $=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as l,e as d,m as r,q as i,A as n,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])]),_:1}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>[...e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])]),_:1},8,["model-value"])])}const $=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-DmRpgOsE.js b/web/settings/assets/counter-DoLu61P3.js similarity index 90% rename from web/settings/assets/counter-DmRpgOsE.js rename to web/settings/assets/counter-DoLu61P3.js index 5ea6a20069..7e8bfa101b 100644 --- a/web/settings/assets/counter-DmRpgOsE.js +++ b/web/settings/assets/counter-DoLu61P3.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDiscovergyCounter",mixins:[d]},g={class:"device-discovergy-counter"};function _(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",g,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const z=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{z as default}; +import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDiscovergyCounter",mixins:[d]},g={class:"device-discovergy-counter"};function _(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",g,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const z=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{z as default}; diff --git a/web/settings/assets/counter-CsLEIGLq.js b/web/settings/assets/counter-DqUnAcpd.js similarity index 92% rename from web/settings/assets/counter-CsLEIGLq.js rename to web/settings/assets/counter-DqUnAcpd.js index a1d99555cf..aafb8fd16b 100644 --- a/web/settings/assets/counter-CsLEIGLq.js +++ b/web/settings/assets/counter-DqUnAcpd.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as c,e as m,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},b={class:"device-powerfox-counter"};function g(o,e,w,x,_,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return c(),m("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{A as default}; +import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as c,e as m,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},b={class:"device-powerfox-counter"};function g(o,e,w,x,_,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return c(),m("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-CyFXwCq_.js b/web/settings/assets/counter-JDvJyDSb.js similarity index 87% rename from web/settings/assets/counter-CyFXwCq_.js rename to web/settings/assets/counter-JDvJyDSb.js index 2839d0de5f..2852c3cef5 100644 --- a/web/settings/assets/counter-CyFXwCq_.js +++ b/web/settings/assets/counter-JDvJyDSb.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as i,e as a,m as c,q as p,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{Z as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as i,e as a,m as c,q as p,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/counter-CelzGZK-.js b/web/settings/assets/counter-N5EbHNfB.js similarity index 89% rename from web/settings/assets/counter-CelzGZK-.js rename to web/settings/assets/counter-N5EbHNfB.js index 76792052da..04d2978975 100644 --- a/web/settings/assets/counter-CelzGZK-.js +++ b/web/settings/assets/counter-N5EbHNfB.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as l,e as c,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKacoNHCounter",mixins:[u]},b={class:"device-kaco-nh-counter"};function f(t,e,g,v,w,k){const a=n("openwb-base-heading"),r=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),c("div",b,[o(a,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kaco NH SmartMeter ",-1)])]),_:1}),o(r,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[s(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1}),o(p,{title:"ID",required:"",min:"0",max:"65535","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=m=>t.updateConfiguration(m,"configuration.id"))},null,8,["model-value"])])}const q=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/counter.vue"]]);export{q as default}; +import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as l,e as c,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKacoNHCounter",mixins:[u]},b={class:"device-kaco-nh-counter"};function f(t,e,g,v,w,k){const a=n("openwb-base-heading"),r=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),c("div",b,[o(a,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kaco NH SmartMeter ",-1)])]),_:1}),o(r,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[s(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1}),o(p,{title:"ID",required:"",min:"0",max:"65535","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=m=>t.updateConfiguration(m,"configuration.id"))},null,8,["model-value"])])}const q=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter--_w9piHB.js b/web/settings/assets/counter-PiIXsMjs.js similarity index 87% rename from web/settings/assets/counter--_w9piHB.js rename to web/settings/assets/counter-PiIXsMjs.js index cab02d3a79..50453e043f 100644 --- a/web/settings/assets/counter--_w9piHB.js +++ b/web/settings/assets/counter-PiIXsMjs.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as u,e as p,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},_={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{D as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as u,e as p,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},_={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-CRWkZPyn.js b/web/settings/assets/counter-xlfblTPy.js similarity index 87% rename from web/settings/assets/counter-CRWkZPyn.js rename to web/settings/assets/counter-xlfblTPy.js index 83c34269f9..55775fe9bb 100644 --- a/web/settings/assets/counter-CRWkZPyn.js +++ b/web/settings/assets/counter-xlfblTPy.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibeCounter",mixins:[p]},b={class:"device-nibe-counter"};function _(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibeCounter",mixins:[p]},b={class:"device-nibe-counter"};function _(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter_consumption-D5PXSIy2.js b/web/settings/assets/counter_consumption-DMUt0xYl.js similarity index 90% rename from web/settings/assets/counter_consumption-D5PXSIy2.js rename to web/settings/assets/counter_consumption-DMUt0xYl.js index 736551a5b2..daa9797db7 100644 --- a/web/settings/assets/counter_consumption-D5PXSIy2.js +++ b/web/settings/assets/counter_consumption-DMUt0xYl.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as p,k as d,e as u,m as t,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},c={class:"device-sonnenbatterie-counter-consumption"};function m(i,e,f,_,b,v){const n=p("openwb-base-alert");return d(),u("div",c,[t(n,{subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])]),_:1}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])]),_:1},8,["subtype"])])}const E=a(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{E as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as p,k as d,e as u,m as t,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},c={class:"device-sonnenbatterie-counter-consumption"};function m(i,e,f,_,b,v){const n=p("openwb-base-alert");return d(),u("div",c,[t(n,{subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])]),_:1}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])]),_:1},8,["subtype"])])}const E=a(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter_maxstorage-Dfob-vfT.js b/web/settings/assets/counter_maxstorage-BPEg9Ghm.js similarity index 90% rename from web/settings/assets/counter_maxstorage-Dfob-vfT.js rename to web/settings/assets/counter_maxstorage-BPEg9Ghm.js index d122c93747..8414b0de90 100644 --- a/web/settings/assets/counter_maxstorage-Dfob-vfT.js +++ b/web/settings/assets/counter_maxstorage-BPEg9Ghm.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as o,k as d,e as _,m as n,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxMsCounter",mixins:[p]},b={class:"device-solarmax-counter-maxstorage"};function f(t,e,g,x,v,A){const r=o("openwb-base-heading"),i=o("openwb-base-alert"),m=o("openwb-base-number-input");return d(),_("div",b,[n(r,null,{default:a(()=>[...e[1]||(e[1]=[s(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zähler ",-1)])]),_:1}),n(i,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Bei Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zählern lassen sich die Ströme einzelner Phasen nicht auslesen. Eine Regelung ist daher nur anhand der Gesamtleistung möglich. ",-1)])]),_:1}),n(m,{title:"Modbus ID",required:"","model-value":t.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/counter_maxstorage.vue"]]);export{T as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as o,k as d,e as _,m as n,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxMsCounter",mixins:[p]},b={class:"device-solarmax-counter-maxstorage"};function f(t,e,g,x,v,A){const r=o("openwb-base-heading"),i=o("openwb-base-alert"),m=o("openwb-base-number-input");return d(),_("div",b,[n(r,null,{default:a(()=>[...e[1]||(e[1]=[s(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zähler ",-1)])]),_:1}),n(i,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Bei Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zählern lassen sich die Ströme einzelner Phasen nicht auslesen. Eine Regelung ist daher nur anhand der Gesamtleistung möglich. ",-1)])]),_:1}),n(m,{title:"Modbus ID",required:"","model-value":t.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/counter_maxstorage.vue"]]);export{T as default}; diff --git a/web/settings/assets/counter_sm-C8EnC_ax.js b/web/settings/assets/counter_sm-CDb5bKKk.js similarity index 95% rename from web/settings/assets/counter_sm-C8EnC_ax.js rename to web/settings/assets/counter_sm-CDb5bKKk.js index 7f2fcfaec1..590ca95165 100644 --- a/web/settings/assets/counter_sm-C8EnC_ax.js +++ b/web/settings/assets/counter_sm-CDb5bKKk.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as f,l as i,k as g,e as c,m as o,q as a,A as t,x as l,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,k,S,s){const d=i("openwb-base-heading"),m=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(d,null,{default:a(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])]),_:1}),o(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>[...e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as f,l as i,k as g,e as c,m as o,q as a,A as t,x as l,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,k,S,s){const d=i("openwb-base-heading"),m=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(d,null,{default:a(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])]),_:1}),o(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>[...e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-CHaeFEyt.js b/web/settings/assets/device--YYhIuOQ.js similarity index 89% rename from web/settings/assets/device-CHaeFEyt.js rename to web/settings/assets/device--YYhIuOQ.js index d08c6d1223..8c3c1736d1 100644 --- a/web/settings/assets/device-CHaeFEyt.js +++ b/web/settings/assets/device--YYhIuOQ.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as l,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{F as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as l,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{F as default}; diff --git a/web/settings/assets/device-GL-gGFSm.js b/web/settings/assets/device-3lw2SJGr.js similarity index 87% rename from web/settings/assets/device-GL-gGFSm.js rename to web/settings/assets/device-3lw2SJGr.js index 96463113b6..b2c6ed298d 100644 --- a/web/settings/assets/device-GL-gGFSm.js +++ b/web/settings/assets/device-3lw2SJGr.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as d,e as l,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,k){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; +import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as d,e as l,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,k){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-B0uzBvUm.js b/web/settings/assets/device-AZcRdq4E.js similarity index 89% rename from web/settings/assets/device-B0uzBvUm.js rename to web/settings/assets/device-AZcRdq4E.js index cfcc8886f8..eb27bfcc4a 100644 --- a/web/settings/assets/device-B0uzBvUm.js +++ b/web/settings/assets/device-AZcRdq4E.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as m,e as u,m as i,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceMTec",mixins:[p]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{T as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as m,e as u,m as i,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceMTec",mixins:[p]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-CKqZ-eL3.js b/web/settings/assets/device-Akr-Eknl.js similarity index 89% rename from web/settings/assets/device-CKqZ-eL3.js rename to web/settings/assets/device-Akr-Eknl.js index 6f9ab43d75..1c07868db7 100644 --- a/web/settings/assets/device-CKqZ-eL3.js +++ b/web/settings/assets/device-Akr-Eknl.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as m,e as d,m as i,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return m(),d("div",f,[i(a,null,{default:u(()=>[...e[2]||(e[2]=[c(" Einstellungen für Solarmax ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as m,e as d,m as i,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return m(),d("div",f,[i(a,null,{default:u(()=>[...e[2]||(e[2]=[c(" Einstellungen für Solarmax ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-C9aR_ErT.js b/web/settings/assets/device-B--mch3K.js similarity index 87% rename from web/settings/assets/device-C9aR_ErT.js rename to web/settings/assets/device-B--mch3K.js index 9f584bd31a..369a67c30b 100644 --- a/web/settings/assets/device-C9aR_ErT.js +++ b/web/settings/assets/device-B--mch3K.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceBatterX",mixins:[r]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für BatterX ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceBatterX",mixins:[r]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für BatterX ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-0LygQjSp.js b/web/settings/assets/device-B-wUAE96.js similarity index 91% rename from web/settings/assets/device-0LygQjSp.js rename to web/settings/assets/device-B-wUAE96.js index 88e29b305f..00cc8bbc3c 100644 --- a/web/settings/assets/device-0LygQjSp.js +++ b/web/settings/assets/device-B-wUAE96.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as l,e as p,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceKostalSEM",mixins:[d]},v={class:"device-kostal-sem"};function _(o,e,c,g,w,k){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",v,[t(s,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{B as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as l,e as p,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceKostalSEM",mixins:[d]},v={class:"device-kostal-sem"};function _(o,e,c,g,w,k){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",v,[t(s,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-CJ5CONRY.js b/web/settings/assets/device-B3JnKzHE.js similarity index 91% rename from web/settings/assets/device-CJ5CONRY.js rename to web/settings/assets/device-B3JnKzHE.js index ad6c9e2bce..089b092a3b 100644 --- a/web/settings/assets/device-CJ5CONRY.js +++ b/web/settings/assets/device-B3JnKzHE.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as u,e as m,m as t,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceAmpere",mixins:[s]},v={class:"device-ampere"};function _(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",v,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{P as default}; +import{D as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as u,e as m,m as t,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceAmpere",mixins:[s]},v={class:"device-ampere"};function _(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",v,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-BJt2AdWR.js b/web/settings/assets/device-B5RB3kWv.js similarity index 91% rename from web/settings/assets/device-BJt2AdWR.js rename to web/settings/assets/device-B5RB3kWv.js index 3f390f5d76..8e308bdcef 100644 --- a/web/settings/assets/device-BJt2AdWR.js +++ b/web/settings/assets/device-B5RB3kWv.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",v,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])]),_:1}),t(p,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; +import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",v,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])]),_:1}),t(p,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-DoYhIPYo.js b/web/settings/assets/device-B5V0NVAx.js similarity index 90% rename from web/settings/assets/device-DoYhIPYo.js rename to web/settings/assets/device-B5V0NVAx.js index 2df639857e..f5283c298b 100644 --- a/web/settings/assets/device-DoYhIPYo.js +++ b/web/settings/assets/device-B5V0NVAx.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as s,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>[...e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{x as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as s,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>[...e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-Djcanbbk.js b/web/settings/assets/device-BIKPUvlF.js similarity index 87% rename from web/settings/assets/device-Djcanbbk.js rename to web/settings/assets/device-BIKPUvlF.js index c9792283ee..9aca49497c 100644 --- a/web/settings/assets/device-Djcanbbk.js +++ b/web/settings/assets/device-BIKPUvlF.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as m,e as d,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMystrom",mixins:[a]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c("Einstellungen für mystrom",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{h as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as m,e as d,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMystrom",mixins:[a]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c("Einstellungen für mystrom",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-DfKVgx7A.js b/web/settings/assets/device-BJXiIXwb.js similarity index 91% rename from web/settings/assets/device-DfKVgx7A.js rename to web/settings/assets/device-BJXiIXwb.js index e5833559b4..159150d1b7 100644 --- a/web/settings/assets/device-DfKVgx7A.js +++ b/web/settings/assets/device-BJXiIXwb.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS3P",mixins:[u]},f={class:"device-azzurro_zcs_3p"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs_3p/device.vue"]]);export{P as default}; +import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS3P",mixins:[u]},f={class:"device-azzurro_zcs_3p"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs_3p/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-Bz8u2WPE.js b/web/settings/assets/device-BKXFo9ZM.js similarity index 89% rename from web/settings/assets/device-Bz8u2WPE.js rename to web/settings/assets/device-BKXFo9ZM.js index 709fd91096..311a92f930 100644 --- a/web/settings/assets/device-Bz8u2WPE.js +++ b/web/settings/assets/device-BKXFo9ZM.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as m,e as u,m as i,q as s,A as o,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return m(),u("div",f,[i(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])]),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>[...e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as m,e as u,m as i,q as s,A as o,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return m(),u("div",f,[i(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])]),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>[...e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-C4M0XOfA.js b/web/settings/assets/device-BUqTyqae.js similarity index 87% rename from web/settings/assets/device-C4M0XOfA.js rename to web/settings/assets/device-BUqTyqae.js index 2009f6c7bb..cebc9a63fe 100644 --- a/web/settings/assets/device-C4M0XOfA.js +++ b/web/settings/assets/device-BUqTyqae.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as t,k as d,e as l,m as s,q as u,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceYouless",mixins:[p]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>[...e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])]),_:1}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{h as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as t,k as d,e as l,m as s,q as u,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceYouless",mixins:[p]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>[...e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])]),_:1}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-DSzaLUMX.js b/web/settings/assets/device-BcaNUjQJ.js similarity index 96% rename from web/settings/assets/device-DSzaLUMX.js rename to web/settings/assets/device-BcaNUjQJ.js index 70f64e17bf..667b2a8327 100644 --- a/web/settings/assets/device-DSzaLUMX.js +++ b/web/settings/assets/device-BcaNUjQJ.js @@ -1 +1 @@ -import{D as f}from"./HardwareInstallation-caZ0sA9z.js";import{_ as g,l as d,k as r,e as b,m as l,q as a,A as i,y as s,u,x as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),t=d("openwb-base-text-input"),v=d("openwb-base-select-input");return r(),b("div",y,[l(m,null,{default:a(()=>[...e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])]),_:1}),l(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>[...e[7]||(e[7]=[i(' Bitte gib die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info findest Du in Deinem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])]),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>[...e[8]||(e[8]=[i(" Bitte wähle die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])]),_:1},8,["model-value"]),n.device.configuration.version>1?(r(),s(t,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>[...e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Du ein Token manuell erstellen möchtest, kannst Du dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])]),_:1},8,["model-value"])):u("",!0)])}const W=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{W as default}; +import{D as f}from"./HardwareInstallation-DrK-NlWu.js";import{_ as g,l as d,k as r,e as b,m as l,q as a,A as i,y as s,u,x as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),t=d("openwb-base-text-input"),v=d("openwb-base-select-input");return r(),b("div",y,[l(m,null,{default:a(()=>[...e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])]),_:1}),l(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>[...e[7]||(e[7]=[i(' Bitte gib die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info findest Du in Deinem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])]),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>[...e[8]||(e[8]=[i(" Bitte wähle die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])]),_:1},8,["model-value"]),n.device.configuration.version>1?(r(),s(t,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>[...e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Du ein Token manuell erstellen möchtest, kannst Du dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])]),_:1},8,["model-value"])):u("",!0)])}const W=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{W as default}; diff --git a/web/settings/assets/device-Cv-hQ-5K.js b/web/settings/assets/device-BdzJGZry.js similarity index 90% rename from web/settings/assets/device-Cv-hQ-5K.js rename to web/settings/assets/device-BdzJGZry.js index 6fec84b798..821f865731 100644 --- a/web/settings/assets/device-Cv-hQ-5K.js +++ b/web/settings/assets/device-BdzJGZry.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as n,k as d,e as u,m as a,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceTasmota",mixins:[l]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const s=n("openwb-base-heading"),i=n("openwb-base-text-input"),p=n("openwb-base-select-input");return d(),u("div",v,[a(s,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])]),_:1}),a(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const T=r(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{T as default}; +import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as n,k as d,e as u,m as a,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceTasmota",mixins:[l]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const s=n("openwb-base-heading"),i=n("openwb-base-text-input"),p=n("openwb-base-select-input");return d(),u("div",v,[a(s,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])]),_:1}),a(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const T=r(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-DdrUDEK_.js b/web/settings/assets/device-Bkj5ye31.js similarity index 87% rename from web/settings/assets/device-DdrUDEK_.js rename to web/settings/assets/device-Bkj5ye31.js index 0a246c7b31..495fa38592 100644 --- a/web/settings/assets/device-DdrUDEK_.js +++ b/web/settings/assets/device-Bkj5ye31.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as l,e as d,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarLog",mixins:[r]},u={class:"device-solar_log"};function f(o,e,g,v,b,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return l(),d("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as l,e as d,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarLog",mixins:[r]},u={class:"device-solar_log"};function f(o,e,g,v,b,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return l(),d("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-BPTQIU5L.js b/web/settings/assets/device-BnxlY63G.js similarity index 95% rename from web/settings/assets/device-BPTQIU5L.js rename to web/settings/assets/device-BnxlY63G.js index 6c031bc3d3..0d0c40822f 100644 --- a/web/settings/assets/device-BPTQIU5L.js +++ b/web/settings/assets/device-BnxlY63G.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as v,l as t,k as b,e as f,m as i,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceGoodWe",mixins:[m]},w={class:"device-goodwe"};function _(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",w,[i(l,null,{default:r(()=>[...e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])]),_:1}),i(a,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>[...e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>[...e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])]),_:1},8,["model-value"])])}const M=v(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as v,l as t,k as b,e as f,m as i,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceGoodWe",mixins:[m]},w={class:"device-goodwe"};function _(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",w,[i(l,null,{default:r(()=>[...e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])]),_:1}),i(a,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>[...e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>[...e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])]),_:1},8,["model-value"])])}const M=v(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-B8HOK5np.js b/web/settings/assets/device-BqKfOrDp.js similarity index 90% rename from web/settings/assets/device-B8HOK5np.js rename to web/settings/assets/device-BqKfOrDp.js index ad08ec5736..8207af8c52 100644 --- a/web/settings/assets/device-B8HOK5np.js +++ b/web/settings/assets/device-BqKfOrDp.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{U as default}; +import{D as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-DYUFbFFV.js b/web/settings/assets/device-BqQNuquo.js similarity index 89% rename from web/settings/assets/device-DYUFbFFV.js rename to web/settings/assets/device-BqQNuquo.js index 80b66b283b..089a585c0e 100644 --- a/web/settings/assets/device-DYUFbFFV.js +++ b/web/settings/assets/device-BqQNuquo.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron3P75CT",mixins:[a]},v={class:"device-victron-3p75ct"};function f(o,e,b,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron 3P75CT ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron_3p75ct/device.vue"]]);export{T as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron3P75CT",mixins:[a]},v={class:"device-victron-3p75ct"};function f(o,e,b,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron 3P75CT ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron_3p75ct/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-DajujJNO.js b/web/settings/assets/device-BquvfqB_.js similarity index 91% rename from web/settings/assets/device-DajujJNO.js rename to web/settings/assets/device-BquvfqB_.js index a852cdc5ed..a2249cbe3c 100644 --- a/web/settings/assets/device-DajujJNO.js +++ b/web/settings/assets/device-BquvfqB_.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as o,k as _,e as b,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVenusCE",mixins:[m]},f={class:"device-venus_c_e"};function v(n,e,g,w,C,k){const a=o("openwb-base-heading"),p=o("openwb-base-alert"),d=o("openwb-base-text-input"),u=o("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Marstek Venus C, E ",-1)])]),_:1}),t(p,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[r(" Es muss ein Modbus-TCP-Adapter eingesetzt werden, um den RS485-Modbus-Port des Speichers mit dem Netzwerk zu verbinden. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname des Adapters",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=s=>n.updateConfiguration(s,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port des Adapters",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=s=>n.updateConfiguration(s,"configuration.port"))},null,8,["model-value"])])}const z=l(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/device.vue"]]);export{z as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as o,k as _,e as b,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVenusCE",mixins:[m]},f={class:"device-venus_c_e"};function v(n,e,g,w,C,k){const a=o("openwb-base-heading"),p=o("openwb-base-alert"),d=o("openwb-base-text-input"),u=o("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Marstek Venus C, E ",-1)])]),_:1}),t(p,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[r(" Es muss ein Modbus-TCP-Adapter eingesetzt werden, um den RS485-Modbus-Port des Speichers mit dem Netzwerk zu verbinden. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname des Adapters",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=s=>n.updateConfiguration(s,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port des Adapters",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=s=>n.updateConfiguration(s,"configuration.port"))},null,8,["model-value"])])}const z=l(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/device.vue"]]);export{z as default}; diff --git a/web/settings/assets/device-DsVDr5dU.js b/web/settings/assets/device-BuyzFtIE.js similarity index 87% rename from web/settings/assets/device-DsVDr5dU.js rename to web/settings/assets/device-BuyzFtIE.js index e9018fc5f5..c0e21c71c1 100644 --- a/web/settings/assets/device-DsVDr5dU.js +++ b/web/settings/assets/device-BuyzFtIE.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as r,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmaWebbox",mixins:[p]},_={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für SMA Webbox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{h as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmaWebbox",mixins:[p]},_={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für SMA Webbox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-N5GdJSbQ.js b/web/settings/assets/device-BwzMCkFy.js similarity index 89% rename from web/settings/assets/device-N5GdJSbQ.js rename to web/settings/assets/device-BwzMCkFy.js index 88153f357e..d5d53ac8c8 100644 --- a/web/settings/assets/device-N5GdJSbQ.js +++ b/web/settings/assets/device-BwzMCkFy.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const I=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{I as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const I=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-CiFemq5S.js b/web/settings/assets/device-ByU2v5ON.js similarity index 91% rename from web/settings/assets/device-CiFemq5S.js rename to web/settings/assets/device-ByU2v5ON.js index dc32fc2bf1..85a57d9c0d 100644 --- a/web/settings/assets/device-CiFemq5S.js +++ b/web/settings/assets/device-ByU2v5ON.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVarta",mixins:[d]},b={class:"device-varta"};function _(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{E as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVarta",mixins:[d]},b={class:"device-varta"};function _(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-CJ3OjUU2.js b/web/settings/assets/device-BzBPeuLF.js similarity index 89% rename from web/settings/assets/device-CJ3OjUU2.js rename to web/settings/assets/device-BzBPeuLF.js index 6173e849ce..c28f2cebf2 100644 --- a/web/settings/assets/device-CJ3OjUU2.js +++ b/web/settings/assets/device-BzBPeuLF.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as d,e as m,m as i,q as l,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const a=n("openwb-base-heading"),r=n("openwb-base-text-input"),s=n("openwb-base-number-input");return d(),m("div",g,[i(a,null,{default:l(()=>[...e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const H=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{H as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as d,e as m,m as i,q as l,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const a=n("openwb-base-heading"),r=n("openwb-base-text-input"),s=n("openwb-base-number-input");return d(),m("div",g,[i(a,null,{default:l(()=>[...e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const H=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{H as default}; diff --git a/web/settings/assets/device-DSXRbJXc.js b/web/settings/assets/device-C2Py-T5Y.js similarity index 89% rename from web/settings/assets/device-DSXRbJXc.js rename to web/settings/assets/device-C2Py-T5Y.js index 64cb75b734..b9778038f3 100644 --- a/web/settings/assets/device-DSXRbJXc.js +++ b/web/settings/assets/device-C2Py-T5Y.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibe",mixins:[p]},_={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[b("Einstellungen für Nibe",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibe",mixins:[p]},_={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[b("Einstellungen für Nibe",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-CJt9s3lV.js b/web/settings/assets/device-C5UrZly-.js similarity index 89% rename from web/settings/assets/device-CJt9s3lV.js rename to web/settings/assets/device-C5UrZly-.js index aab99285b7..b135037015 100644 --- a/web/settings/assets/device-CJt9s3lV.js +++ b/web/settings/assets/device-C5UrZly-.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as o,k as u,e as m,m as i,q as r,A as t,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHttp",mixins:[d]},v={class:"device-http"};function _(n,e,b,g,x,w){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",v,[i(s,null,{default:r(()=>[...e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])]),_:1}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>[...e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])]),_:1},8,["model-value"])])}const N=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{N as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as o,k as u,e as m,m as i,q as r,A as t,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHttp",mixins:[d]},v={class:"device-http"};function _(n,e,b,g,x,w){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",v,[i(s,null,{default:r(()=>[...e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])]),_:1}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>[...e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])]),_:1},8,["model-value"])])}const N=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-TuHf60ob.js b/web/settings/assets/device-C7Bv2cYw.js similarity index 91% rename from web/settings/assets/device-TuHf60ob.js rename to web/settings/assets/device-C7Bv2cYw.js index a1f19fc1e7..20ca997a8e 100644 --- a/web/settings/assets/device-TuHf60ob.js +++ b/web/settings/assets/device-C7Bv2cYw.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as b,e as _,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return b(),_("div",f,[t(a,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as b,e as _,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return b(),_("div",f,[t(a,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-B7DCatpp.js b/web/settings/assets/device-CFpXw0Yl.js similarity index 91% rename from web/settings/assets/device-B7DCatpp.js rename to web/settings/assets/device-CFpXw0Yl.js index 6380835c61..2dbe8b7336 100644 --- a/web/settings/assets/device-B7DCatpp.js +++ b/web/settings/assets/device-CFpXw0Yl.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceIDM",mixins:[m]},v={class:"device-idm"};function c(o,e,g,w,C,D){const r=i("openwb-base-heading"),u=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(r,null,{default:a(()=>[...e[3]||(e[3]=[d(" Einstellungen für IDM ",-1)])]),_:1}),t(u,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss in der Fachmannebene aktiviert sein. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/idm/idm/device.vue"]]);export{P as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceIDM",mixins:[m]},v={class:"device-idm"};function c(o,e,g,w,C,D){const r=i("openwb-base-heading"),u=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(r,null,{default:a(()=>[...e[3]||(e[3]=[d(" Einstellungen für IDM ",-1)])]),_:1}),t(u,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss in der Fachmannebene aktiviert sein. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/idm/idm/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-B3RxzTPC.js b/web/settings/assets/device-CT8s8OAc.js similarity index 92% rename from web/settings/assets/device-B3RxzTPC.js rename to web/settings/assets/device-CT8s8OAc.js index 577d9afcb7..56148469d1 100644 --- a/web/settings/assets/device-B3RxzTPC.js +++ b/web/settings/assets/device-CT8s8OAc.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as b,e as f,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(u,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{B as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as b,e as f,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(u,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-DhOZN3TO.js b/web/settings/assets/device-CTvTEy9o.js similarity index 90% rename from web/settings/assets/device-DhOZN3TO.js rename to web/settings/assets/device-CTvTEy9o.js index e9d3f851e9..09739fa14d 100644 --- a/web/settings/assets/device-DhOZN3TO.js +++ b/web/settings/assets/device-CTvTEy9o.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as a,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,b,_,w){const s=a("openwb-base-heading"),i=a("openwb-base-text-input");return u(),p("div",f,[t(s,null,{default:l(()=>[...e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.username,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.username"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const A=d(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{A as default}; +import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as a,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,b,_,w){const s=a("openwb-base-heading"),i=a("openwb-base-text-input");return u(),p("div",f,[t(s,null,{default:l(()=>[...e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.username,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.username"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const A=d(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{A as default}; diff --git a/web/settings/assets/device-rzxKRkPl.js b/web/settings/assets/device-CUOUt23w.js similarity index 92% rename from web/settings/assets/device-rzxKRkPl.js rename to web/settings/assets/device-CUOUt23w.js index 5f329ddb0e..681081b831 100644 --- a/web/settings/assets/device-rzxKRkPl.js +++ b/web/settings/assets/device-CUOUt23w.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const d=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(d,null,{default:a(()=>[...e[3]||(e[3]=[r(" Einstellungen für Siemens ",-1)])]),_:1}),t(p,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[r(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{U as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const d=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(d,null,{default:a(()=>[...e[3]||(e[3]=[r(" Einstellungen für Siemens ",-1)])]),_:1}),t(p,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[r(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-B9Y-E4ZO.js b/web/settings/assets/device-CX454zoq.js similarity index 92% rename from web/settings/assets/device-B9Y-E4ZO.js rename to web/settings/assets/device-CX454zoq.js index ca4a15cdfb..a8f124d7dc 100644 --- a/web/settings/assets/device-B9Y-E4ZO.js +++ b/web/settings/assets/device-CX454zoq.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSungrowIHM",mixins:[m]},g={class:"device-sungrow-ihm"};function v(o,e,c,w,C,k){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Sungrow iHomeManager",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" In der iSolarCloud muss Modbus TCP für Port 503 (!!!) aktiviert werden. Port 502 ist für die Kommunikation mit dem Wechselrichter vorgesehen. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_ihm/device.vue"]]);export{B as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSungrowIHM",mixins:[m]},g={class:"device-sungrow-ihm"};function v(o,e,c,w,C,k){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Sungrow iHomeManager",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" In der iSolarCloud muss Modbus TCP für Port 503 (!!!) aktiviert werden. Port 502 ist für die Kommunikation mit dem Wechselrichter vorgesehen. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_ihm/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-BpIfpmVY.js b/web/settings/assets/device-CZhiiWs3.js similarity index 96% rename from web/settings/assets/device-BpIfpmVY.js rename to web/settings/assets/device-CZhiiWs3.js index 1ac88a72a8..ab6472fcf8 100644 --- a/web/settings/assets/device-BpIfpmVY.js +++ b/web/settings/assets/device-CZhiiWs3.js @@ -1 +1 @@ -import{D as g}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as s,k as p,e as k,m as l,q as u,A as t,x as n,J as a,y as A,u as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},I={class:"device-sonnenbatterie"},S=["href"],B=["href"],P=["href"],J=["href"];function R(i,e,z,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",I,[l(v,null,{default:u(()=>[...e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])]),_:1}),l(f,{subtype:"info"},{default:u(()=>[...e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])]),_:1}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,S),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,B),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>[...e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])]),_:1},8,["model-value"])):w("",!0)])}const c=m(_,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{c as default}; +import{D as g}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as s,k as p,e as k,m as l,q as u,A as t,x as n,J as a,y as A,u as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},I={class:"device-sonnenbatterie"},S=["href"],B=["href"],P=["href"],J=["href"];function R(i,e,z,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",I,[l(v,null,{default:u(()=>[...e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])]),_:1}),l(f,{subtype:"info"},{default:u(()=>[...e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])]),_:1}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,S),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,B),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>[...e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])]),_:1},8,["model-value"])):w("",!0)])}const c=m(_,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{c as default}; diff --git a/web/settings/assets/device-CiV4hgD_.js b/web/settings/assets/device-CkLXsAHJ.js similarity index 91% rename from web/settings/assets/device-CiV4hgD_.js rename to web/settings/assets/device-CkLXsAHJ.js index c02ce7cc95..c0b5a41ecf 100644 --- a/web/settings/assets/device-CiV4hgD_.js +++ b/web/settings/assets/device-CkLXsAHJ.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as p,e as m,m as i,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceThermia",mixins:[d]},v={class:"device-thermia"};function _(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",v,[i(r,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{T as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as p,e as m,m as i,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceThermia",mixins:[d]},v={class:"device-thermia"};function _(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",v,[i(r,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-C3SynQKw.js b/web/settings/assets/device-CkVVX1eZ.js similarity index 92% rename from web/settings/assets/device-C3SynQKw.js rename to web/settings/assets/device-CkVVX1eZ.js index 376220951e..37521a87d4 100644 --- a/web/settings/assets/device-C3SynQKw.js +++ b/web/settings/assets/device-CkVVX1eZ.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as p,e as m,m as t,q as v,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceUPower",mixins:[d]},c={class:"device-upower"};function _(o,e,g,w,C,U){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return p(),m("div",c,[t(a,null,{default:v(()=>[...e[4]||(e[4]=[b("Einstellungen für UPower",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const G=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{G as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as p,e as m,m as t,q as v,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceUPower",mixins:[d]},c={class:"device-upower"};function _(o,e,g,w,C,U){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return p(),m("div",c,[t(a,null,{default:v(()=>[...e[4]||(e[4]=[b("Einstellungen für UPower",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const G=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-Ce-zEVZN.js b/web/settings/assets/device-CnqEvKdN.js similarity index 91% rename from web/settings/assets/device-Ce-zEVZN.js rename to web/settings/assets/device-CnqEvKdN.js index 860e29d584..a5d41db5af 100644 --- a/web/settings/assets/device-Ce-zEVZN.js +++ b/web/settings/assets/device-CnqEvKdN.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as u,e as p,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceQCells",mixins:[r]},b={class:"device-qcells"};function v(o,e,_,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",b,[t(l,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{U as default}; +import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as u,e as p,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceQCells",mixins:[r]},b={class:"device-qcells"};function v(o,e,_,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",b,[t(l,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-DJivvwYM.js b/web/settings/assets/device-CrT-Q_nn.js similarity index 89% rename from web/settings/assets/device-DJivvwYM.js rename to web/settings/assets/device-CrT-Q_nn.js index b23d587ce4..73e534902c 100644 --- a/web/settings/assets/device-DJivvwYM.js +++ b/web/settings/assets/device-CrT-Q_nn.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as r,k as u,e as d,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[t(s,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const P=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{P as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as r,k as u,e as d,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[t(s,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const P=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-CLljSgUf.js b/web/settings/assets/device-CsogXwrs.js similarity index 92% rename from web/settings/assets/device-CLljSgUf.js rename to web/settings/assets/device-CsogXwrs.js index b4d55b6cd5..8f00afea77 100644 --- a/web/settings/assets/device-CLljSgUf.js +++ b/web/settings/assets/device-CsogXwrs.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as l,e as p,m as t,q as i,A as m,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function g(b,e,_,f,h,v){const o=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",c,[t(o,null,{default:i(()=>[...e[0]||(e[0]=[m("Einstellungen für MQTT",-1)])]),_:1}),t(r,{subtype:"info"},{default:i(()=>[...e[1]||(e[1]=[s("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),s("p",null," Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])]),_:1})])}const z=d(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{z as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as l,e as p,m as t,q as i,A as m,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function g(b,e,_,f,h,v){const o=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",c,[t(o,null,{default:i(()=>[...e[0]||(e[0]=[m("Einstellungen für MQTT",-1)])]),_:1}),t(r,{subtype:"info"},{default:i(()=>[...e[1]||(e[1]=[s("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),s("p",null," Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])]),_:1})])}const z=d(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{z as default}; diff --git a/web/settings/assets/device-CcmT-XYr.js b/web/settings/assets/device-Cu_Afhxv.js similarity index 91% rename from web/settings/assets/device-CcmT-XYr.js rename to web/settings/assets/device-Cu_Afhxv.js index eb7a84d0dc..e2c26dfabe 100644 --- a/web/settings/assets/device-CcmT-XYr.js +++ b/web/settings/assets/device-Cu_Afhxv.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as r,k as p,e as m,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,k,w){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return p(),m("div",v,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])]),_:1}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>[...e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])]),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; +import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as r,k as p,e as m,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,k,w){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return p(),m("div",v,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])]),_:1}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>[...e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])]),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-BPisqhc7.js b/web/settings/assets/device-Cww7LhK6.js similarity index 94% rename from web/settings/assets/device-BPisqhc7.js rename to web/settings/assets/device-Cww7LhK6.js index ba36b62557..d9837ffd90 100644 --- a/web/settings/assets/device-BPisqhc7.js +++ b/web/settings/assets/device-Cww7LhK6.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as b,l as i,k as g,e as v,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSH",mixins:[m]},c={class:"device-sungrow-sh"};function _(n,e,w,S,W,h){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",c,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Sungrow SH Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[s(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. Modbus muss in der iSolarCloud für den Wechselrichter aktiviert sein. ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:1,text:"SH (Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>[...e[6]||(e[6]=[s(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])]),_:1},8,["model-value"])])}const x=b(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sh/device.vue"]]);export{x as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as b,l as i,k as g,e as v,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSH",mixins:[m]},c={class:"device-sungrow-sh"};function _(n,e,w,S,W,h){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",c,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Sungrow SH Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[s(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. Modbus muss in der iSolarCloud für den Wechselrichter aktiviert sein. ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:1,text:"SH (Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>[...e[6]||(e[6]=[s(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])]),_:1},8,["model-value"])])}const x=b(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sh/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-3d8A9kvB.js b/web/settings/assets/device-D03RaIUC.js similarity index 86% rename from web/settings/assets/device-3d8A9kvB.js rename to web/settings/assets/device-D03RaIUC.js index 0b9e4f8b6a..c51931ac5b 100644 --- a/web/settings/assets/device-3d8A9kvB.js +++ b/web/settings/assets/device-D03RaIUC.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as d,e as c,m as n,q as m,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceRCT",mixins:[a]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{h as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as d,e as c,m as n,q as m,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceRCT",mixins:[a]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-vwuASijr.js b/web/settings/assets/device-D2Tob0bp.js similarity index 91% rename from web/settings/assets/device-vwuASijr.js rename to web/settings/assets/device-D2Tob0bp.js index abd20ccedb..57ae663d42 100644 --- a/web/settings/assets/device-vwuASijr.js +++ b/web/settings/assets/device-D2Tob0bp.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as p,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowMicro",mixins:[a]},b={class:"device-sungrow-micro"};function g(o,e,v,_,w,x){const s=t("openwb-base-heading"),u=t("openwb-base-text-input"),r=t("openwb-base-number-input");return p(),l("div",b,[i(s,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Sungrow Micro Wechselrichter SxxxS",-1)])]),_:1}),i(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=d(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_micro/device.vue"]]);export{B as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as p,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowMicro",mixins:[a]},b={class:"device-sungrow-micro"};function g(o,e,v,_,w,x){const s=t("openwb-base-heading"),u=t("openwb-base-text-input"),r=t("openwb-base-number-input");return p(),l("div",b,[i(s,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Sungrow Micro Wechselrichter SxxxS",-1)])]),_:1}),i(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=d(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_micro/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-D4Gw0lZJ.js b/web/settings/assets/device-D6aGb8Ub.js similarity index 90% rename from web/settings/assets/device-D4Gw0lZJ.js rename to web/settings/assets/device-D6aGb8Ub.js index 254df12fce..5d267353e9 100644 --- a/web/settings/assets/device-D4Gw0lZJ.js +++ b/web/settings/assets/device-D6aGb8Ub.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as c,e as m,m as o,q as s,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),m("div",f,[o(a,null,{default:s(()=>[...e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])]),_:1}),o(r,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as c,e as m,m as o,q as s,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),m("div",f,[o(a,null,{default:s(()=>[...e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])]),_:1}),o(r,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-64nbgpYC.js b/web/settings/assets/device-D7cbEhiT.js similarity index 91% rename from web/settings/assets/device-64nbgpYC.js rename to web/settings/assets/device-D7cbEhiT.js index 10e20fa04b..8dce3dda70 100644 --- a/web/settings/assets/device-64nbgpYC.js +++ b/web/settings/assets/device-D7cbEhiT.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJanitza",mixins:[d]},v={class:"device-janitza"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{B as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJanitza",mixins:[d]},v={class:"device-janitza"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-DXOtDi9V.js b/web/settings/assets/device-D86kZoMv.js similarity index 91% rename from web/settings/assets/device-DXOtDi9V.js rename to web/settings/assets/device-D86kZoMv.js index fcfbbdb4c6..f2c13071b4 100644 --- a/web/settings/assets/device-DXOtDi9V.js +++ b/web/settings/assets/device-D86kZoMv.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as l,e as p,m as i,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceCarloGavazzi",mixins:[d]},f={class:"device-carlo-gavazzi"};function _(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",f,[i(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as l,e as p,m as i,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceCarloGavazzi",mixins:[d]},f={class:"device-carlo-gavazzi"};function _(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",f,[i(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-CMt4xRX4.js b/web/settings/assets/device-D89U0LFt.js similarity index 91% rename from web/settings/assets/device-CMt4xRX4.js rename to web/settings/assets/device-D89U0LFt.js index 1a48394595..756c1f1349 100644 --- a/web/settings/assets/device-CMt4xRX4.js +++ b/web/settings/assets/device-D89U0LFt.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as l,e as b,m as i,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},v={class:"device-huawei-emma"};function _(o,e,g,w,c,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",v,[i(s,null,{default:u(()=>[...e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[...e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{$ as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as l,e as b,m as i,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},v={class:"device-huawei-emma"};function _(o,e,g,w,c,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",v,[i(s,null,{default:u(()=>[...e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[...e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-BiPl0Xry.js b/web/settings/assets/device-DBTWS1zk.js similarity index 88% rename from web/settings/assets/device-BiPl0Xry.js rename to web/settings/assets/device-DBTWS1zk.js index 267be064e8..c37ec90420 100644 --- a/web/settings/assets/device-BiPl0Xry.js +++ b/web/settings/assets/device-DBTWS1zk.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as l,e as u,m as n,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceVZLogger",mixins:[d]},c={class:"device-vzlogger"};function _(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",c,[n(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])]),_:1}),n(p,{title:"IP oder Hostname",subtype:"url",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>[...e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{D as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as l,e as u,m as n,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceVZLogger",mixins:[d]},c={class:"device-vzlogger"};function _(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",c,[n(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])]),_:1}),n(p,{title:"IP oder Hostname",subtype:"url",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>[...e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-BkT_aSiu.js b/web/settings/assets/device-DBsitINB.js similarity index 89% rename from web/settings/assets/device-BkT_aSiu.js rename to web/settings/assets/device-DBsitINB.js index b0c67f9b54..ff016c6b64 100644 --- a/web/settings/assets/device-BkT_aSiu.js +++ b/web/settings/assets/device-DBsitINB.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFoxEss",mixins:[p]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{F as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFoxEss",mixins:[p]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{F as default}; diff --git a/web/settings/assets/device-8genQHND.js b/web/settings/assets/device-DJRFYW8u.js similarity index 86% rename from web/settings/assets/device-8genQHND.js rename to web/settings/assets/device-DJRFYW8u.js index d1d798e848..65d240e1a0 100644 --- a/web/settings/assets/device-8genQHND.js +++ b/web/settings/assets/device-DJRFYW8u.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as d,e as l,m as t,q as m,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceBenning",mixins:[a]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>[...e[1]||(e[1]=[u("Einstellungen für Benning",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as d,e as l,m as t,q as m,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceBenning",mixins:[a]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>[...e[1]||(e[1]=[u("Einstellungen für Benning",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-B6NzT0C2.js b/web/settings/assets/device-DLe5rJBe.js similarity index 89% rename from web/settings/assets/device-B6NzT0C2.js rename to web/settings/assets/device-DLe5rJBe.js index 13187ff5a5..91d37b6540 100644 --- a/web/settings/assets/device-B6NzT0C2.js +++ b/web/settings/assets/device-DLe5rJBe.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as t,k as d,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOne",mixins:[p]},f={class:"device-solakon-one"};function b(o,e,v,g,k,w){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return d(),u("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für Solakon One",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as d,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOne",mixins:[p]},f={class:"device-solakon-one"};function b(o,e,v,g,k,w){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return d(),u("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für Solakon One",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-0TBG9Kdm.js b/web/settings/assets/device-DW4k7y4-.js similarity index 87% rename from web/settings/assets/device-0TBG9Kdm.js rename to web/settings/assets/device-DW4k7y4-.js index 9ca78e2e54..b0559e7784 100644 --- a/web/settings/assets/device-0TBG9Kdm.js +++ b/web/settings/assets/device-DW4k7y4-.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as p,e as l,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarWorld",mixins:[a]},u={class:"device-solar_world"};function f(o,e,v,b,w,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),l("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{h as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as p,e as l,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarWorld",mixins:[a]},u={class:"device-solar_world"};function f(o,e,v,b,w,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),l("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-Dqxkpm4s.js b/web/settings/assets/device-DZbbGgNj.js similarity index 91% rename from web/settings/assets/device-Dqxkpm4s.js rename to web/settings/assets/device-DZbbGgNj.js index 3aa59e6bf6..78009c70f7 100644 --- a/web/settings/assets/device-Dqxkpm4s.js +++ b/web/settings/assets/device-DZbbGgNj.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as m,e as _,m as a,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>[...e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])]),_:1},8,["model-value"])])}const q=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{q as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as m,e as _,m as a,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>[...e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])]),_:1},8,["model-value"])])}const q=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-BdmFfYpU.js b/web/settings/assets/device-DgWAC9VW.js similarity index 89% rename from web/settings/assets/device-BdmFfYpU.js rename to web/settings/assets/device-DgWAC9VW.js index 30dbadeaa4..74d9083a4b 100644 --- a/web/settings/assets/device-BdmFfYpU.js +++ b/web/settings/assets/device-DgWAC9VW.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceChint",mixins:[p]},f={class:"device-chint"};function b(o,e,v,g,w,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Chint ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceChint",mixins:[p]},f={class:"device-chint"};function b(o,e,v,g,w,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Chint ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-BYcmVGRd.js b/web/settings/assets/device-DiQe2xTf.js similarity index 89% rename from web/settings/assets/device-BYcmVGRd.js rename to web/settings/assets/device-DiQe2xTf.js index 98739c6fc5..40160e9eb2 100644 --- a/web/settings/assets/device-BYcmVGRd.js +++ b/web/settings/assets/device-DiQe2xTf.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron",mixins:[p]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron",mixins:[p]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-Pg4epvz-.js b/web/settings/assets/device-DjFgC3FH.js similarity index 91% rename from web/settings/assets/device-Pg4epvz-.js rename to web/settings/assets/device-DjFgC3FH.js index 59edf99452..a891cb92ff 100644 --- a/web/settings/assets/device-Pg4epvz-.js +++ b/web/settings/assets/device-DjFgC3FH.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSofar",mixins:[d]},v={class:"device-sofar"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{E as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSofar",mixins:[d]},v={class:"device-sofar"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-BsGQfX6W.js b/web/settings/assets/device-Djudo4I7.js similarity index 93% rename from web/settings/assets/device-BsGQfX6W.js rename to web/settings/assets/device-Djudo4I7.js index da2249ec71..8b2a7317ff 100644 --- a/web/settings/assets/device-BsGQfX6W.js +++ b/web/settings/assets/device-Djudo4I7.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as b,l as t,k as f,e as v,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShelly",mixins:[m]},c={class:"device-shelly"};function g(n,e,h,w,y,V){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-select-input"),u=t("openwb-base-number-input");return f(),v("div",c,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Shelly ",-1)])]),_:1}),i(r,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[l(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":n.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.factor"))},{help:s(()=>[...e[5]||(e[5]=[l(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Phase",required:"",min:1,max:3,"model-value":n.device.configuration.phase,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.phase"))},{help:s(()=>[...e[6]||(e[6]=[l(" Gibt an an welcher Phase des Hausanschlusses die (erste) Phase des Shelly angeschlossen ist. ",-1)])]),_:1},8,["model-value"])])}const M=b(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{M as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as b,l as t,k as f,e as v,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShelly",mixins:[m]},c={class:"device-shelly"};function g(n,e,h,w,y,V){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-select-input"),u=t("openwb-base-number-input");return f(),v("div",c,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Shelly ",-1)])]),_:1}),i(r,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[l(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":n.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.factor"))},{help:s(()=>[...e[5]||(e[5]=[l(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Phase",required:"",min:1,max:3,"model-value":n.device.configuration.phase,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.phase"))},{help:s(()=>[...e[6]||(e[6]=[l(" Gibt an an welcher Phase des Hausanschlusses die (erste) Phase des Shelly angeschlossen ist. ",-1)])]),_:1},8,["model-value"])])}const M=b(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-BSo6UKEK.js b/web/settings/assets/device-DntiDAu1.js similarity index 89% rename from web/settings/assets/device-BSo6UKEK.js rename to web/settings/assets/device-DntiDAu1.js index 4f26f6a73d..7ebd634f21 100644 --- a/web/settings/assets/device-BSo6UKEK.js +++ b/web/settings/assets/device-DntiDAu1.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuder",mixins:[p]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Studer ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuder",mixins:[p]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Studer ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-B6xK4kG_.js b/web/settings/assets/device-DqksrJOB.js similarity index 89% rename from web/settings/assets/device-B6xK4kG_.js rename to web/settings/assets/device-DqksrJOB.js index f0b3a4c74b..e5a2d8d760 100644 --- a/web/settings/assets/device-B6xK4kG_.js +++ b/web/settings/assets/device-DqksrJOB.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSigenergy",mixins:[p]},_={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[g("Einstellungen für Sigenergy",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSigenergy",mixins:[p]},_={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[g("Einstellungen für Sigenergy",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-BSlk0jml.js b/web/settings/assets/device-DrU2EIBQ.js similarity index 87% rename from web/settings/assets/device-BSlk0jml.js rename to web/settings/assets/device-DrU2EIBQ.js index f271baeeb5..88f48fb4d9 100644 --- a/web/settings/assets/device-BSlk0jml.js +++ b/web/settings/assets/device-DrU2EIBQ.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartfox",mixins:[r]},f={class:"device-smartfox"};function _(o,e,v,x,b,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",f,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für Smartfox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartfox",mixins:[r]},f={class:"device-smartfox"};function _(o,e,v,x,b,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",f,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für Smartfox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-Cv_jSwrm.js b/web/settings/assets/device-DriAiQTh.js similarity index 89% rename from web/settings/assets/device-Cv_jSwrm.js rename to web/settings/assets/device-DriAiQTh.js index 3b1e1a8454..aa74e3306c 100644 --- a/web/settings/assets/device-Cv_jSwrm.js +++ b/web/settings/assets/device-DriAiQTh.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as i,k as m,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function v(o,e,_,b,g,w){const r=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>[...e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])]),_:1}),n(s,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as i,k as m,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function v(o,e,_,b,g,w){const r=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>[...e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])]),_:1}),n(s,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-CqqnDv7m.js b/web/settings/assets/device-DsVqYSqX.js similarity index 90% rename from web/settings/assets/device-CqqnDv7m.js rename to web/settings/assets/device-DsVqYSqX.js index f2c2f2836c..c1d776f2c3 100644 --- a/web/settings/assets/device-CqqnDv7m.js +++ b/web/settings/assets/device-DsVqYSqX.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as m,e as u,m as n,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFems",mixins:[p]},c={class:"device-fems"};function v(o,e,_,b,g,w){const d=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",c,[n(d,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>[...e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])]),_:1},8,["model-value"])])}const P=l(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{P as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as m,e as u,m as n,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFems",mixins:[p]},c={class:"device-fems"};function v(o,e,_,b,g,w){const d=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",c,[n(d,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>[...e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])]),_:1},8,["model-value"])])}const P=l(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-DxhmA9hW.js b/web/settings/assets/device-DteT1ftK.js similarity index 91% rename from web/settings/assets/device-DxhmA9hW.js rename to web/settings/assets/device-DteT1ftK.js index 9162f5675c..aa48d33814 100644 --- a/web/settings/assets/device-DxhmA9hW.js +++ b/web/settings/assets/device-DteT1ftK.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{U as default}; +import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-dqP8cZ7r.js b/web/settings/assets/device-DuOQfDmg.js similarity index 91% rename from web/settings/assets/device-dqP8cZ7r.js rename to web/settings/assets/device-DuOQfDmg.js index dccf1080df..566544faba 100644 --- a/web/settings/assets/device-dqP8cZ7r.js +++ b/web/settings/assets/device-DuOQfDmg.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as m,e as b,m as t,q as s,A as c,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDeye",mixins:[l]},v={class:"device-deye"};function g(o,e,w,x,y,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),b("div",v,[t(r,null,{default:s(()=>[...e[2]||(e[2]=[c("Einstellungen für Deye",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[_("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const P=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{P as default}; +import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as m,e as b,m as t,q as s,A as c,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDeye",mixins:[l]},v={class:"device-deye"};function g(o,e,w,x,y,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),b("div",v,[t(r,null,{default:s(()=>[...e[2]||(e[2]=[c("Einstellungen für Deye",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[_("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const P=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-Xoa0qNQw.js b/web/settings/assets/device-DvHqZZk9.js similarity index 91% rename from web/settings/assets/device-Xoa0qNQw.js rename to web/settings/assets/device-DvHqZZk9.js index 88fd211629..c2aa44d4e4 100644 --- a/web/settings/assets/device-Xoa0qNQw.js +++ b/web/settings/assets/device-DvHqZZk9.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as i,k as p,e as d,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),d("div",_,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const E=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{E as default}; +import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as p,e as d,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),d("div",_,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const E=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DaUzDfJC.js b/web/settings/assets/device-DwFvJqbg.js similarity index 94% rename from web/settings/assets/device-DaUzDfJC.js rename to web/settings/assets/device-DwFvJqbg.js index 0c5b208730..dd46c1a164 100644 --- a/web/settings/assets/device-DaUzDfJC.js +++ b/web/settings/assets/device-DwFvJqbg.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as g,e as b,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function c(n,e,_,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>[...e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])]),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>[...e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const M=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{M as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as g,e as b,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function c(n,e,_,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>[...e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])]),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>[...e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const M=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-DdYCjXX-.js b/web/settings/assets/device-DwiBUt_R.js similarity index 86% rename from web/settings/assets/device-DdYCjXX-.js rename to web/settings/assets/device-DwiBUt_R.js index d5e8e90728..26a571a14d 100644 --- a/web/settings/assets/device-DdYCjXX-.js +++ b/web/settings/assets/device-DwiBUt_R.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as d,e as u,m as n,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const V=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{V as default}; +import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as d,e as u,m as n,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const V=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/device-B-Mmd5Ze.js b/web/settings/assets/device-Fu4__SF-.js similarity index 92% rename from web/settings/assets/device-B-Mmd5Ze.js rename to web/settings/assets/device-Fu4__SF-.js index a27925a82f..b78e6618f1 100644 --- a/web/settings/assets/device-B-Mmd5Ze.js +++ b/web/settings/assets/device-Fu4__SF-.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as b,e as g,m as t,q as s,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSG",mixins:[p]},_={class:"device-sungrow-sg"};function v(o,e,c,w,C,S){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),g("div",_,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[u(" Einstellungen für Sungrow SG Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const N=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sg/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as b,e as g,m as t,q as s,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSG",mixins:[p]},_={class:"device-sungrow-sg"};function v(o,e,c,w,C,S){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),g("div",_,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[u(" Einstellungen für Sungrow SG Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const N=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sg/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-CMS4ZH9M.js b/web/settings/assets/device-Ge0sqbOD.js similarity index 91% rename from web/settings/assets/device-CMS4ZH9M.js rename to web/settings/assets/device-Ge0sqbOD.js index c3599a9b76..1ec4448723 100644 --- a/web/settings/assets/device-CMS4ZH9M.js +++ b/web/settings/assets/device-Ge0sqbOD.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{M as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-C-avdMqj.js b/web/settings/assets/device-I28jsbnC.js similarity index 92% rename from web/settings/assets/device-C-avdMqj.js rename to web/settings/assets/device-I28jsbnC.js index e9a101bf6f..c8dfadb250 100644 --- a/web/settings/assets/device-C-avdMqj.js +++ b/web/settings/assets/device-I28jsbnC.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAlgodue",mixins:[p]},_={class:"device-algodue"};function g(o,e,c,w,C,D){const r=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),f("div",_,[t(r,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Algodue",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{B as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAlgodue",mixins:[p]},_={class:"device-algodue"};function g(o,e,c,w,C,D){const r=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),f("div",_,[t(r,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Algodue",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-BnrlrcLl.js b/web/settings/assets/device-JZQCuW65.js similarity index 92% rename from web/settings/assets/device-BnrlrcLl.js rename to web/settings/assets/device-JZQCuW65.js index d948b6a97b..a47dd19398 100644 --- a/web/settings/assets/device-BnrlrcLl.js +++ b/web/settings/assets/device-JZQCuW65.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as s,k as p,e as l,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,b,_,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>[...e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])]),_:1}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])]),_:1},8,["model-value"])])}const A=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{A as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as s,k as p,e as l,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,b,_,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>[...e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])]),_:1}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])]),_:1},8,["model-value"])])}const A=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{A as default}; diff --git a/web/settings/assets/device-C8-xjyT6.js b/web/settings/assets/device-MN8XeDgn.js similarity index 89% rename from web/settings/assets/device-C8-xjyT6.js rename to web/settings/assets/device-MN8XeDgn.js index 3d5de4f523..fef2a72e79 100644 --- a/web/settings/assets/device-C8-xjyT6.js +++ b/web/settings/assets/device-MN8XeDgn.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as s,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[t(r,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as s,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[t(r,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-CJ9ee9IO.js b/web/settings/assets/device-NDckeTVc.js similarity index 93% rename from web/settings/assets/device-CJ9ee9IO.js rename to web/settings/assets/device-NDckeTVc.js index 2ff84bb791..d7bcecd9a7 100644 --- a/web/settings/assets/device-CJ9ee9IO.js +++ b/web/settings/assets/device-NDckeTVc.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as v,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const u=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(u,null,{default:s(()=>[...e[4]||(e[4]=[a("Einstellungen für Growatt",-1)])]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>[...e[5]||(e[5]=[a(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as v,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const u=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(u,null,{default:s(()=>[...e[4]||(e[4]=[a("Einstellungen für Growatt",-1)])]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>[...e[5]||(e[5]=[a(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; diff --git a/web/settings/assets/device-CgG28OWw.js b/web/settings/assets/device-NkTYsz5d.js similarity index 91% rename from web/settings/assets/device-CgG28OWw.js rename to web/settings/assets/device-NkTYsz5d.js index ad71ce884c..0dac61f806 100644 --- a/web/settings/assets/device-CgG28OWw.js +++ b/web/settings/assets/device-NkTYsz5d.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as i,k as d,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKacoNH",mixins:[u]},v={class:"device-kaco-nh"};function _(o,e,b,g,w,k){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return d(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Kaco NH ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Seriennummer",required:"","model-value":o.device.configuration.serial_number,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.serial_number"))},null,8,["model-value"])])}const H=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/device.vue"]]);export{H as default}; +import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as i,k as d,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKacoNH",mixins:[u]},v={class:"device-kaco-nh"};function _(o,e,b,g,w,k){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return d(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Kaco NH ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Seriennummer",required:"","model-value":o.device.configuration.serial_number,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.serial_number"))},null,8,["model-value"])])}const H=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/device.vue"]]);export{H as default}; diff --git a/web/settings/assets/device-B1gW7XBg.js b/web/settings/assets/device-QTYXfo_2.js similarity index 92% rename from web/settings/assets/device-B1gW7XBg.js rename to web/settings/assets/device-QTYXfo_2.js index e28f5fde26..acdbec5e43 100644 --- a/web/settings/assets/device-B1gW7XBg.js +++ b/web/settings/assets/device-QTYXfo_2.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as p,e as c,m as t,q as s,A as o,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFronius",mixins:[u]},b={class:"device-fronius"};function g(i,e,v,h,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const F=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{F as default}; +import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as p,e as c,m as t,q as s,A as o,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFronius",mixins:[u]},b={class:"device-fronius"};function g(i,e,v,h,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const F=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{F as default}; diff --git a/web/settings/assets/device-Cu0yn-TS.js b/web/settings/assets/device-ZglIRb13.js similarity index 91% rename from web/settings/assets/device-Cu0yn-TS.js rename to web/settings/assets/device-ZglIRb13.js index ae121403bb..4847e3fef7 100644 --- a/web/settings/assets/device-Cu0yn-TS.js +++ b/web/settings/assets/device-ZglIRb13.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as d,e as m,m as i,q as c,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>[...e[3]||(e[3]=[v("Einstellungen für Solis",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const D=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{D as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as d,e as m,m as i,q as c,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>[...e[3]||(e[3]=[v("Einstellungen für Solis",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const D=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-2ydQEeHL.js b/web/settings/assets/device-f9fnP_KM.js similarity index 95% rename from web/settings/assets/device-2ydQEeHL.js rename to web/settings/assets/device-f9fnP_KM.js index 53b90149c9..09fbefa53c 100644 --- a/web/settings/assets/device-2ydQEeHL.js +++ b/web/settings/assets/device-f9fnP_KM.js @@ -1 +1 @@ -import{D as w}from"./HardwareInstallation-caZ0sA9z.js";import{_ as c,l as t,k as s,e as f,m as r,q as a,A as o,y as d,u as l,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHuawei",mixins:[w]},_={class:"device-huawei"};function k(n,e,D,H,C,y){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",_,[r(p,null,{default:a(()=>[...e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])]),_:1}),r(m,{subtype:"info"},{default:a(()=>[...e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])]),_:1}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>[...e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])]),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>[...e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])]),_:1},8,["model-value"])])}const E=c(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{E as default}; +import{D as w}from"./HardwareInstallation-DrK-NlWu.js";import{_ as c,l as t,k as s,e as f,m as r,q as a,A as o,y as d,u as l,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHuawei",mixins:[w]},_={class:"device-huawei"};function k(n,e,D,H,C,y){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",_,[r(p,null,{default:a(()=>[...e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])]),_:1}),r(m,{subtype:"info"},{default:a(()=>[...e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])]),_:1}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>[...e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])]),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>[...e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])]),_:1},8,["model-value"])])}const E=c(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DzDhZ3zK.js b/web/settings/assets/device-fRG5_uqe.js similarity index 89% rename from web/settings/assets/device-DzDhZ3zK.js rename to web/settings/assets/device-fRG5_uqe.js index 33fb83fc7c..8a068b6213 100644 --- a/web/settings/assets/device-DzDhZ3zK.js +++ b/web/settings/assets/device-fRG5_uqe.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as i,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function v(o,e,w,_,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const D=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{D as default}; +import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as i,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function v(o,e,w,_,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const D=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-Cg5a2DJ_.js b/web/settings/assets/device-i-cc32LZ.js similarity index 94% rename from web/settings/assets/device-Cg5a2DJ_.js rename to web/settings/assets/device-i-cc32LZ.js index 5974203d49..cf4b5b14bb 100644 --- a/web/settings/assets/device-Cg5a2DJ_.js +++ b/web/settings/assets/device-i-cc32LZ.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as s,k as f,e as g,m as t,q as r,A as a,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,h,_){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Tesla ",-1)])]),_:1}),t(u,{subtype:"danger"},{default:r(()=>[...e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),a("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),a(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as s,k as f,e as g,m as t,q as r,A as a,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,h,_){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Tesla ",-1)])]),_:1}),t(u,{subtype:"danger"},{default:r(()=>[...e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),a("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),a(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-DHMJ0YEs.js b/web/settings/assets/device-iH7FSbYH.js similarity index 92% rename from web/settings/assets/device-DHMJ0YEs.js rename to web/settings/assets/device-iH7FSbYH.js index c9071c6742..237c609c8c 100644 --- a/web/settings/assets/device-DHMJ0YEs.js +++ b/web/settings/assets/device-iH7FSbYH.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as i,k as c,e as b,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPlenticore",mixins:[u]},_={class:"device-kostal-plenticore"};function v(o,e,g,w,k,C){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return c(),b("div",_,[t(l,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const W=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{W as default}; +import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as c,e as b,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPlenticore",mixins:[u]},_={class:"device-kostal-plenticore"};function v(o,e,g,w,k,C){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return c(),b("div",_,[t(l,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const W=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{W as default}; diff --git a/web/settings/assets/device-BjgcGLL9.js b/web/settings/assets/device-jAbWqT5Y.js similarity index 94% rename from web/settings/assets/device-BjgcGLL9.js rename to web/settings/assets/device-jAbWqT5Y.js index 9554194569..18ad360b79 100644 --- a/web/settings/assets/device-BjgcGLL9.js +++ b/web/settings/assets/device-jAbWqT5Y.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as v,l as t,k as i,e as f,m as a,q as c,A as b,y as u,u as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,k,q){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>[...o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])]),_:1}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const $=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{$ as default}; +import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as v,l as t,k as i,e as f,m as a,q as c,A as b,y as u,u as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,k,q){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>[...o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])]),_:1}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const $=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-DE8Sn0RG.js b/web/settings/assets/device-jjyvBZq_.js similarity index 90% rename from web/settings/assets/device-DE8Sn0RG.js rename to web/settings/assets/device-jjyvBZq_.js index d9024da35b..0a30eb441e 100644 --- a/web/settings/assets/device-DE8Sn0RG.js +++ b/web/settings/assets/device-jjyvBZq_.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as _,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceKostalPikoCi",mixins:[d]},f={class:"device-kostal-piko-ci"};function v(o,e,g,k,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-alert"),l=t("openwb-base-text-input"),u=t("openwb-base-number-input");return _(),b("div",f,[n(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Einstellungen für Kostal Piko CI",-1)])]),_:1}),n(r,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Die Kommunikation erfolgt via Modbus/TCP. ",-1)])]),_:1}),n(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),n(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const y=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/device.vue"]]);export{y as default}; +import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as _,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceKostalPikoCi",mixins:[d]},f={class:"device-kostal-piko-ci"};function v(o,e,g,k,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-alert"),l=t("openwb-base-text-input"),u=t("openwb-base-number-input");return _(),b("div",f,[n(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Einstellungen für Kostal Piko CI",-1)])]),_:1}),n(r,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Die Kommunikation erfolgt via Modbus/TCP. ",-1)])]),_:1}),n(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),n(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const y=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-CmVz3KZr.js b/web/settings/assets/device-nVYvqlQr.js similarity index 91% rename from web/settings/assets/device-CmVz3KZr.js rename to web/settings/assets/device-nVYvqlQr.js index f5db1d517a..29e787a973 100644 --- a/web/settings/assets/device-CmVz3KZr.js +++ b/web/settings/assets/device-nVYvqlQr.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as i,k as u,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSaxpower",mixins:[p]},v={class:"device-saxpower"};function _(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as u,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSaxpower",mixins:[p]},v={class:"device-saxpower"};function _(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-B4WlrUah.js b/web/settings/assets/device-t3OGij3M.js similarity index 90% rename from web/settings/assets/device-B4WlrUah.js rename to web/settings/assets/device-t3OGij3M.js index a5a61e3a83..ae3e6f6611 100644 --- a/web/settings/assets/device-B4WlrUah.js +++ b/web/settings/assets/device-t3OGij3M.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as l,e as c,m as i,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>[...e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])]),_:1},8,["model-value"])])}const E=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{E as default}; +import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as l,e as c,m as i,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>[...e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])]),_:1},8,["model-value"])])}const E=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-MHTiTYZF.js b/web/settings/assets/device-uMAcYGWD.js similarity index 89% rename from web/settings/assets/device-MHTiTYZF.js rename to web/settings/assets/device-uMAcYGWD.js index 232fd7c7d0..f004fa5a5b 100644 --- a/web/settings/assets/device-MHTiTYZF.js +++ b/web/settings/assets/device-uMAcYGWD.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOrno",mixins:[p]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Orno WE-514",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOrno",mixins:[p]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Orno WE-514",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-ByIPJ75u.js b/web/settings/assets/device-zXBzry27.js similarity index 93% rename from web/settings/assets/device-ByIPJ75u.js rename to web/settings/assets/device-zXBzry27.js index e4b64a231a..303e8ef38c 100644 --- a/web/settings/assets/device-ByIPJ75u.js +++ b/web/settings/assets/device-zXBzry27.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolarEdge",mixins:[u]},_={class:"device-solaredge"};function v(n,e,w,B,h,k){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),l=o("openwb-base-text-input"),p=o("openwb-base-number-input");return b(),c("div",_,[t(a,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),f("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Du mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(p,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>[...e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{D as default}; +import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolarEdge",mixins:[u]},_={class:"device-solaredge"};function v(n,e,w,B,h,k){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),l=o("openwb-base-text-input"),p=o("openwb-base-number-input");return b(),c("div",_,[t(a,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),f("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Du mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(p,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>[...e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/displayTheme-D2mZh2_2.js b/web/settings/assets/displayTheme-BlhJueVr.js similarity index 98% rename from web/settings/assets/displayTheme-D2mZh2_2.js rename to web/settings/assets/displayTheme-BlhJueVr.js index f40658c9e8..94aeb81873 100644 --- a/web/settings/assets/displayTheme-D2mZh2_2.js +++ b/web/settings/assets/displayTheme-BlhJueVr.js @@ -1 +1 @@ -import{D as v}from"./DisplayConfiguration-BEaqDSWf.js";import{_,l as s,k as r,e as c,m as a,q as o,A as u,y as b,u as p}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,C,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>[...e[15]||(e[15]=[u("Bediensperre",-1)])]),_:1}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>[...e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>[...e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>[...e[18]||(e[18]=[u("Ansichten",-1)])]),_:1}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>[...e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])]),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>[...e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])]),_:1},8,["model-value"]),a(d,null,{help:o(()=>[...e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])]),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const E=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{E as default}; +import{D as v}from"./DisplayConfiguration-h7XEuoXV.js";import{_,l as s,k as r,e as c,m as a,q as o,A as u,y as b,u as p}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,C,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>[...e[15]||(e[15]=[u("Bediensperre",-1)])]),_:1}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>[...e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>[...e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>[...e[18]||(e[18]=[u("Ansichten",-1)])]),_:1}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>[...e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])]),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>[...e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])]),_:1},8,["model-value"]),a(d,null,{help:o(()=>[...e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])]),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const E=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{E as default}; diff --git a/web/settings/assets/displayTheme-DSCxcdhW.js b/web/settings/assets/displayTheme-TNZXyuYb.js similarity index 92% rename from web/settings/assets/displayTheme-DSCxcdhW.js rename to web/settings/assets/displayTheme-TNZXyuYb.js index e9ba611749..c4f4c4ca59 100644 --- a/web/settings/assets/displayTheme-DSCxcdhW.js +++ b/web/settings/assets/displayTheme-TNZXyuYb.js @@ -1 +1 @@ -import{D as d}from"./DisplayConfiguration-BEaqDSWf.js";import{_ as m,l as n,k as i,e as c,m as l,q as s,A as a,y as b,u as g}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const p=n("openwb-base-heading"),r=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[l(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Bediensperre",-1)])]),_:1}),l(r,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>[...e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),b(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>[...e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):g("",!0)])}const $=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{$ as default}; +import{D as d}from"./DisplayConfiguration-h7XEuoXV.js";import{_ as m,l as n,k as i,e as c,m as l,q as s,A as a,y as b,u as g}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const p=n("openwb-base-heading"),r=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[l(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Bediensperre",-1)])]),_:1}),l(r,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>[...e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),b(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>[...e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):g("",!0)])}const $=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{$ as default}; diff --git a/web/settings/assets/external_inverter-yhBlc68v.js b/web/settings/assets/external_inverter-v9N8YFy_.js similarity index 94% rename from web/settings/assets/external_inverter-yhBlc68v.js rename to web/settings/assets/external_inverter-v9N8YFy_.js index 7ac7aab84f..ffe6574057 100644 --- a/web/settings/assets/external_inverter-yhBlc68v.js +++ b/web/settings/assets/external_inverter-v9N8YFy_.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as i,k as g,e as f,m as o,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolaredgeExternalInverter",mixins:[m]},c={class:"device-solaredge-external-inverter"};function v(n,e,_,w,x,C){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",c,[o(l,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])]),_:1}),o(u,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])]),_:1}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>[...e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])]),_:1},8,["model-value"])])}const I=p(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as i,k as g,e as f,m as o,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolaredgeExternalInverter",mixins:[m]},c={class:"device-solaredge-external-inverter"};function v(n,e,_,w,x,C){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",c,[o(l,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])]),_:1}),o(u,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])]),_:1}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>[...e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])]),_:1},8,["model-value"])])}const I=p(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/flexible_tariff-B7GMl0Rk.js b/web/settings/assets/flexible_tariff-B5Q9TiRz.js similarity index 89% rename from web/settings/assets/flexible_tariff-B7GMl0Rk.js rename to web/settings/assets/flexible_tariff-B5Q9TiRz.js index 7f9caf0edf..c9c02bd219 100644 --- a/web/settings/assets/flexible_tariff-B7GMl0Rk.js +++ b/web/settings/assets/flexible_tariff-B5Q9TiRz.js @@ -1 +1 @@ -import{F as n}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as a,l as s,k as l,e as o,m as f,q as p,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffEkz",mixins:[n]},m={class:"flexible-tariff-ekz"};function u(d,r,_,b,x,k){const i=s("openwb-base-alert");return l(),o("div",m,[f(i,{subtype:"info"},{default:p(()=>[...r[0]||(r[0]=[e(" Dynamischer Tarif der Elektrizitätswerke des Kantons Zürich (EKZ) - www.ekz.ch/de/privatkunden/strom/tarife/dynamischer-wahltarif.html ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1),t("br",null,null,-1)])]),_:1})])}const E=a(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ekz/flexible_tariff.vue"]]);export{E as default}; +import{F as n}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as a,l as s,k as l,e as o,m as f,q as p,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffEkz",mixins:[n]},m={class:"flexible-tariff-ekz"};function u(d,r,_,b,x,k){const i=s("openwb-base-alert");return l(),o("div",m,[f(i,{subtype:"info"},{default:p(()=>[...r[0]||(r[0]=[e(" Dynamischer Tarif der Elektrizitätswerke des Kantons Zürich (EKZ) - www.ekz.ch/de/privatkunden/strom/tarife/dynamischer-wahltarif.html ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1),t("br",null,null,-1)])]),_:1})])}const E=a(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ekz/flexible_tariff.vue"]]);export{E as default}; diff --git a/web/settings/assets/flexible_tariff-DBcMB1Nb.js b/web/settings/assets/flexible_tariff-BsviT0dT.js similarity index 91% rename from web/settings/assets/flexible_tariff-DBcMB1Nb.js rename to web/settings/assets/flexible_tariff-BsviT0dT.js index a49ed2e37e..1f92cfb146 100644 --- a/web/settings/assets/flexible_tariff-DBcMB1Nb.js +++ b/web/settings/assets/flexible_tariff-BsviT0dT.js @@ -1 +1 @@ -import{F as a}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as s,l,k as f,e as p,m as o,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffVoltego",mixins:[a]},m={class:"flexible-tariff-voltego"};function b(t,e,_,g,x,v){const r=l("openwb-base-alert"),n=l("openwb-base-text-input");return f(),p("div",m,[o(r,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[d(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du direkt von Voltego. Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Voltego-Account abfragen lassen! ",-1)])]),_:1}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const $=s(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/voltego/flexible_tariff.vue"]]);export{$ as default}; +import{F as a}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as s,l,k as f,e as p,m as o,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffVoltego",mixins:[a]},m={class:"flexible-tariff-voltego"};function b(t,e,_,g,x,v){const r=l("openwb-base-alert"),n=l("openwb-base-text-input");return f(),p("div",m,[o(r,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[d(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du direkt von Voltego. Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Voltego-Account abfragen lassen! ",-1)])]),_:1}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const $=s(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/voltego/flexible_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/flexible_tariff-BmnVQBW5.js b/web/settings/assets/flexible_tariff-CiZLGcR6.js similarity index 91% rename from web/settings/assets/flexible_tariff-BmnVQBW5.js rename to web/settings/assets/flexible_tariff-CiZLGcR6.js index d7f2bac802..4b45cb67d9 100644 --- a/web/settings/assets/flexible_tariff-BmnVQBW5.js +++ b/web/settings/assets/flexible_tariff-CiZLGcR6.js @@ -1 +1 @@ -import{F as r}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as a,l,k as s,e as f,m as n,q as u,A as p}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"FlexibleTariffWestfalenWind",mixins:[r]},m={class:"flexible-tariff-westfalen-wind"};function b(i,e,g,w,c,x){const o=l("openwb-base-text-input");return s(),f("div",m,[n(o,{title:"Benutzername",subtype:"user",required:"","model-value":i.flexibleTariff.configuration.username,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.username"))},null,8,["model-value"]),n(o,{title:"Passwort",subtype:"password",required:"","model-value":i.flexibleTariff.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),n(o,{title:"Vertrags-Nummer (optional)","model-value":i.flexibleTariff.configuration.contract_id,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.contract_id"))},{help:u(()=>[...e[3]||(e[3]=[p(" Bei mehreren Verträgen kann zusätzlich die Vertrags-Nummer angegeben werden, um die Preise dieses Vertrags abzurufen. ",-1)])]),_:1},8,["model-value"])])}const N=a(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/westfalen_wind/flexible_tariff.vue"]]);export{N as default}; +import{F as r}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as a,l,k as s,e as f,m as n,q as u,A as p}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"FlexibleTariffWestfalenWind",mixins:[r]},m={class:"flexible-tariff-westfalen-wind"};function b(i,e,g,w,c,x){const o=l("openwb-base-text-input");return s(),f("div",m,[n(o,{title:"Benutzername",subtype:"user",required:"","model-value":i.flexibleTariff.configuration.username,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.username"))},null,8,["model-value"]),n(o,{title:"Passwort",subtype:"password",required:"","model-value":i.flexibleTariff.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),n(o,{title:"Vertrags-Nummer (optional)","model-value":i.flexibleTariff.configuration.contract_id,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.contract_id"))},{help:u(()=>[...e[3]||(e[3]=[p(" Bei mehreren Verträgen kann zusätzlich die Vertrags-Nummer angegeben werden, um die Preise dieses Vertrags abzurufen. ",-1)])]),_:1},8,["model-value"])])}const N=a(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/westfalen_wind/flexible_tariff.vue"]]);export{N as default}; diff --git a/web/settings/assets/flexible_tariff-BXSuQZLV.js b/web/settings/assets/flexible_tariff-Cm72-IRP.js similarity index 98% rename from web/settings/assets/flexible_tariff-BXSuQZLV.js rename to web/settings/assets/flexible_tariff-Cm72-IRP.js index cd8a83dbd3..ddf9d110ae 100644 --- a/web/settings/assets/flexible_tariff-BXSuQZLV.js +++ b/web/settings/assets/flexible_tariff-Cm72-IRP.js @@ -1 +1 @@ -import{F as H}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as S,k as s,e as f,x as u,f as x,l as o,y as w,D as N,q as a,m as l,z as C,A as p,u as F,K as V,L as y,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,c,v,g,n){return s(),f("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[x(t.$slots,"start")]),u("div",K,[x(t.$slots,"end")])])]),u("div",M,[x(t.$slots,"action")])])])}const R=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const j={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const c=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;c.push({value:d,text:d})}return c},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},L={key:0,class:"w-100 alert alert-danger"},J=["onUpdate:modelValue","onChange"],G=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("time-row"),k=o("openwb-base-setting-element");return s(),w(k,null,N({title:a(()=>[x(t.$slots,"title",{},()=>[p($(c.title),1)])]),default:a(()=>[l(h,null,{start:a(()=>[...e[0]||(e[0]=[p(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[p(" Ende ",-1)])]),action:a(()=>[l(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[l(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(s(),f("div",L," Keine Zeitbereiche definiert! ")):F("",!0),(s(!0),f(V,null,y(n.value,(_,b)=>(s(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(n.generateTimeOptions("00:00","23:00"),i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,G))),128))],40,J),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(g.endOptions[b],i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(s(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[x(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(j,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("openwb-base-text-input"),k=o("openwb-base-number-input"),_=o("openwb-base-select-input"),b=o("time-table"),i=o("openwb-base-card");return s(),w(i,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[p($(n.tariff.name),1)]),actions:a(()=>[l(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=r=>t.$emit("delete"))},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[l(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=r=>n.tariff.name=r),title:"Tarifname"},null,8,["modelValue"]),l(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=r=>n.tariff.price=parseFloat((r/100).toFixed(5)))},null,8,["model-value"]),l(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=r=>n.dates=r),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),l(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=r=>n.tariff.active_times.times=r),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const oe={name:"FlexibleTariffFixedHours",components:{FontAwesomeIcon:O,FixedTariff:ie},mixins:[H],computed:{value:{get(){return this.flexibleTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},se={class:"flexible-tariff-fixed-hours"};function le(t,e,c,v,g,n){const m=o("openwb-base-alert"),d=o("openwb-base-number-input"),h=o("font-awesome-icon"),k=o("openwb-base-avatar"),_=o("openwb-base-heading"),b=o("fixed-tariff");return s(),f("div",se,[l(m,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[p(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),l(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[p(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),l(_,null,{actions:a(()=>[l(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=p(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(s(),w(m,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[p(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),p(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(s(!0),f(V,null,y(n.value.configuration.tariffs,(i,r)=>(s(),w(b,{key:r,"model-value":i,"onUpdate:modelValue":q=>n.value.configuration.tariffs[r]=q,onDelete:q=>n.removeTariff(r)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(oe,[["render",le],["__scopeId","data-v-dd67c8e4"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/flexible_tariff.vue"]]);export{be as default}; +import{F as H}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as S,k as s,e as f,x as u,f as x,l as o,y as w,D as N,q as a,m as l,z as C,A as p,u as F,K as V,L as y,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,c,v,g,n){return s(),f("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[x(t.$slots,"start")]),u("div",K,[x(t.$slots,"end")])])]),u("div",M,[x(t.$slots,"action")])])])}const R=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const j={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const c=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;c.push({value:d,text:d})}return c},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},L={key:0,class:"w-100 alert alert-danger"},J=["onUpdate:modelValue","onChange"],G=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("time-row"),k=o("openwb-base-setting-element");return s(),w(k,null,N({title:a(()=>[x(t.$slots,"title",{},()=>[p($(c.title),1)])]),default:a(()=>[l(h,null,{start:a(()=>[...e[0]||(e[0]=[p(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[p(" Ende ",-1)])]),action:a(()=>[l(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[l(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(s(),f("div",L," Keine Zeitbereiche definiert! ")):F("",!0),(s(!0),f(V,null,y(n.value,(_,b)=>(s(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(n.generateTimeOptions("00:00","23:00"),i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,G))),128))],40,J),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(g.endOptions[b],i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(s(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[x(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(j,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("openwb-base-text-input"),k=o("openwb-base-number-input"),_=o("openwb-base-select-input"),b=o("time-table"),i=o("openwb-base-card");return s(),w(i,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[p($(n.tariff.name),1)]),actions:a(()=>[l(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=r=>t.$emit("delete"))},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[l(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=r=>n.tariff.name=r),title:"Tarifname"},null,8,["modelValue"]),l(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=r=>n.tariff.price=parseFloat((r/100).toFixed(5)))},null,8,["model-value"]),l(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=r=>n.dates=r),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),l(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=r=>n.tariff.active_times.times=r),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const oe={name:"FlexibleTariffFixedHours",components:{FontAwesomeIcon:O,FixedTariff:ie},mixins:[H],computed:{value:{get(){return this.flexibleTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},se={class:"flexible-tariff-fixed-hours"};function le(t,e,c,v,g,n){const m=o("openwb-base-alert"),d=o("openwb-base-number-input"),h=o("font-awesome-icon"),k=o("openwb-base-avatar"),_=o("openwb-base-heading"),b=o("fixed-tariff");return s(),f("div",se,[l(m,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[p(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),l(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[p(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),l(_,null,{actions:a(()=>[l(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=p(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(s(),w(m,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[p(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),p(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(s(!0),f(V,null,y(n.value.configuration.tariffs,(i,r)=>(s(),w(b,{key:r,"model-value":i,"onUpdate:modelValue":q=>n.value.configuration.tariffs[r]=q,onDelete:q=>n.removeTariff(r)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(oe,[["render",le],["__scopeId","data-v-dd67c8e4"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/flexible_tariff.vue"]]);export{be as default}; diff --git a/web/settings/assets/flexible_tariff-Dd4agfmV.js b/web/settings/assets/flexible_tariff-Cwtdxcdq.js similarity index 93% rename from web/settings/assets/flexible_tariff-Dd4agfmV.js rename to web/settings/assets/flexible_tariff-Cwtdxcdq.js index 0116da38d8..3c1b67afac 100644 --- a/web/settings/assets/flexible_tariff-Dd4agfmV.js +++ b/web/settings/assets/flexible_tariff-Cwtdxcdq.js @@ -1 +1 @@ -import{F as p}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as f,l,k as u,e as d,m as o,q as a,A as n,x as m}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"FlexibleTariffOstrom",mixins:[p]},c={class:"flexible-tariff-ostrom"};function g(t,e,_,x,v,w){const s=l("openwb-base-alert"),r=l("openwb-base-text-input");return u(),d("div",c,[o(s,{subtype:"info"},{default:a(()=>[...e[3]||(e[3]=[n(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem ostrom-Account abfragen lassen! ",-1)])]),_:1}),o(r,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(r,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),o(r,{title:"Postleitzahl","model-value":t.flexibleTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:a(()=>[...e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])]),_:1},8,["model-value"])])}const A=f(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ostrom/flexible_tariff.vue"]]);export{A as default}; +import{F as p}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as f,l,k as u,e as d,m as o,q as a,A as n,x as m}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"FlexibleTariffOstrom",mixins:[p]},c={class:"flexible-tariff-ostrom"};function g(t,e,_,x,v,w){const s=l("openwb-base-alert"),r=l("openwb-base-text-input");return u(),d("div",c,[o(s,{subtype:"info"},{default:a(()=>[...e[3]||(e[3]=[n(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem ostrom-Account abfragen lassen! ",-1)])]),_:1}),o(r,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(r,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),o(r,{title:"Postleitzahl","model-value":t.flexibleTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:a(()=>[...e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])]),_:1},8,["model-value"])])}const A=f(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ostrom/flexible_tariff.vue"]]);export{A as default}; diff --git a/web/settings/assets/flexible_tariff-CTd9X6xC.js b/web/settings/assets/flexible_tariff-D1CoTmby.js similarity index 90% rename from web/settings/assets/flexible_tariff-CTd9X6xC.js rename to web/settings/assets/flexible_tariff-D1CoTmby.js index 5f634b7b47..0c45d6552a 100644 --- a/web/settings/assets/flexible_tariff-CTd9X6xC.js +++ b/web/settings/assets/flexible_tariff-D1CoTmby.js @@ -1 +1 @@ -import{F as r}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as l,l as a,k as u,e as s,m as n}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"FlexibleTariffOctopusEnergy",mixins:[r]},p={class:"flexible-tariff-octopusenergy"};function m(e,o,d,b,c,g){const t=a("openwb-base-text-input");return u(),s("div",p,[n(t,{title:"Benutzername",subtype:"user",required:"","model-value":e.flexibleTariff.configuration.email,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),n(t,{title:"Passwort",subtype:"password",required:"","model-value":e.flexibleTariff.configuration.password,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.password"))},null,8,["model-value"]),n(t,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.flexibleTariff.configuration.accountId,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.accountId"))},null,8,["model-value"])])}const B=l(f,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/octopusenergy/flexible_tariff.vue"]]);export{B as default}; +import{F as r}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as l,l as a,k as u,e as s,m as n}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"FlexibleTariffOctopusEnergy",mixins:[r]},p={class:"flexible-tariff-octopusenergy"};function m(e,o,d,b,c,g){const t=a("openwb-base-text-input");return u(),s("div",p,[n(t,{title:"Benutzername",subtype:"user",required:"","model-value":e.flexibleTariff.configuration.email,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),n(t,{title:"Passwort",subtype:"password",required:"","model-value":e.flexibleTariff.configuration.password,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.password"))},null,8,["model-value"]),n(t,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.flexibleTariff.configuration.accountId,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.accountId"))},null,8,["model-value"])])}const B=l(f,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/octopusenergy/flexible_tariff.vue"]]);export{B as default}; diff --git a/web/settings/assets/flexible_tariff-w7-xLoOe.js b/web/settings/assets/flexible_tariff-DAlfbB0X.js similarity index 96% rename from web/settings/assets/flexible_tariff-w7-xLoOe.js rename to web/settings/assets/flexible_tariff-DAlfbB0X.js index c6cfb3ec2a..dfa72ad180 100644 --- a/web/settings/assets/flexible_tariff-w7-xLoOe.js +++ b/web/settings/assets/flexible_tariff-DAlfbB0X.js @@ -1 +1 @@ -import{F as m}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as g,l as u,k as f,e as p,m as l,q as a,A as i,x as o,J as r,u as x}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"FlexibleTariffAwattar",mixins:[m]},T={class:"flexible-tariff-awattar"},w={key:0,class:"mt-3"},B={class:"alert alert-info mb-3"},C={class:"row"},V={class:"col-md-4"},k={class:"col-md-4"},A={class:"col-md-4"};function F(t,e,P,S,y,U){const d=u("openwb-base-select-input"),b=u("openwb-base-button-group-input"),s=u("openwb-base-number-input");return f(),p("div",T,[l(d,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},{help:a(()=>[...e[5]||(e[5]=[i(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])]),_:1},8,["model-value"]),l(b,{title:"Preisart",buttons:[{buttonValue:!0,text:"Netto"},{buttonValue:!1,text:"Brutto"}],"model-value":t.flexibleTariff.configuration.net??!0,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.net"))},{help:a(()=>[...e[6]||(e[6]=[i(" Netto: Reine Börsenpreise ohne Aufschläge",-1),o("br",null,null,-1),i(" Brutto: Börsenpreise mit konfigurierbaren Aufschlägen und MwSt. ",-1)])]),_:1},8,["model-value"]),t.flexibleTariff.configuration.net?x("",!0):(f(),p("div",w,[e[15]||(e[15]=o("h5",{class:"mb-3"},"Preisberechnung",-1)),o("div",B,[e[7]||(e[7]=o("strong",null,"Formel:",-1)),e[8]||(e[8]=o("br",null,null,-1)),i(" Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT"),1),e[9]||(e[9]=o("br",null,null,-1)),i(" + | Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT")+" | × "+r((t.flexibleTariff.configuration.proportional/100||0).toFixed(2))+" ("+r((t.flexibleTariff.configuration.proportional||0).toFixed(0))+"%)",1),e[10]||(e[10]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.fix*1e5||0).toFixed(3))+" Cent/kWh",1),e[11]||(e[11]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.tax||0).toFixed(0))+"% MwSt. ",1)]),o("div",C,[o("div",V,[l(s,{title:"Proportionaler Aufschlag",unit:"%",min:0,max:100,step:.01,"model-value":t.flexibleTariff.configuration.proportional||0,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.proportional"))},{help:a(()=>[...e[12]||(e[12]=[i(" Prozentuale Gebühr auf den Börsenpreis (z.B. 3% = 0.03) ",-1)])]),_:1},8,["model-value"])]),o("div",k,[l(s,{title:"Fester Aufschlag",unit:"Cent/kWh",min:0,step:.001,"model-value":t.flexibleTariff.configuration.fix*1e5||0,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n/1e5,"configuration.fix"))},{help:a(()=>[...e[13]||(e[13]=[i(" Feste Gebühr pro kWh (z.B. 1,500 Cent/kWh) ",-1)])]),_:1},8,["model-value"])]),o("div",A,[l(s,{title:"Mehrwertsteuer",unit:"%",min:0,max:50,step:.01,"model-value":t.flexibleTariff.configuration.tax||0,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.tax"))},{help:a(()=>[...e[14]||(e[14]=[i(" Mehrwertsteuer in Prozent (z.B. 20%) ",-1)])]),_:1},8,["model-value"])])])]))])}const D=g(v,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/awattar/flexible_tariff.vue"]]);export{D as default}; +import{F as m}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as g,l as u,k as f,e as p,m as l,q as a,A as i,x as o,J as r,u as x}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"FlexibleTariffAwattar",mixins:[m]},T={class:"flexible-tariff-awattar"},w={key:0,class:"mt-3"},B={class:"alert alert-info mb-3"},C={class:"row"},V={class:"col-md-4"},k={class:"col-md-4"},A={class:"col-md-4"};function F(t,e,P,S,y,U){const d=u("openwb-base-select-input"),b=u("openwb-base-button-group-input"),s=u("openwb-base-number-input");return f(),p("div",T,[l(d,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},{help:a(()=>[...e[5]||(e[5]=[i(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])]),_:1},8,["model-value"]),l(b,{title:"Preisart",buttons:[{buttonValue:!0,text:"Netto"},{buttonValue:!1,text:"Brutto"}],"model-value":t.flexibleTariff.configuration.net??!0,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.net"))},{help:a(()=>[...e[6]||(e[6]=[i(" Netto: Reine Börsenpreise ohne Aufschläge",-1),o("br",null,null,-1),i(" Brutto: Börsenpreise mit konfigurierbaren Aufschlägen und MwSt. ",-1)])]),_:1},8,["model-value"]),t.flexibleTariff.configuration.net?x("",!0):(f(),p("div",w,[e[15]||(e[15]=o("h5",{class:"mb-3"},"Preisberechnung",-1)),o("div",B,[e[7]||(e[7]=o("strong",null,"Formel:",-1)),e[8]||(e[8]=o("br",null,null,-1)),i(" Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT"),1),e[9]||(e[9]=o("br",null,null,-1)),i(" + | Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT")+" | × "+r((t.flexibleTariff.configuration.proportional/100||0).toFixed(2))+" ("+r((t.flexibleTariff.configuration.proportional||0).toFixed(0))+"%)",1),e[10]||(e[10]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.fix*1e5||0).toFixed(3))+" Cent/kWh",1),e[11]||(e[11]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.tax||0).toFixed(0))+"% MwSt. ",1)]),o("div",C,[o("div",V,[l(s,{title:"Proportionaler Aufschlag",unit:"%",min:0,max:100,step:.01,"model-value":t.flexibleTariff.configuration.proportional||0,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.proportional"))},{help:a(()=>[...e[12]||(e[12]=[i(" Prozentuale Gebühr auf den Börsenpreis (z.B. 3% = 0.03) ",-1)])]),_:1},8,["model-value"])]),o("div",k,[l(s,{title:"Fester Aufschlag",unit:"Cent/kWh",min:0,step:.001,"model-value":t.flexibleTariff.configuration.fix*1e5||0,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n/1e5,"configuration.fix"))},{help:a(()=>[...e[13]||(e[13]=[i(" Feste Gebühr pro kWh (z.B. 1,500 Cent/kWh) ",-1)])]),_:1},8,["model-value"])]),o("div",A,[l(s,{title:"Mehrwertsteuer",unit:"%",min:0,max:50,step:.01,"model-value":t.flexibleTariff.configuration.tax||0,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.tax"))},{help:a(()=>[...e[14]||(e[14]=[i(" Mehrwertsteuer in Prozent (z.B. 20%) ",-1)])]),_:1},8,["model-value"])])])]))])}const D=g(v,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/awattar/flexible_tariff.vue"]]);export{D as default}; diff --git a/web/settings/assets/flexible_tariff-CYFz2wtm.js b/web/settings/assets/flexible_tariff-DDPKc8IS.js similarity index 94% rename from web/settings/assets/flexible_tariff-CYFz2wtm.js rename to web/settings/assets/flexible_tariff-DDPKc8IS.js index 5f865e4323..1ebd4fb5e5 100644 --- a/web/settings/assets/flexible_tariff-CYFz2wtm.js +++ b/web/settings/assets/flexible_tariff-DDPKc8IS.js @@ -1 +1 @@ -import{F as f}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as p,l as r,k as d,e as m,m as i,q as a,A as s,x as c}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"FlexibleTariffEnergyCharts",mixins:[f]},b={class:"flexible-tariff-energy-charts"};function h(n,e,_,w,x,v){const o=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),m("div",b,[i(o,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),c("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])]),_:1}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":n.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.flexibleTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(parseFloat(t.toFixed(3)),"configuration.surcharge"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])]),_:1},8,["model-value"])])}const F=p(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/energycharts/flexible_tariff.vue"]]);export{F as default}; +import{F as f}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as p,l as r,k as d,e as m,m as i,q as a,A as s,x as c}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"FlexibleTariffEnergyCharts",mixins:[f]},b={class:"flexible-tariff-energy-charts"};function h(n,e,_,w,x,v){const o=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),m("div",b,[i(o,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),c("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])]),_:1}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":n.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.flexibleTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(parseFloat(t.toFixed(3)),"configuration.surcharge"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])]),_:1},8,["model-value"])])}const F=p(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/energycharts/flexible_tariff.vue"]]);export{F as default}; diff --git a/web/settings/assets/flexible_tariff-DguwaAtd.js b/web/settings/assets/flexible_tariff-DJxxQB8n.js similarity index 96% rename from web/settings/assets/flexible_tariff-DguwaAtd.js rename to web/settings/assets/flexible_tariff-DJxxQB8n.js index 8ab7fa59dc..d761a14211 100644 --- a/web/settings/assets/flexible_tariff-DguwaAtd.js +++ b/web/settings/assets/flexible_tariff-DJxxQB8n.js @@ -1 +1 @@ -import{F as c}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as m,l as s,k as g,e as _,m as r,q as h,A as l,x as T}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const x={name:"FlexibleTariffTibber",mixins:[c],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.flexibleTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.flexibleTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let n=t.address.address1;return t.address.address2&&(n=n+", "+t.address.address2),t.address.address3&&(n=n+", "+t.address.address3),n=n+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:n}}),this.flexibleTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},k={class:"flexible-tariff-tibber"};function v(i,e,t,n,d,b){const u=s("openwb-base-alert"),a=s("openwb-base-text-input"),f=s("openwb-base-button-input"),p=s("openwb-base-select-input");return g(),_("div",k,[r(u,{subtype:"info"},{default:h(()=>[...e[3]||(e[3]=[l(" Deinen persönlichen Tibber-Token erhältst Du über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandle Deinen Token wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Tibber-Account abfragen lassen! Die Home-ID kannst Du (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Deines Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])]),_:1}),r(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.flexibleTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),r(f,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!i.flexibleTariff.configuration.token?.length,onButtonClicked:b.getTibberHomeList},null,8,["disabled","onButtonClicked"]),r(p,{title:"Verfügbare Home-IDs",options:d.tibberHomeList,"model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),r(a,{title:"Home-ID",required:"","model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const V=m(x,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/tibber/flexible_tariff.vue"]]);export{V as default}; +import{F as c}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as m,l as s,k as g,e as _,m as r,q as h,A as l,x as T}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const x={name:"FlexibleTariffTibber",mixins:[c],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.flexibleTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.flexibleTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let n=t.address.address1;return t.address.address2&&(n=n+", "+t.address.address2),t.address.address3&&(n=n+", "+t.address.address3),n=n+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:n}}),this.flexibleTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},k={class:"flexible-tariff-tibber"};function v(i,e,t,n,d,b){const u=s("openwb-base-alert"),a=s("openwb-base-text-input"),f=s("openwb-base-button-input"),p=s("openwb-base-select-input");return g(),_("div",k,[r(u,{subtype:"info"},{default:h(()=>[...e[3]||(e[3]=[l(" Deinen persönlichen Tibber-Token erhältst Du über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandle Deinen Token wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Tibber-Account abfragen lassen! Die Home-ID kannst Du (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Deines Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])]),_:1}),r(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.flexibleTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),r(f,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!i.flexibleTariff.configuration.token?.length,onButtonClicked:b.getTibberHomeList},null,8,["disabled","onButtonClicked"]),r(p,{title:"Verfügbare Home-IDs",options:d.tibberHomeList,"model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),r(a,{title:"Home-ID",required:"","model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const V=m(x,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/tibber/flexible_tariff.vue"]]);export{V as default}; diff --git a/web/settings/assets/flexible_tariff-DTKfP5xv.js b/web/settings/assets/flexible_tariff-DNlNO1mw.js similarity index 88% rename from web/settings/assets/flexible_tariff-DTKfP5xv.js rename to web/settings/assets/flexible_tariff-DNlNO1mw.js index 6bdf5cefdb..13c109a989 100644 --- a/web/settings/assets/flexible_tariff-DTKfP5xv.js +++ b/web/settings/assets/flexible_tariff-DNlNO1mw.js @@ -1 +1 @@ -import{F as o}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as a,l as n,k as s,e as l,m as p,q as f,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffGroupeE",mixins:[o]},u={class:"flexible-tariff-groupe-e"};function m(_,r,d,b,x,g){const i=n("openwb-base-alert");return s(),l("div",u,[p(i,{subtype:"info"},{default:f(()=>[...r[0]||(r[0]=[e(" Tarif Vario der Groupe E (Westschweiz) - www.groupe-e.ch/de/strom/vario ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1)])]),_:1})])}const $=a(c,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/groupe_e/flexible_tariff.vue"]]);export{$ as default}; +import{F as o}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as a,l as n,k as s,e as l,m as p,q as f,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffGroupeE",mixins:[o]},u={class:"flexible-tariff-groupe-e"};function m(_,r,d,b,x,g){const i=n("openwb-base-alert");return s(),l("div",u,[p(i,{subtype:"info"},{default:f(()=>[...r[0]||(r[0]=[e(" Tarif Vario der Groupe E (Westschweiz) - www.groupe-e.ch/de/strom/vario ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1)])]),_:1})])}const $=a(c,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/groupe_e/flexible_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/flexible_tariff-D2I_bbD1.js b/web/settings/assets/flexible_tariff-DUAjEH5H.js similarity index 97% rename from web/settings/assets/flexible_tariff-D2I_bbD1.js rename to web/settings/assets/flexible_tariff-DUAjEH5H.js index 378fb87aa7..8619c0a28d 100644 --- a/web/settings/assets/flexible_tariff-D2I_bbD1.js +++ b/web/settings/assets/flexible_tariff-DUAjEH5H.js @@ -1 +1 @@ -import{a as b}from"./vendor-axios-DdFvNBv9.js";import{F as g}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as c,l as a,k as p,e as h,m as n,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./index-CyH1Au4V.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"FlexibleTariffRabot",mixins:[g],data(){return{contractNumbers:[]}},computed:{contractOptions(){const t=this.contractNumbers.map(e=>({value:e,text:e}));return t.length===0&&this.flexibleTariff.configuration.contract_number&&t.push({value:this.flexibleTariff.configuration.contract_number,text:this.flexibleTariff.configuration.contract_number}),t}},methods:{rabot_login_window(){const t=window.open("about:blank","RabotLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus(),this.createAuthUrl().then(e=>{t.location.href=e.authorizationUrl}).catch(e=>{t.close(),console.error("Fehler beim Erstellen des Rabot-Links:",e),this.$root.postClientMessage("Fehler beim Erstellen der Rabot-Authentifizierung: "+(e.response?.data?.message||e.message),"danger")})},async createAuthUrl(){const t=await b.post("https://rabot.openwb.de/rabot-auth.php",{headers:{"Content-Type":"application/json"}});if(!t.data.success)throw new Error("Server-Fehler beim Erstellen der Rabot-Authentifizierung");return t.data},async fetch_contract_number(){if(!this.flexibleTariff.configuration.customer_number){this.$root.postClientMessage("Bitte gib zuerst eine Kundennummer ein.","warning");return}try{const t=await b.get(`https://rabot.openwb.de/rabot-proxy.php/customers/${this.flexibleTariff.configuration.customer_number}/contracts`,{headers:{"Content-Type":"application/json"}});if(t.data&&t.data.contractNumbers&&t.data.contractNumbers.length>0){const e=t.data.contractNumbers;this.contractNumbers=e;const o=e[0];this.updateConfiguration(o,"configuration.contract_number"),e.length>1?this.$root.postClientMessage(`${e.length} Verträge gefunden. Erster Vertrag ausgewählt: ${o}. Du kannst einen anderen Vertrag aus der Liste wählen.`,"success"):this.$root.postClientMessage("Vertragsnummer erfolgreich abgerufen: "+o,"success")}else this.$root.postClientMessage("Keine Verträge für diese Kundennummer gefunden.","warning")}catch(t){console.error("Fehler beim Abrufen der Vertragsnummer:",t),this.$root.postClientMessage("Fehler beim Abrufen der Vertragsnummer: "+(t.response?.data?.message||t.message),"danger")}}}},_={class:"flexible-tariff-rabot"};function x(t,e,o,C,V,s){const l=a("openwb-base-alert"),m=a("openwb-base-button-input"),f=a("openwb-base-text-input"),d=a("openwb-base-select-input");return p(),h("div",_,[n(l,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[i(" Über die Rabot-Authentifizierung kannst Du Deine Stromtarif-Daten für die Ladeplanung nutzen. Nach der Anmeldung bei Rabot wird eine Kundennummer in der Adresszeile angezeigt, die Du hier einfügen musst. ",-1)])]),_:1}),n(l,{subtype:"warning"},{default:r(()=>[...e[4]||(e[4]=[i(" Die Rabot-Authentifizierung kann nur über einen Computer oder die openWB-Cloud (remote.openwb.de) durchgeführt werden. Das Eintragen von Kunden- und Vertragsnummer ist nicht ausreichend, da nach der Anmeldung bei Rabot noch die Zustimmung erteilt werden muss. ",-1)])]),_:1}),n(m,{title:"1. Bei Rabot anmelden","button-text":"Bei Rabot Anmelden",subtype:"success",onButtonClicked:e[0]||(e[0]=()=>s.rabot_login_window())},{help:r(()=>[...e[5]||(e[5]=[i(" Es wird ein neues Browserfenster geöffnet, in dem Du Dich bei Rabot mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1}),n(f,{title:"2. Kundennummer kopieren und einfügen",required:"","model-value":t.flexibleTariff.configuration.customer_number,"onUpdate:modelValue":e[1]||(e[1]=u=>t.updateConfiguration(u,"configuration.customer_number"))},{help:r(()=>[...e[6]||(e[6]=[i(" Nachdem die Rabot-Authentifizierung abgeschlossen wurde, wird im geöffneten Browserfenster eine Kundennummer angezeigt. Diese kopieren und hier einfügen. Diese wird benötigt, um auf Ihre Tarif-Daten zugreifen zu können. ",-1)])]),_:1},8,["model-value"]),n(m,{title:"3. Vertragsnummer abrufen","button-text":"Vertrag laden",subtype:"info",disabled:!t.flexibleTariff.configuration.customer_number,onButtonClicked:s.fetch_contract_number},{help:r(()=>[...e[7]||(e[7]=[i(" Mit der Kundennummer wird automatisch die zugehörige Vertragsnummer von Rabot abgerufen. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n(d,{title:"Vertragsnummer",options:s.contractOptions,"model-value":t.flexibleTariff.configuration.contract_number,"onUpdate:modelValue":e[2]||(e[2]=u=>t.updateConfiguration(u,"configuration.contract_number"))},{help:r(()=>[...e[8]||(e[8]=[i(" Wähle eine der verfügbaren Vertragsnummern aus. Diese wird für den Zugriff auf die Tarif-Daten benötigt. ",-1)])]),_:1},8,["options","model-value"])])}const B=c(w,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/rabot/flexible_tariff.vue"]]);export{B as default}; +import{a as b}from"./vendor-axios-DdFvNBv9.js";import{F as g}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as c,l as a,k as p,e as h,m as n,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"FlexibleTariffRabot",mixins:[g],data(){return{contractNumbers:[]}},computed:{contractOptions(){const t=this.contractNumbers.map(e=>({value:e,text:e}));return t.length===0&&this.flexibleTariff.configuration.contract_number&&t.push({value:this.flexibleTariff.configuration.contract_number,text:this.flexibleTariff.configuration.contract_number}),t}},methods:{rabot_login_window(){const t=window.open("about:blank","RabotLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus(),this.createAuthUrl().then(e=>{t.location.href=e.authorizationUrl}).catch(e=>{t.close(),console.error("Fehler beim Erstellen des Rabot-Links:",e),this.$root.postClientMessage("Fehler beim Erstellen der Rabot-Authentifizierung: "+(e.response?.data?.message||e.message),"danger")})},async createAuthUrl(){const t=await b.post("https://rabot.openwb.de/rabot-auth.php",{headers:{"Content-Type":"application/json"}});if(!t.data.success)throw new Error("Server-Fehler beim Erstellen der Rabot-Authentifizierung");return t.data},async fetch_contract_number(){if(!this.flexibleTariff.configuration.customer_number){this.$root.postClientMessage("Bitte gib zuerst eine Kundennummer ein.","warning");return}try{const t=await b.get(`https://rabot.openwb.de/rabot-proxy.php/customers/${this.flexibleTariff.configuration.customer_number}/contracts`,{headers:{"Content-Type":"application/json"}});if(t.data&&t.data.contractNumbers&&t.data.contractNumbers.length>0){const e=t.data.contractNumbers;this.contractNumbers=e;const o=e[0];this.updateConfiguration(o,"configuration.contract_number"),e.length>1?this.$root.postClientMessage(`${e.length} Verträge gefunden. Erster Vertrag ausgewählt: ${o}. Du kannst einen anderen Vertrag aus der Liste wählen.`,"success"):this.$root.postClientMessage("Vertragsnummer erfolgreich abgerufen: "+o,"success")}else this.$root.postClientMessage("Keine Verträge für diese Kundennummer gefunden.","warning")}catch(t){console.error("Fehler beim Abrufen der Vertragsnummer:",t),this.$root.postClientMessage("Fehler beim Abrufen der Vertragsnummer: "+(t.response?.data?.message||t.message),"danger")}}}},_={class:"flexible-tariff-rabot"};function x(t,e,o,C,V,s){const l=a("openwb-base-alert"),m=a("openwb-base-button-input"),f=a("openwb-base-text-input"),d=a("openwb-base-select-input");return p(),h("div",_,[n(l,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[i(" Über die Rabot-Authentifizierung kannst Du Deine Stromtarif-Daten für die Ladeplanung nutzen. Nach der Anmeldung bei Rabot wird eine Kundennummer in der Adresszeile angezeigt, die Du hier einfügen musst. ",-1)])]),_:1}),n(l,{subtype:"warning"},{default:r(()=>[...e[4]||(e[4]=[i(" Die Rabot-Authentifizierung kann nur über einen Computer oder die openWB-Cloud (remote.openwb.de) durchgeführt werden. Das Eintragen von Kunden- und Vertragsnummer ist nicht ausreichend, da nach der Anmeldung bei Rabot noch die Zustimmung erteilt werden muss. ",-1)])]),_:1}),n(m,{title:"1. Bei Rabot anmelden","button-text":"Bei Rabot Anmelden",subtype:"success",onButtonClicked:e[0]||(e[0]=()=>s.rabot_login_window())},{help:r(()=>[...e[5]||(e[5]=[i(" Es wird ein neues Browserfenster geöffnet, in dem Du Dich bei Rabot mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1}),n(f,{title:"2. Kundennummer kopieren und einfügen",required:"","model-value":t.flexibleTariff.configuration.customer_number,"onUpdate:modelValue":e[1]||(e[1]=u=>t.updateConfiguration(u,"configuration.customer_number"))},{help:r(()=>[...e[6]||(e[6]=[i(" Nachdem die Rabot-Authentifizierung abgeschlossen wurde, wird im geöffneten Browserfenster eine Kundennummer angezeigt. Diese kopieren und hier einfügen. Diese wird benötigt, um auf Ihre Tarif-Daten zugreifen zu können. ",-1)])]),_:1},8,["model-value"]),n(m,{title:"3. Vertragsnummer abrufen","button-text":"Vertrag laden",subtype:"info",disabled:!t.flexibleTariff.configuration.customer_number,onButtonClicked:s.fetch_contract_number},{help:r(()=>[...e[7]||(e[7]=[i(" Mit der Kundennummer wird automatisch die zugehörige Vertragsnummer von Rabot abgerufen. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n(d,{title:"Vertragsnummer",options:s.contractOptions,"model-value":t.flexibleTariff.configuration.contract_number,"onUpdate:modelValue":e[2]||(e[2]=u=>t.updateConfiguration(u,"configuration.contract_number"))},{help:r(()=>[...e[8]||(e[8]=[i(" Wähle eine der verfügbaren Vertragsnummern aus. Diese wird für den Zugriff auf die Tarif-Daten benötigt. ",-1)])]),_:1},8,["options","model-value"])])}const B=c(w,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/rabot/flexible_tariff.vue"]]);export{B as default}; diff --git a/web/settings/assets/grid_fee-BoQDv0Kx.js b/web/settings/assets/grid_fee-vdJ6pKGQ.js similarity index 98% rename from web/settings/assets/grid_fee-BoQDv0Kx.js rename to web/settings/assets/grid_fee-vdJ6pKGQ.js index 142bf12bb6..80cc364a2c 100644 --- a/web/settings/assets/grid_fee-BoQDv0Kx.js +++ b/web/settings/assets/grid_fee-vdJ6pKGQ.js @@ -1 +1 @@ -import{G as H}from"./GeneralChargeConfiguration-tvikf7OT.js";import{_ as S,k as i,e as p,x as u,f as V,l as s,y as w,D as N,q as a,m as r,z as C,A as c,u as F,K as y,L as x,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,m,v,g,n){return i(),p("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[V(t.$slots,"start")]),u("div",K,[V(t.$slots,"end")])])]),u("div",M,[V(t.$slots,"action")])])])}const G=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const R={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:G},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const m=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;m.push({value:d,text:d})}return m},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},L=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),k=s("openwb-base-setting-element");return i(),w(k,null,N({title:a(()=>[V(t.$slots,"title",{},()=>[c($(m.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>[...e[0]||(e[0]=[c(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[c(" Ende ",-1)])]),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(i(),p("div",j," Keine Zeitbereiche definiert! ")):F("",!0),(i(!0),p(y,null,x(n.value,(_,b)=>(i(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[0]=o,class:"form-control",required:"",onChange:o=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(n.generateTimeOptions("00:00","23:00"),o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,J))),128))],40,L),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[1]=o,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(g.endOptions[b],o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(i(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(o=>n.removeTime(b),["stop"])},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[V(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(R,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),k=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),o=s("openwb-base-card");return i(),w(o,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[c($(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(5)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const oe=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const se={name:"GridFeeFixedHours",components:{FontAwesomeIcon:O,FixedTariff:oe},mixins:[H],computed:{value:{get(){return this.gridFee},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},ie={class:"grid-fee-fixed-hours"};function re(t,e,m,v,g,n){const f=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),k=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return i(),p("div",ie,[r(f,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[c(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),r(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=o=>n.value.configuration.default_price=parseFloat((o/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[c(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=c(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(i(),w(f,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[c(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),c(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(i(!0),p(y,null,x(n.value.configuration.tariffs,(o,l)=>(i(),w(b,{key:l,"model-value":o,"onUpdate:modelValue":q=>n.value.configuration.tariffs[l]=q,onDelete:q=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(se,[["render",re],["__scopeId","data-v-5ed1a321"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/grid_fee.vue"]]);export{be as default}; +import{G as H}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as S,k as i,e as p,x as u,f as V,l as s,y as w,D as N,q as a,m as r,z as C,A as c,u as F,K as y,L as x,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,m,v,g,n){return i(),p("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[V(t.$slots,"start")]),u("div",K,[V(t.$slots,"end")])])]),u("div",M,[V(t.$slots,"action")])])])}const G=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const R={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:G},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const m=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;m.push({value:d,text:d})}return m},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},L=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),k=s("openwb-base-setting-element");return i(),w(k,null,N({title:a(()=>[V(t.$slots,"title",{},()=>[c($(m.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>[...e[0]||(e[0]=[c(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[c(" Ende ",-1)])]),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(i(),p("div",j," Keine Zeitbereiche definiert! ")):F("",!0),(i(!0),p(y,null,x(n.value,(_,b)=>(i(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[0]=o,class:"form-control",required:"",onChange:o=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(n.generateTimeOptions("00:00","23:00"),o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,J))),128))],40,L),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[1]=o,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(g.endOptions[b],o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(i(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(o=>n.removeTime(b),["stop"])},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[V(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(R,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),k=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),o=s("openwb-base-card");return i(),w(o,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[c($(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(5)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const oe=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const se={name:"GridFeeFixedHours",components:{FontAwesomeIcon:O,FixedTariff:oe},mixins:[H],computed:{value:{get(){return this.gridFee},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},ie={class:"grid-fee-fixed-hours"};function re(t,e,m,v,g,n){const f=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),k=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return i(),p("div",ie,[r(f,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[c(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),r(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=o=>n.value.configuration.default_price=parseFloat((o/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[c(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=c(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(i(),w(f,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[c(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),c(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(i(!0),p(y,null,x(n.value.configuration.tariffs,(o,l)=>(i(),w(b,{key:l,"model-value":o,"onUpdate:modelValue":q=>n.value.configuration.tariffs[l]=q,onDelete:q=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(se,[["render",re],["__scopeId","data-v-5ed1a321"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/grid_fee.vue"]]);export{be as default}; diff --git a/web/settings/assets/index-CyH1Au4V.js b/web/settings/assets/index-D_eD74fL.js similarity index 96% rename from web/settings/assets/index-CyH1Au4V.js rename to web/settings/assets/index-D_eD74fL.js index c96d165cff..821dd5ae5e 100644 --- a/web/settings/assets/index-CyH1Au4V.js +++ b/web/settings/assets/index-D_eD74fL.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Status-DYns2lPM.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-chartjs-0RUe1kvq.js","assets/vendor-luxon-BDx6lZXm.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/Status-C2EBkHqs.css","assets/ChargeLog-Bgx1bSon.js","assets/ChargeLog-D2ZLixbI.css","assets/Chart-q4SmWErO.js","assets/Chart-BggLkBbQ.css","assets/GeneralConfiguration-CMMYSFfh.js","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/IdentificationConfiguration-NvHT7cba.js","assets/DisplayConfiguration-BEaqDSWf.js","assets/GeneralChargeConfiguration-tvikf7OT.js","assets/SurplusChargeConfiguration-Mmn_2MTQ.js","assets/ActiveBatControlConfiguration-DEBiR6H9.js","assets/HardwareInstallation-caZ0sA9z.js","assets/LoadManagementConfiguration-DVcGfr2E.js","assets/OpenwbSortableList-BORHS8nd.js","assets/OpenwbSortableList-C11EhIQj.css","assets/ChargePointInstallation-C3IshOKk.js","assets/ChargePointInstallation-37TSBtDo.css","assets/VehicleConfiguration-TZSwJptx.js","assets/IoConfiguration-vfX10CsO.js","assets/CloudConfiguration-Cu4M2u7m.js","assets/MqttBridgeConfiguration-hMk_UUpV.js","assets/DebugConfiguration-D4jVRy6l.js","assets/DebugConfiguration-CN753w98.css","assets/Support-LbG1Bt3q.js","assets/LegalSettings-DO80lenG.js","assets/SystemConfiguration-BYwqt7v1.js","assets/SystemConfiguration-BWslT2W-.css","assets/SecurityConfiguration-BMtEoSIk.js","assets/DataManagement-FAi2cjUn.js","assets/InstallAssistant-D7lW6Pyr.js","assets/Error-BZ1TitTh.js","assets/TestingStore-D88H008a.js"])))=>i.map(i=>d[i]); -import{_ as S,e as c,f as _,j as C,k as i,l as g,m as b,q as m,u as d,x as l,y as f,z as E,A as h,D as P,E as O,F as $,G as K,I as V,J as w,K as M,L as q,M as Q,N as de,O as ue,P as ce,Q as pe,T as j,R as G,n as me,S as fe,U as ge,V as he,W as be,X as _e,Y as ve,Z as ye,$ as we}from"./vendor-Bo8v-nQD.js";import{l as A,f as Y,a as X,F as T,b as ke,c as Se,d as N,e as Ce,g as U,h as Be,i as $e,j as Ie,k as Oe,m as Ae,n as Te,o as Me,p as Ve,q as qe,r as Pe,s as De,t as Le,u as Ee,v as xe,w as ee,x as Re,y as We,z as je,A as ze,B as Ne,C as te,D as Ue,E as Fe,G as He,H as Ke,I as Ge,J as Je,K as Ze,L as Qe,M as Ye,N as Xe,O as et,P as se,Q as tt,R as st,S as nt,T as ot,U as it}from"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import{p as at,a as lt}from"./vendor-axios-DdFvNBv9.js";import"./vendor-jquery-CEMonh9Y.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))u(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&u(a)}).observe(document,{childList:!0,subtree:!0});function s(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function u(o){if(o.ep)return;o.ep=!0;const n=s(o);fetch(o.href,n)}})();const rt={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function dt(e,t,s,u,o,n){return i(),c("div",{class:C(["card-text alert","alert-"+s.subtype])},[_(e.$slots,"default",{},void 0,!0)],2)}const ut=S(rt,[["render",dt],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),ct=Object.freeze(Object.defineProperty({__proto__:null,default:ut},Symbol.toStringTag,{value:"Module"}));A.add(Y,X);const pt={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:T},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},mt={key:0,class:"col-md-4 col-form-label"},ft={class:"form-row"},gt={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function ht(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",{class:C(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),c("div",mt,[_(e.$slots,"title",{},void 0,!0),b(p,{description:`Hilfe ${o.showHelp?"verbergen":"anzeigen"}`},{default:m(()=>[e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable ml-1",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),_:1},8,["description"])])):d("",!0),l("div",{class:C(e.$slots.title?"col-md-8":"col px-0")},[l("div",{class:C({"form-row":e.$slots.title})},[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("*ELEMENT MISSING*",-1))],!0)],2),l("div",ft,[o.showHelp?(i(),c("span",gt,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],2)],2)}const D=S(pt,[["render",ht],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),bt=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"})),_t={name:"BaseSettingComponents",data(){return{uid:Math.random().toString(36).substring(2,15)}}},L=S(_t,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/BaseSettingComponents.vue"]]);A.add(ke,Se,N,Ce);const vt={name:"OpenwbArrayInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]},validElements:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},disabled:{type:Boolean,default:()=>!1},readonly:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:""}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},remainingElements(){return this.validElements.length===0?[]:this.validElements.filter(e=>!this.value.includes(e.value||e))},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)&&(this.validElements.length===0||this.validElements.includes(this.newTag)||this.validElements.some(e=>e.value===this.newTag))&&this.$refs.tagInput?.checkValidity()}},tagLabel(){return e=>{const t=this.validElements.find(s=>(s.value||s)===e);return t?t.label||t.value||t:e}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},yt={key:0,class:"w-100"},wt={class:"input-group"},kt={class:"input-group-prepend"},St={class:"input-group-text"},Ct=["id","disabled"],Bt=["id","disabled"],$t={value:"",disabled:""},It=["value"],Ot={class:"input-group-append"},At={class:"tagList mt-1 w-100"},Tt={key:0,class:"noTag"};function Mt(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[s.readonly||s.disabled?d("",!0):(i(),c("div",yt,[l("div",wt,[l("div",kt,[l("div",St,[_(e.$slots,"input-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0)])]),s.validElements.length===0?O((i(),c("input",$({key:0,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>o.newTag=r),type:"text",class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[1]||(t[1]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),null,16,Ct)),[[V,o.newTag]]):O((i(),c("select",$({key:1,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[2]||(t[2]=r=>o.newTag=r),class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[3]||(t[3]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),[l("option",$t,w(n.remainingElements.length>0?"Bitte wählen...":"Keine weiteren Optionen verfügbar"),1),(i(!0),c(M,null,q(n.remainingElements,(r,v)=>(i(),c("option",{key:v,value:r.value||r},w(r.label||r.value||r),9,It))),128))],16,Bt)),[[Q,o.newTag]]),l("div",Ot,[l("div",{class:C(["input-group-text",n.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[4]||(t[4]=(...r)=>n.addTag&&n.addTag(...r))},[_(e.$slots,"input-add",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])])])),l("div",At,[n.value.length==0?(i(),c("span",Tt,[b(a,{icon:["fas","info-circle"]}),h(" "+w(s.noElementsMessage),1)])):d("",!0),(i(!0),c(M,null,q(n.value,(r,v)=>(i(),c("span",{key:v,class:"tag"},[_(e.$slots,"element-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0),h(" "+w(n.tagLabel(r))+" ",1),s.readonly||s.disabled?d("",!0):(i(),f(a,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:k=>n.removeTag(v)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Vt=S(vt,[["render",Mt],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),qt=Object.freeze(Object.defineProperty({__proto__:null,default:Vt},Symbol.toStringTag,{value:"Module"})),Pt={name:"OpenwbAvatar"},Dt={class:"avatar"};function Lt(e,t,s,u,o,n){return i(),c("div",Dt,[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("?",-1))],!0)])}const Et=S(Pt,[["render",Lt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),xt=Object.freeze(Object.defineProperty({__proto__:null,default:Et},Symbol.toStringTag,{value:"Module"}));A.add(U);const Rt={name:"OpenwbButtonRow",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{buttons:{type:Array,required:!0},modelValue:{type:[String,Number,Boolean],default:null},disabled:{type:Boolean,default:!1},uid:{type:String,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Wt={class:"btn-group btn-block btn-group-toggle"},jt=["for"],zt=["id","value","disabled","onClick"];function Nt(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",Wt,[(i(!0),c(M,null,q(s.buttons,p=>(i(),c("label",{key:p.buttonValue,class:C(["btn btn-same-size btn-centered",[{active:s.modelValue===p.buttonValue},{disabled:s.disabled},p.class?p.class:"btn-outline-info"]]),for:`${s.uid}-${p.buttonValue}`},[l("span",null,[O(l("input",$({id:`${s.uid}-${p.buttonValue}`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"radio",value:p.buttonValue},{ref_for:!0},e.$attrs,{disabled:s.disabled,onClick:r=>e.$emit("button-click",p.buttonValue)}),null,16,zt),[[de,n.value]]),_(e.$slots,"label-"+p.buttonValue,{},()=>[h(w(p.text),1)],!0),t[1]||(t[1]=l("span",null," ",-1)),b(a,{icon:["fas","check"],style:ue([n.value==p.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],10,jt))),128))])}const ne=S(Rt,[["render",Nt],["__scopeId","data-v-4bd221b6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonRow.vue"]]),Ut=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"})),Ft={name:"OpenwbButtonGroupInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseButtonRow:ne},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0},disabled:{type:Boolean,required:!1,default:!1},maxButtonsPerRow:{type:Number,default:Number.POSITIVE_INFINITY}},emits:["update:modelValue","button-click"],data(){return{containerWidth:0}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},maxButtonsPerRowAuto(){return this.containerWidth<=200?1:this.containerWidth<=360?2:this.containerWidth<=550?3:1/0},buttonRows(){const e=[];for(let t=0;t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Ht,[(i(!0),c(M,null,q(n.buttonRows,(r,v)=>(i(),f(a,$({key:v,buttons:r,uid:e.uid,"model-value":n.value,disabled:s.disabled},{ref_for:!0},e.$attrs,{"onUpdate:modelValue":t[0]||(t[0]=k=>n.value=k),onButtonClick:t[1]||(t[1]=k=>e.$emit("button-click",k))}),P({_:2},[q(r,k=>({name:`label-${k.buttonValue}`,fn:m(y=>[_(e.$slots,`label-${k.buttonValue}`,$({ref_for:!0},y),void 0,!0)])}))]),1040,["buttons","uid","model-value","disabled"]))),128))],512)]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Gt=S(Ft,[["render",Kt],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Jt=Object.freeze(Object.defineProperty({__proto__:null,default:Gt},Symbol.toStringTag,{value:"Module"})),Zt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},Qt=["title"];function Yt(e,t,s,u,o,n){return i(),c("button",{type:"button",class:"btn btn-block",title:s.tooltip,onClick:t[0]||(t[0]=E((...a)=>n.click&&n.click(...a),["prevent"]))},[_(e.$slots,"default",{},()=>[h(w(s.title),1)],!0)],8,Qt)}const oe=S(Zt,[["render",Yt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:oe},Symbol.toStringTag,{value:"Module"})),es={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseClickButton:oe},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function ts(e,t,s,u,o,n){const a=g("openwb-base-click-button"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[b(a,$({class:(s.disabled?"btn-outline-":"btn-")+s.subtype,disabled:s.disabled},e.$attrs,{onButtonClicked:n.handleClick}),{default:m(()=>[h(w(s.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const ss=S(es,[["render",ts],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),ns=Object.freeze(Object.defineProperty({__proto__:null,default:ss},Symbol.toStringTag,{value:"Module"}));A.add(Be,$e);const os={name:"OpenwbCard",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},is={class:"form-group mb-0"},as={class:"form-row vaRow mb-0 py-2"},ls={class:"col"},rs={class:"card-actions ml-4"},ds={key:0,class:"card-actions mr-2"},us={key:2,class:"card-footer"};function cs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",{class:C(["card","border-"+s.subtype])},[s.title!==void 0||e.$slots.header?(i(),c("div",{key:0,class:C(["card-header py-1","bg-"+s.subtype]),onClick:t[0]||(t[0]=(...p)=>n.toggleBody&&n.toggleBody(...p))},[l("div",is,[l("div",as,[l("div",ls,[_(e.$slots,"header",{collapsed:o.isCollapsed},()=>[h(w(s.title),1)],!0)])])]),l("div",rs,[e.$slots.actions?(i(),c("div",ds,[_(e.$slots,"actions",{collapsed:o.isCollapsed},void 0,!0)])):d("",!0),s.collapsible?(i(),f(a,{key:1,icon:o.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):d("",!0)])],2)):d("",!0),o.isCollapsed===!1?(i(),c("div",$({key:1,class:["card-body",[s.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+s.bodyBg]]},e.$attrs),[_(e.$slots,"default",{},void 0,!0)],16)):d("",!0),e.$slots.footer&&o.isCollapsed===!1?(i(),c("div",us,[_(e.$slots,"footer",{},void 0,!0)])):d("",!0)],2)}const ps=S(os,[["render",cs],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),ms=Object.freeze(Object.defineProperty({__proto__:null,default:ps},Symbol.toStringTag,{value:"Module"})),fs={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},gs={class:"col-md-8"},hs=["id"];function bs(e,t,s,u,o,n){const a=g("openwb-base-setting-element");return i(),f(a,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[l("div",gs,[O(l("input",$({id:`${e.uid}-checkbox-input`,"onUpdate:modelValue":t[0]||(t[0]=p=>n.value=p),class:"form-control",type:"checkbox"},e.$attrs),null,16,hs),[[ce,n.value]])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const _s=S(fs,[["render",bs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),vs=Object.freeze(Object.defineProperty({__proto__:null,default:_s},Symbol.toStringTag,{value:"Module"}));A.add(Ie);const ys={name:"OpenwbColorPicker",components:{FontAwesomeIcon:T},mixins:[L],props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},ws={class:"wrapper"},ks=["id","value","title"];function Ss(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",ws,[l("input",{id:`${e.uid}-color-input`,type:"color",class:"custom-color-picker",value:s.modelValue,title:`Farbe: ${s.modelValue}`,onInput:t[0]||(t[0]=r=>n.changed(r.target.value))},null,40,ks),s.defaultColor?(i(),f(p,{key:0,description:`Zurücksetzen auf Standardfarbe (${s.defaultColor})`},{default:m(()=>[b(a,{class:"ml-1 clickable",icon:["fas","rotate-left"],onClick:t[1]||(t[1]=r=>n.changed(s.defaultColor))})]),_:1},8,["description"])):d("",!0)])}const Cs=S(ys,[["render",Ss],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Bs=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"})),{text:J,copy:$s,copied:Is,isSupported:Os}=pe({copiedDuring:3e3,legacy:!0});A.add(Oe,Ae);const As={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:T},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?.innerText?this.$refs.content.innerText.trim():""},isCopied(){return Is.value&&J.value===this.contentText},copySupported(){return Os.value}},methods:{click(){this.copySupported&&$s(this.contentText).then(()=>{console.debug("Text copied to clipboard:",J.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},Ts=["title"],Ms={ref:"content"};function Vs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("span",{title:n.copySupported&&!n.isCopied?s.tooltip:"",class:C({"copy-me":n.copySupported&&!n.isCopied}),onClick:t[0]||(t[0]=E((...p)=>n.click&&n.click(...p),["stop"]))},[l("span",Ms,[_(e.$slots,"default",{},void 0,!0)],512),n.copySupported?(i(),f(a,{key:0,class:"ml-1",icon:n.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):d("",!0)],10,Ts)}const qs=S(As,[["render",Vs],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),Ps=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));A.add(Y,X,U);const Ds={name:"OpenwbHeading",components:{FontAwesomeIcon:T},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ls={class:"heading-text"},Es={key:0,class:"actions"},xs={class:""},Rs={key:0,class:"form-row alert alert-info small flex-fill"};function Ws(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c(M,null,[l("div",$({class:"card-text card-text-heading"},e.$attrs),[l("div",Ls,[_(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),e.$slots.actions?(i(),c("span",Es,[_(e.$slots,"actions",{},void 0,!0)])):d("",!0)],16),l("div",xs,[o.showHelp?(i(),c("span",Rs,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],64)}const js=S(Ds,[["render",Ws],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),zs=Object.freeze(Object.defineProperty({__proto__:null,default:js},Symbol.toStringTag,{value:"Module"}));A.add(Te,Me,Ve,qe);const R={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},Ns={name:"OpenwbIoPattern",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return R[e].icon},getIconClass(e){return R[e].iconClass},getTitle(e){return R[e].title},toggleInput(e,t){this.value[e]=R[t].nextValue}}};function Us(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip"),r=g("openwb-base-setting-element");return i(),f(r,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[(i(!0),c(M,null,q(n.value,(v,k)=>(i(),c("span",{key:k},[b(p,{description:n.getTitle(v)},{default:m(()=>[b(a,{icon:n.getIcon(v),class:C([n.getIconClass(v),"fa-fw clickable"]),size:"2x",transform:v=="undefined"?"shrink-6":null,mask:v=="undefined"?["fas","square"]:null,onClick:E(y=>n.toggleInput(k,v),["stop","prevent"]),onMousedown:t[0]||(t[0]=E(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=E(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Fs=S(Ns,[["render",Us],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),Hs=Object.freeze(Object.defineProperty({__proto__:null,default:Fs},Symbol.toStringTag,{value:"Module"})),Ks={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=[...this.buttons]),e.findIndex(t=>t.event==="close")===-1&&!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)}}},Gs={class:"modal-content"},Js={class:"modal-title"},Zs={class:"modal-body"},Qs=["disabled","data-event"];function Ys(e,t,s,u,o,n){return s.show?(i(),f(j,{key:0,to:"body"},[t[5]||(t[5]=l("div",{class:"modal-backdrop fade show"},null,-1)),l("div",{class:"modal fade d-block show",role:"dialog",onClick:t[3]||(t[3]=(...a)=>n.handleClick&&n.handleClick(...a))},[l("div",{class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document",onClick:t[2]||(t[2]=E(()=>{},["stop"]))},[l("div",Gs,[l("div",{class:C(["modal-header","bg-"+s.subtype])},[l("h4",Js,w(s.title),1),s.preventClose?d("",!0):(i(),c("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>n.handleClick&&n.handleClick(...a))}," × "))],2),l("div",Zs,[_(e.$slots,"default",{},()=>[t[4]||(t[4]=h("# Body #",-1))])]),n.myButtons.length>0?(i(),c("div",{key:0,class:C(["modal-footer d-flex","justify-content-"+s.footerAlignment])},[(i(!0),c(M,null,q(n.myButtons,a=>(i(),c("button",{key:a.text,disabled:a.disabled===!0,type:"button",class:C(["btn",(a.disabled?"btn-outline-":"btn-")+(a.subtype??"secondary")]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...p)=>n.handleClick&&n.handleClick(...p))},w(a.text),11,Qs))),128))],2)):d("",!0)])])])])):d("",!0)}const Xs=S(Ks,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Xs},Symbol.toStringTag,{value:"Module"}));A.add(Pe);const tn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},sn={class:"input-group"},nn={class:"input-group-prepend"},on={class:"input-group-text"},an=["id"],ln={key:0,class:"input-group-append"},rn={class:"input-group-text"},dn={key:1,class:"input-group-append"},un={class:"input-group-text p-0"};function cn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",sn,[l("div",nn,[l("div",on,[b(a,{icon:["fas","calculator"]})])]),O(l("input",$({id:`${e.uid}-number-input`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,an),[[V,n.value,void 0,{lazy:!0,number:!0}]]),s.unit?(i(),c("div",ln,[l("div",rn,w(s.unit),1)])):d("",!0),e.$slots.append?(i(),c("div",dn,[l("div",un,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pn=S(tn,[["render",cn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),mn=Object.freeze(Object.defineProperty({__proto__:null,default:pn},Symbol.toStringTag,{value:"Module"}));A.add(De,Le);const fn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",gn,[l("div",hn,[n.label?(i(),c("label",{key:0,class:"col-2 pl-0 col-form-label valueLabel",for:`${e.uid}-button`},w(n.label),9,bn)):d("",!0),l("button",{id:`${e.uid}-button`,class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[0]||(t[0]=(...r)=>n.decrement&&n.decrement(...r))},[b(a,{icon:["fas","step-backward"]})],8,_n),l("div",vn,[O(l("input",$({"onUpdate:modelValue":t[1]||(t[1]=r=>n.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:s.min,max:s.max,step:s.step},e.$attrs),null,16,yn),[[V,n.sliderValue,void 0,{number:!0}]])]),l("button",{class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[2]||(t[2]=(...r)=>n.increment&&n.increment(...r))},[b(a,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const kn=S(fn,[["render",wn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:kn},Symbol.toStringTag,{value:"Module"}));A.add(N);const Cn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Bn={class:"w-100"},$n={class:"input-group"},In={key:0,class:"input-group-prepend"},On={class:"input-group-text"},An=["id"],Tn=["value"],Mn=["value"],Vn=["label"],qn=["value"],Pn={key:1,class:"input-group-append"};function Dn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({default:m(()=>[l("div",Bn,[l("div",$n,[e.$slots.prefix?(i(),c("div",In,[l("div",On,[_(e.$slots,"prefix")])])):d("",!0),O(l("select",$({id:`${e.uid}-select`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"col form-control"},e.$attrs),[s.notSelected!==void 0?(i(),c("option",{key:0,value:s.emptyValue,disabled:""}," -- "+w(s.notSelected)+" -- ",9,Tn)):d("",!0),(i(!0),c(M,null,q(s.options,r=>(i(),c("option",{key:r.value,value:r.value},w(r.text),9,Mn))),128)),(i(!0),c(M,null,q(s.groups,r=>(i(),c("optgroup",{key:r.label,label:r.label},[(i(!0),c(M,null,q(r.options,v=>(i(),c("option",{key:v.value,value:v.value},w(v.text),9,qn))),128))],8,Vn))),128))],16,An),[[Q,n.value]]),s.addButton?(i(),c("div",Pn,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})])],2)])):d("",!0)])])]),_:2},[e.$slots.title||s.title?{name:"title",fn:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"1"}:void 0]),1024)}const Ln=S(Cn,[["render",Dn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),En=Object.freeze(Object.defineProperty({__proto__:null,default:Ln},Symbol.toStringTag,{value:"Module"}));A.add(U,Ee,xe);const xn={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:T},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0},saveLabel:{type:String,default:"Speichern"},saveDisabled:{type:Boolean,default:!1},saveId:{type:String,default:"saveSettingsBtn"},resetLabel:{type:String,default:"Änderungen verwerfen"},resetDisabled:{type:Boolean,default:!1},resetId:{type:String,default:"modalResetBtn"},defaultsLabel:{type:String,default:"Werkseinstellungen"},defaultsDisabled:{type:Boolean,default:!1},defaultsId:{type:String,default:"modalDefaultsBtn"}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},Rn={class:"row justify-content-center mb-1"},Wn={class:"col-md-4 d-flex py-1 justify-content-center"},jn=["id","disabled"],zn={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},Nn=["id","disabled"],Un={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},Fn=["id","disabled"];function Hn(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog"),p=g("font-awesome-icon");return i(),c(M,null,[b(a,{show:n.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:m(()=>[...t[3]||(t[3]=[h(" Einstellungen werden gespeichert... ",-1)])]),_:1},8,["show"]),b(a,{show:o.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:n.handleModalReset},{default:m(()=>[...t[4]||(t[4]=[h(" Willst Du die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])]),_:1},8,["show","onModalResult"]),b(a,{show:o.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:n.handleModalDefaults},{default:m(()=>[...t[5]||(t[5]=[h(" Willst Du wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])]),_:1},8,["show","onModalResult"]),l("div",Rn,[l("div",Wn,[l("button",{id:s.saveId,type:"button",class:C(["btn btn-block",[{disabled:s.saveDisabled},s.saveDisabled?"btn-outline-success":"btn-success"]]),disabled:s.saveDisabled,onClick:t[0]||(t[0]=(...r)=>n.saveSettings&&n.saveSettings(...r))},[h(w(s.saveLabel)+" ",1),b(p,{icon:["fas","check"]})],10,jn)]),s.hideReset?d("",!0):(i(),c("div",zn,[l("button",{id:s.resetId,type:"button",class:C(["btn btn-block",[{disabled:s.resetDisabled},s.resetDisabled?"btn-outline-warning":"btn-warning"]]),disabled:s.resetDisabled,onClick:t[1]||(t[1]=(...r)=>n.showResetModal&&n.showResetModal(...r))},[h(w(s.resetLabel)+" ",1),b(p,{icon:["fas","undo"]})],10,Nn)])),s.hideDefaults?d("",!0):(i(),c("div",Un,[l("button",{id:s.defaultsId,type:"button",class:C(["btn btn-block",[{disabled:s.defaultsDisabled},s.defaultsDisabled?"btn-outline-danger":"btn-danger"]]),disabled:s.defaultsDisabled,onClick:t[2]||(t[2]=(...r)=>n.showDefaultsModal&&n.showDefaultsModal(...r))},[h(w(s.defaultsLabel)+" ",1),b(p,{icon:["fas","times"]})],10,Fn)]))])],64)}const Kn=S(xn,[["render",Hn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),Gn=Object.freeze(Object.defineProperty({__proto__:null,default:Kn},Symbol.toStringTag,{value:"Module"}));A.add(ee,Re,We,je,ze,Ne,te,Ue,Fe,He,Ke,N,Ge,Je);const Jn={name:"OpenwbTextInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","group","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},validator:{type:Function,required:!1,default:null},showQuickButtons:{type:Boolean,default:!1},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.validator){console.log("Validating input value:",e);const t=this.validator(e);console.log("Validation result:",t);const s=this.inputRef;t!==!0?(console.log("Marking input as invalid",JSON.stringify(this.$refs)),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(t),this.inputInvalid=!0,this.tempValue=e):(console.log("Input is valid"),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(""),this.inputInvalid=!1)}if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"},addDisabled:{get(){return this.value===this.emptyValue}}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,s=new Date(this.modelValue);switch(this.subtype){case"date":s.setDate(s.getDate()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0")+"-"+String(s.getDate()).padStart(2,"0");break;case"month":s.setMonth(s.getMonth()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0");break;case"year":s.setYear(s.getFullYear()+e),t=String(s.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Zn,[l("div",Qn,[l("div",Yn,[l("div",Xn,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="email"?(i(),f(a,{key:1,icon:["fas","envelope"]})):d("",!0),s.subtype=="host"?(i(),f(a,{key:2,icon:["fas","network-wired"]})):d("",!0),s.subtype=="url"?(i(),f(a,{key:3,icon:["fas","globe"]})):d("",!0),s.subtype=="user"?(i(),f(a,{key:4,icon:["fas","user"]})):d("",!0),s.subtype=="group"?(i(),f(a,{key:5,icon:["fas","users"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:6,icon:["fas","code"]})):d("",!0),s.subtype=="password"?(i(),f(a,{key:7,icon:o.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):d("",!0),s.subtype=="time"?(i(),f(a,{key:8,icon:["fas","clock"]})):d("",!0),s.subtype=="date"||s.subtype=="month"||s.subtype=="year"?(i(),f(a,{key:9,icon:["fas","calendar-day"]})):d("",!0)])]),["text","user","group"].includes(s.subtype)?O((i(),c("input",$({key:0,id:`${e.uid}-text-input`,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"text",class:["form-control",{invalid:o.inputInvalid}]},e.$attrs,{pattern:s.pattern}),null,16,eo)),[[V,n.value]]):d("",!0),s.subtype=="json"?O((i(),c("input",$({key:1,id:`${e.uid}-json-input`,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,to)),[[V,n.value]]):d("",!0),s.subtype=="password"?O((i(),c("input",$({key:2,id:`${e.uid}-password-input`,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>n.value=r),type:o.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,so)),[[G,n.value]]):d("",!0),s.subtype=="host"?O((i(),c("input",$({key:3,id:`${e.uid}-host-input`,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.hostPattern}),null,16,no)),[[V,n.value]]):d("",!0),["email","url"].includes(s.subtype)?O((i(),c("input",$({key:4,id:`${e.uid}-url-input`,ref:"urlInput","onUpdate:modelValue":t[4]||(t[4]=r=>n.value=r),type:s.subtype,class:"form-control"},e.$attrs),null,16,oo)),[[G,n.value]]):d("",!0),s.subtype=="time"?O((i(),c("input",$({key:5,id:`${e.uid}-time-input`,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>n.value=r),type:"time",class:"form-control"},e.$attrs),null,16,io)),[[V,n.value]]):d("",!0),s.subtype=="date"?O((i(),c("input",$({key:6,id:`${e.uid}-date-input`,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>n.value=r),type:"date",class:"form-control"},e.$attrs),null,16,ao)),[[V,n.value]]):d("",!0),s.subtype=="month"?O((i(),c("input",$({key:7,id:`${e.uid}-month-input`,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>n.value=r),type:"month",class:"form-control"},e.$attrs),null,16,lo)),[[V,n.value]]):d("",!0),s.subtype=="year"?O((i(),c("input",$({key:8,id:`${e.uid}-year-input`,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,ro)),[[V,n.value]]):d("",!0),s.unit?(i(),c("div",uo,[l("div",co,w(s.unit),1)])):d("",!0),s.subtype=="password"?(i(),c("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>n.togglePassword&&n.togglePassword(...r))},[l("div",po,[b(a,{icon:o.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>n.modify(-1))},[...t[13]||(t[13]=[l("div",{class:"input-group-text"},"-",-1)])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>n.modify(1))},[...t[14]||(t[14]=[l("div",{class:"input-group-text"},"+",-1)])])):d("",!0),s.addButton?(i(),c("div",mo,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[12]||(t[12]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])):d("",!0),e.$slots.append?(i(),c("div",fo,[l("div",go,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const bo=S(Jn,[["render",ho],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),_o=Object.freeze(Object.defineProperty({__proto__:null,default:bo},Symbol.toStringTag,{value:"Module"}));A.add(ee,te);const vo={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:D,FontAwesomeIcon:T},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},yo={class:"w-100"},wo={class:"input-group"},ko={class:"input-group-prepend"},So={class:"input-group-text"},Co=["id"],Bo=["id"],$o={key:2,class:"input-group-append"},Io={class:"input-group-text"},Oo={class:"form-text text-muted text-right"};function Ao(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",yo,[l("div",wo,[l("div",ko,[l("div",So,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:1,icon:["fas","code"]})):d("",!0)])]),s.subtype==="json"?O((i(),c("textarea",$({key:0,id:`${e.uid}-textarea`,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Co)),[[V,n.value,void 0,{lazy:!0}]]):O((i(),c("textarea",$({key:1,id:`${e.uid}-textarea`,"onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Bo)),[[V,n.value]]),e.$attrs.maxlength?(i(),c("div",$o,[l("div",Io,[l("small",Oo,w(n.length)+" / "+w(e.$attrs.maxlength),1)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const To=S(vo,[["render",Ao],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Mo=Object.freeze(Object.defineProperty({__proto__:null,default:To},Symbol.toStringTag,{value:"Module"})),Vo={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const u=new Date-this.timestamp*1e3;for(var o in e)if(Math.abs(u)>e[o]){this.relativeTime=t.format(Math.round(-u/e[o]),o);break}u>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},qo={key:0,class:"time-diff"},Po={class:"toast-body"};function Do(e,t,s,u,o,n){return i(),c("div",{class:C(["toast","border-"+s.subtype]),role:"alert"},[l("div",{class:C(["toast-header","bg-"+s.subtype])},[t[2]||(t[2]=l("strong",{class:"pr-2 mr-auto"},"openWB",-1)),s.timestamp?(i(),c("small",qo,w(o.relativeTime),1)):d("",!0),l("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>n.dismiss&&n.dismiss(...a))},[...t[1]||(t[1]=[l("span",{"aria-hidden":"true"},"×",-1)])])],2),l("div",Po,[_(e.$slots,"default",{},void 0,!0)])],2)}const Lo=S(Vo,[["render",Do],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Eo=Object.freeze(Object.defineProperty({__proto__:null,default:Lo},Symbol.toStringTag,{value:"Module"})),xo={name:"OpenwbTooltip",props:{description:{type:String,default:"#TOOLTIP#"},addHint:{type:Boolean,default:!1}}},Ro=["title"];function Wo(e,t,s,u,o,n){return i(),c("div",{class:C(["base-text",{dotted:s.addHint}]),title:s.description},[_(e.$slots,"default",{},void 0,!0)],10,Ro)}const jo=S(xo,[["render",Wo],["__scopeId","data-v-c65a1128"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTooltip.vue"]]),zo=Object.freeze(Object.defineProperty({__proto__:null,default:jo},Symbol.toStringTag,{value:"Module"})),No={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopics:[],weekdays:["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],chargeModes:["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"],statusLevel:["success","warning","danger"]}},computed:{mqttTopicsToSubscribe(){return this.mqttTopics.map(e=>e.topic)},mqttTopicsToPublish(){return this.mqttTopics.filter(e=>e.writeable).map(e=>e.topic)}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,s=void 0){console.debug("updateState:",e,t,s),this.$store.commit({type:"updateTopic",topic:e,objectPath:s,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let s=e;t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let u=Object.keys(this.$store.state.mqtt).filter(o=>o.match(s));return u.forEach((o,n,a)=>{a[n]=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),u},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,s=t,u=1){if(!(e==null||isNaN(e)))return e=e*u,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:s})},formatNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,s,u):"-"},formatPhaseArrayNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(o=>this.formatNumber(o,t,s,u)):["-","-","-"]},translateChargeMode(e){return{instant_charging:"Sofort",pv_charging:"PV",scheduled_charging:"Zielladen",time_charging:"Zeitladen",eco_charging:"Eco",standby:"Standby",stop:"Stop"}[e]||e}}},z=S(No,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);A.add(Ze);const Uo={name:"OpenwbNavBar",components:{FontAwesomeIcon:T},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/security/access/+",writeable:!1}]}},computed:{nodeEnv(){return"development"},accessAllowed(){return e=>this.$store.state.mqtt[`openWB/system/security/access/${e}`]===!0}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},Fo={class:"navbar navbar-expand-xl bg-dark navbar-dark fixed-top"},Ho={ref:"navbarButton",class:"navbar-toggler mr-auto",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},Ko={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},Go={class:"navbar-nav mr-auto"},Jo={key:0,class:"nav-item"},Zo={class:"nav-item dropdown nav-separator-before"},Qo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},Yo={class:"nav-item dropdown nav-separator-before"},Xo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ei={class:"nav-item dropdown"},ti={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},si={class:"nav-item dropdown"},ni={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},oi={key:5,class:"dropdown-divider"},ii={key:6,href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"},ai={class:"nav-item dropdown"},li={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ri={class:"nav-item nav-separator-before"},di={class:"nav-link",href:"https://wiki.openwb.de/",target:"_blank"};function ui(e,t,s,u,o,n){const a=g("router-link"),p=g("font-awesome-icon");return i(),c("nav",Fo,[t[30]||(t[30]=l("a",{class:"navbar-brand",href:"/openWB/web/"},[l("span",null,"openWB")],-1)),l("button",Ho,[...t[0]||(t[0]=[l("span",{class:"navbar-toggler-icon"},null,-1)])],512),l("div",Ko,[l("ul",Go,[n.accessAllowed("Status")?(i(),c("li",Jo,[b(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:m(()=>[...t[1]||(t[1]=[h(" Status ",-1)])]),_:1})])):d("",!0),l("li",Zo,[t[4]||(t[4]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),l("div",Qo,[n.accessAllowed("ChargeLog")?(i(),f(a,{key:0,to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[2]||(t[2]=[h(" Ladeprotokoll ",-1)])]),_:1})):d("",!0),n.accessAllowed("Chart")?(i(),f(a,{key:1,to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[3]||(t[3]=[h(" Diagramme ",-1)])]),_:1})):d("",!0)])]),l("li",Yo,[t[8]||(t[8]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),l("div",Xo,[n.accessAllowed("GeneralConfiguration")?(i(),f(a,{key:0,to:"/GeneralConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[5]||(t[5]=[h(" Allgemein ",-1)])]),_:1})):d("",!0),n.accessAllowed("DisplayConfiguration")?(i(),f(a,{key:1,to:"/DisplayConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[6]||(t[6]=[h(" Display ",-1)])]),_:1})):d("",!0),n.accessAllowed("IdentificationConfiguration")?(i(),f(a,{key:2,to:"/IdentificationConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[7]||(t[7]=[h(" Identifikation ",-1)])]),_:1})):d("",!0)])]),l("li",ei,[t[12]||(t[12]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),l("div",ti,[n.accessAllowed("GeneralChargeConfiguration")?(i(),f(a,{key:0,to:"/GeneralChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[9]||(t[9]=[h(" Übergreifendes ",-1)])]),_:1})):d("",!0),n.accessAllowed("SurplusChargeConfiguration")?(i(),f(a,{key:1,to:"/SurplusChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[10]||(t[10]=[h(" Überschuss-Laden ",-1)])]),_:1})):d("",!0),n.accessAllowed("ActiveBatControlConfiguration")?(i(),f(a,{key:2,to:"/ActiveBatControlConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[11]||(t[11]=[h(" Speichersteuerung ",-1)])]),_:1})):d("",!0)])]),l("li",si,[t[18]||(t[18]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),l("div",ni,[n.accessAllowed("HardwareInstallation")?(i(),f(a,{key:0,to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[13]||(t[13]=[h(" Geräte und Komponenten ",-1)])]),_:1})):d("",!0),n.accessAllowed("LoadManagementConfiguration")?(i(),f(a,{key:1,to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[14]||(t[14]=[h(" Lastmanagement ",-1)])]),_:1})):d("",!0),n.accessAllowed("ChargePointInstallation")?(i(),f(a,{key:2,to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[15]||(t[15]=[h(" Ladepunkte ",-1)])]),_:1})):d("",!0),n.accessAllowed("VehicleConfiguration")?(i(),f(a,{key:3,to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[16]||(t[16]=[h(" Fahrzeuge ",-1)])]),_:1})):d("",!0),n.accessAllowed("IoConfiguration")?(i(),f(a,{key:4,to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[17]||(t[17]=[h(" Ein-/Ausgänge ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("div",oi)):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("a",ii," SmartHome ")):d("",!0)])]),l("li",ai,[t[28]||(t[28]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),l("div",li,[n.accessAllowed("InstallAssistant")?(i(),f(a,{key:0,to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[19]||(t[19]=[h(" Einrichtungsassistent ",-1)])]),_:1})):d("",!0),n.accessAllowed("CloudConfiguration")?(i(),f(a,{key:1,to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[20]||(t[20]=[h(" openWB Cloud ",-1)])]),_:1})):d("",!0),n.accessAllowed("MqttBridgeConfiguration")?(i(),f(a,{key:2,to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[21]||(t[21]=[h(" MQTT-Brücken ",-1)])]),_:1})):d("",!0),n.accessAllowed("DebugConfiguration")?(i(),f(a,{key:3,to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[22]||(t[22]=[h(" Fehlersuche ",-1)])]),_:1})):d("",!0),n.accessAllowed("Support")?(i(),f(a,{key:4,to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[23]||(t[23]=[h(" Support ",-1)])]),_:1})):d("",!0),n.accessAllowed("DataManagement")?(i(),f(a,{key:5,to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[24]||(t[24]=[h(" Datenverwaltung ",-1)])]),_:1})):d("",!0),n.accessAllowed("SecurityConfiguration")?(i(),f(a,{key:6,to:"/System/SecurityConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[25]||(t[25]=[h(" Sicherheit ",-1)])]),_:1})):d("",!0),n.accessAllowed("SystemConfiguration")?(i(),f(a,{key:7,to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[26]||(t[26]=[h(" System ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegalSettings")?(i(),f(a,{key:8,to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[27]||(t[27]=[h(" Rechtliches ",-1)])]),_:1})):d("",!0)])]),l("li",ri,[l("a",di,[t[29]||(t[29]=h(" Wiki ",-1)),b(p,{icon:["fas","external-link-alt"]})])])])],512),t[31]||(t[31]=l("div",{class:"ml-auto d-flex flex-row align-items-center"},[l("div",{id:"info-target"}),l("div",{id:"user-target"}),l("div",{id:"message-target"})],-1))])}const ci=S(Uo,[["render",ui],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]),pi={name:"OpenwbPageFooter"},mi={id:"footer",class:"footer bg-dark text-light font-small"},fi={class:"container text-center"};function gi(e,t,s,u,o,n){return i(),c("footer",mi,[l("div",fi,[l("small",null," Du befindest dich hier: Einstellungen / "+w(e.$route.meta.heading),1)])])}const hi=S(pi,[["render",gi],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);A.add(Qe,Ye,Xe,et);const bi={name:"OpenwbPageUser",components:{FontAwesomeIcon:T,FontAwesomeLayers:se},mixins:[z],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/security/access_allowed",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],showLoginModal:!1,showPasswordResetModal:!1,showLogoutModal:!1,username:"",password:"",token:"",passwordConfirm:"",tokenRequested:!1,passwordResetRequested:!1,smallScreen:!1}},computed:{loggedInUser(){return this.$store.state.local.username||null},userManagementActive(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},accessAllowed(){return this.$store.state.mqtt["openWB/system/security/access_allowed"]===void 0?!1:this.$store.state.mqtt["openWB/system/security/access_allowed"]===!0},anonymousAccessAllowed(){return this.accessAllowed&&this.loggedInUser===null},dataProtectionAcknowledged(){return this.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0},loginButtons(){let e=[{text:"Anmelden",event:"login",subtype:"success",disabled:this.stringIsEmpty(this.username)||this.stringIsEmpty(this.password)}];return this.dataProtectionAcknowledged&&e.push({text:"Kennwort vergessen",event:"forgot_password",subtype:"warning"}),e},requestTokenDisabled(){return this.stringIsEmpty(this.username)||this.tokenRequested},resetPasswordDisabled(){return this.stringIsEmpty(this.username)||this.stringIsEmpty(this.token)||this.stringIsEmpty(this.password)||this.stringIsEmpty(this.passwordConfirm)||this.password!==this.passwordConfirm||this.passwordResetRequested},modalBlockerVisible(){return this.$store.state.local.modalBlockerVisible===!0}},watch:{userManagementActive(){this.checkAutoLogin()},loggedInUser(e){e&&this.checkAutoLogin()},accessAllowed(){this.checkAutoLogin()},modalBlockerVisible(){this.checkAutoLogin()}},mounted(){me(()=>{this.checkAutoLogin()})},beforeMount(){window.addEventListener("resize",this.updateScreenSize),this.updateScreenSize()},beforeUnmount(){window.removeEventListener("resize",this.updateScreenSize)},methods:{updateScreenSize(){this.smallScreen=window.innerWidth<576},stringIsEmpty(e){return!e||e.length===0},checkAutoLogin(){console.debug("Checking auto login: ",this.userManagementActive,this.accessAllowed,this.loggedInUser),this.userManagementActive&&!this.accessAllowed&&!this.modalBlockerVisible?this.showLoginModal=!0:this.showLoginModal=!1},doLogin(e){switch(e){case"login":if(!this.username||!this.password){this.$root.postClientMessage("Benutzername und Passwort erforderlich.","danger");return}this.$cookies.set("mqtt",`${this.username}:${this.password}`),this.$root.reconnectMqttClient(),location.reload();break;case"forgot_password":console.warn("Password reset requested for user:",this.username),this.showLoginModal=!1,this.username="",this.password="",this.showPasswordResetModal=!0;break;default:this.showLoginModal=!1,this.username="",this.password=""}},processResetResult(e){switch(console.log("Password reset modal result:",e),e){case"request_token":if(!this.username){this.$root.postClientMessage("Benutzername erforderlich.","danger");return}console.warn("Requesting password reset token for:",this.username),this.tokenRequested=!0,this.$emit("sendCommand",{command:"createPasswordResetToken",data:{username:this.username}});break;case"reset_password":if(!this.username||!this.token||!this.password||!this.passwordConfirm||this.password!==this.passwordConfirm){this.$root.postClientMessage("Benutzername, Token und neues Kennwort erforderlich.","danger");return}console.warn("Resetting password for:",this.username,"with token:",this.token,"and new password:",this.password),this.passwordResetRequested=!0,this.$root.postClientMessage("Das Token wird geprüft und bei Erfolg das Passwort zurückgesetzt. Dieser Vorgang dauert ein paar Sekunden.","info"),this.$emit("sendCommand",{command:"resetUserPassword",data:{username:this.username,token:this.token,newPassword:this.password}});break;case"close":this.showPasswordResetModal=!1,this.username="",this.password="",this.token="",this.passwordConfirm="",this.tokenRequested=!1,this.passwordResetRequested=!1,this.showLoginModal=!0;return}},doLogout(e){this.showLogoutModal=!1,e==="confirm"&&(console.warn("Logging out user"),this.$cookies.remove("mqtt"),this.$root.reconnectMqttClient(),location.reload())}}},_i={id:"user-indicator",class:"ml-2"},vi={key:0,class:"pill bg-primary"},yi={key:0,class:"non-selectable"},wi={key:1,class:"pill bg-secondary"},ki={name:"loginForm"},Si={name:"requestTokenForm"};function Ci(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-tooltip"),r=g("FontAwesomeLayers"),v=g("openwb-base-modal-dialog"),k=g("openwb-base-text-input");return i(),c(M,null,[n.userManagementActive===!0?(i(),f(j,{key:0,defer:"",to:"#user-target"},[l("div",_i,[n.loggedInUser?(i(),c("span",vi,[b(p,{description:`Angemeldet als ${n.loggedInUser}`},{default:m(()=>[b(a,{icon:["fas","circle-user"],size:"lg"}),o.smallScreen?d("",!0):(i(),c("span",yi,w(n.loggedInUser),1))]),_:1},8,["description"]),b(p,{description:"Abmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-from-bracket"],size:"lg",onClick:t[0]||(t[0]=y=>o.showLogoutModal=!0)})]),_:1})])):(i(),c("span",wi,[b(p,{description:"Nicht angemeldet"},{default:m(()=>[b(r,null,{default:m(()=>[b(a,{icon:["fas","circle-user"]}),b(a,{icon:["fas","ban"],color:"red"})]),_:1})]),_:1}),b(p,{description:"Anmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-to-bracket"],size:"lg",onClick:t[1]||(t[1]=y=>o.showLoginModal=!0)})]),_:1})]))])])):d("",!0),n.userManagementActive?(i(),f(v,{key:1,show:o.showLogoutModal,title:"Abmelden",subtype:"warning",buttons:[{text:"Abmelden",event:"confirm",subtype:"danger"}],onModalResult:t[2]||(t[2]=y=>n.doLogout(y))},{default:m(()=>[...t[11]||(t[11]=[l("p",null,"Willst Du Dich wirklich abmelden?",-1)])]),_:1},8,["show"])):d("",!0),n.userManagementActive?(i(),f(v,{key:2,show:o.showLoginModal,"prevent-close":!n.anonymousAccessAllowed,title:"Anmelden",subtype:"success",buttons:n.loginButtons,onModalResult:t[5]||(t[5]=y=>n.doLogin(y))},{default:m(()=>[l("form",ki,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[3]||(t[3]=y=>o.username=y),title:"Benutzername",subtype:"user",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[4]||(t[4]=y=>o.password=y),title:"Passwort",subtype:"password",required:"",autocomplete:"current-password"},null,8,["modelValue"])])]),_:1},8,["show","prevent-close","buttons"])):d("",!0),n.userManagementActive&&n.dataProtectionAcknowledged?(i(),f(v,{key:3,show:o.showPasswordResetModal,title:"Kennwort zurücksetzen",subtype:"warning",buttons:[{text:"Token anfordern",event:"request_token",subtype:"success",disabled:n.requestTokenDisabled},{text:"Kennwort zurücksetzen",event:"reset_password",subtype:"primary",disabled:n.resetPasswordDisabled},{text:"Zurück",event:"close",subtype:"secondary"}],onModalResult:t[10]||(t[10]=y=>n.processResetResult(y))},{default:m(()=>[l("form",Si,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[6]||(t[6]=y=>o.username=y),title:"Benutzername",subtype:"user","empty-value":"",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.token,"onUpdate:modelValue":t[7]||(t[7]=y=>o.token=y),title:"Token",subtype:"password","empty-value":"",readonly:o.username.length<=0,disabled:o.username.length<=0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[8]||(t[8]=y=>o.password=y),title:"Neues Kennwort",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.passwordConfirm,"onUpdate:modelValue":t[9]||(t[9]=y=>o.passwordConfirm=y),title:"Neues Kennwort bestätigen",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0,validator:y=>y===o.password||"Kennwörter stimmen nicht überein"},null,8,["modelValue","readonly","disabled","validator"])])]),_:1},8,["show","buttons"])):d("",!0)],64)}const Bi=S(bi,[["render",Ci],["__scopeId","data-v-adc196c2"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageUser.vue"]]);A.add(tt,st);const $i={name:"OpenwbPageMqttConnectionState",components:{FontAwesomeIcon:T},props:{connected:{type:Boolean,required:!0}},data(){return{showIcon:!this.connected,visibilityTimeout:null}},watch:{connected(e){e?(clearTimeout(this.visibilityTimeout),this.visibilityTimeout=setTimeout(()=>{this.showIcon=!1},5e3)):(this.showIcon=!0,clearTimeout(this.visibilityTimeout))}}},Ii={id:"connection-state-indicator",class:"ml-2"};function Oi(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-avatar"),r=g("openwb-base-tooltip");return o.showIcon?(i(),f(j,{key:0,defer:"",to:"#info-target"},[l("div",Ii,[b(r,{description:`Verbindung ${s.connected?"hergestellt":"getrennt"}`},{default:m(()=>[b(p,{class:C(s.connected?"text-success":"bg-danger")},{default:m(()=>[b(a,{icon:s.connected?["fas","link"]:["fas","link-slash"]},null,8,["icon"])]),_:1},8,["class"])]),_:1},8,["description"])])])):d("",!0)}const Ai=S($i,[["render",Oi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMqttConnectionState.vue"]]);A.add(nt,ot);const Ti={name:"OpenwbPageMessages",components:{FontAwesomeIcon:T,FontAwesomeLayers:se,FontAwesomeLayersText:it},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/command/"+this.$root.mqttClientId+"/messages/+",writeable:!1},{topic:"openWB/system/messages/+",writeable:!1}],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,s)=>((t=="light"&&["info","success","warning","danger"].includes(s.type)||t=="info"&&["success","warning","danger"].includes(s.type)||t=="success"&&["warning","danger"].includes(s.type)||t=="warning"&&s.type=="danger")&&(t=s.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.localMessages.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[s,u]of Object.entries(e))t.push({topic:s,...u});return t},localMessages(){const e=this.$store.state.local.messages||{};var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});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.localMessages.find(s=>s.topic===e.topic)?this.$store.commit("removeClientMessage",e.topic):this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.dismissMessage({topic:e.topic})}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Mi=["title"],Vi=["innerHTML"];function qi(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("font-awesome-layers-text"),r=g("font-awesome-layers"),v=g("openwb-base-alert"),k=g("openwb-base-click-button"),y=g("openwb-base-toast");return i(),c(M,null,[(i(),f(j,{defer:"",to:"#message-target"},[l("div",{id:"message-indicator",class:C(["text-light clickable",o.showAllMessages?"active":""]),title:o.showAllMessages?"nur neue Nachrichten anzeigen":"Alle Nachrichten anzeigen",onClick:t[0]||(t[0]=(...I)=>n.toggleAllMessages&&n.toggleAllMessages(...I))},[b(r,{"full-width":""},{default:m(()=>[b(a,{icon:o.showAllMessages?["fas","bell"]:["far","bell"],class:C(n.messageIndicatorClass)},null,8,["icon","class"]),n.messages.length>0?(i(),f(p,{key:0,counter:"",value:n.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):d("",!0)]),_:1})],10,Mi)])),n.recentMessages.length>0||o.showAllMessages?(i(),c("div",{key:0,class:C(["openwb-toast-container",o.showAllMessages?"full-height":""])},[n.recentMessages.length==0?(i(),f(v,{key:0,subtype:"info"},{default:m(()=>[...t[1]||(t[1]=[h(" Keine Nachrichten vorhanden. ",-1)])]),_:1})):o.showAllMessages?(i(),f(k,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:n.dismissAllMessages},{default:m(()=>[...t[2]||(t[2]=[h(" Alle Nachrichten löschen ",-1)])]),_:1},8,["onButtonClicked"])):d("",!0),(i(!0),c(M,null,q(n.recentMessages,I=>(i(),f(y,{key:I.topic,topic:I.topic,source:I.source,subtype:I.type,timestamp:I.timestamp,onDismiss:n.dismissMessage,onHide:n.hideMessage},{default:m(()=>[l("span",{innerHTML:I.message},null,8,Vi)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):d("",!0)],64)}const Pi=S(Ti,[["render",qi],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Di={name:"OpenwbPageBlocker",mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],disconnectedTimeout:null}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.mqttClientDisconnected?"Verbindung zur openWB verloren":this.reloadRequired?"Die Seite muss neu geladen werden":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress||this.mqttClientDisconnected)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},mqttClientDisconnected(){return!this.$root.$data.connected},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.$store.state.local.modalBlockerVisible},modalType(){return this.mqttClientDisconnected&&!(this.bootInProgress||this.updateInProgress)?"danger":"dark"}},watch:{mqttClientDisconnected(e){e===!0?this.disconnectedTimeout=window.setTimeout(()=>{this.mqttClientDisconnected&&this.updateLocalStore()},2e3):(this.disconnectedTimeout&&(clearTimeout(this.disconnectedTimeout),this.disconnectedTimeout=null),this.updateLocalStore())},bootInProgress(e){e===!0&&this.updateInProgress===!0&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!0}),this.updateLocalStore()},updateInProgress(e){e===!1&&this.bootInProgress===!1&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!1}),this.updateLocalStore()},reloadRequired(){this.updateLocalStore()}},methods:{updateLocalStore(){this.$store.commit("storeLocal",{name:"modalBlockerVisible",value:this.bootInProgress||this.updateInProgress||this.reloadRequired||this.mqttClientDisconnected})},handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Li={class:"openwb-blocker"},Ei={key:0},xi={key:1},Ri={key:2},Wi={key:3},ji={key:4};function zi(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog");return i(),c("div",Li,[b(a,{show:n.showModalBlocker,title:n.title,subtype:n.modalType,"prevent-close":!0,buttons:n.myButtons,onModalResult:t[0]||(t[0]=p=>n.handleModalResult(p))},{default:m(()=>[n.bootInProgress?(i(),c("p",Ei,"Der Systemstart ist noch nicht abgeschlossen.")):n.updateInProgress?(i(),c("p",xi,"Es wird eine Systemaktualisierung ausgeführt.")):n.mqttClientDisconnected?(i(),c("p",Ri,[...t[1]||(t[1]=[h(" Die Verbindung zur openWB wurde unterbrochen.",-1),l("br",null,null,-1),h(" Es wird versucht, die Verbindung wieder herzustellen... ",-1)])])):n.reloadRequired?(i(),c("p",Wi,"Bitte die Seite neu laden.")):(i(),c("p",ji,"Bitte warten..."))]),_:1},8,["show","title","subtype","buttons"])])}const Ni=S(Di,[["render",zi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]),Ui={name:"OpenwbSettingsApp",components:{NavBar:ci,PageFooter:hi,UserInfo:Bi,MqttConnectionState:Ai,Messages:Pi,Blocker:Ni},data(){return{client:null,connected:!1,connection:{protocol:location.protocol=="https:"?"wss":"ws",protocolVersion:5,host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),path:"/ws",connectTimeout:4e3,reconnectPeriod:4e3,resubscribe:!0,properties:{requestResponseInformation:!0,requestProblemInformation:!0}},dataTimeout:null}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)},nodeEnv(){return"development"}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(u){return new Promise(o=>setTimeout(o,u))}function s(u){return u.includes("#")||u.includes("+")}this.$store.commit("storeLocal",{name:"savingData",value:!0});try{let u={};if(e===void 0){console.error("no topics to save defined!");return}if(Array.isArray(e))e.forEach(o=>{if(s(o)){console.debug("expanding wildcard topic:",o);const n=this.getWildcardTopics(o);Object.entries(n).forEach(([a,p])=>{console.debug("adding topic to save:",a),u[a]=p})}else console.debug("adding topic to save:",o),u[o]=this.$store.state.mqtt[o]});else{console.error("expected array, got ",typeof e);return}for(const[o,n]of Object.entries(u)){if(o.startsWith("$CONTROL")){console.debug("skipping control topic:",o);continue}let a=o.replace("openWB/","openWB/set/");console.debug("saving data:",a,n),this.doPublish(a,n),await t(50)}}finally{this.$store.commit("storeLocal",{name:"savingData",value:!1})}},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish(`openWB/set/command/${this.client.options.clientId}/todo/${e.command}`,e,!1)},createConnection(){const{protocol:e,host:t,port:s,path:u,...o}=this.connection,n=`${e}://${t}:${s}${u}`,[a,p]=this.$cookies.get("mqtt")?.match(/^([^:]+):(.+)$/)?.slice(1)||[null,null];a&&p||console.debug("Anonymous mqtt connection (no cookie set)"),(this.nodeEnv!=="production"||e=="wss")&&a&&p&&(console.debug(`Using mqtt credentials from cookie: "${a}" / "${p.charAt(0)}..."`),o.username=a,o.password=p,a==="admin"&&p==="openwb"&&(console.warn("Using default mqtt credentials! This is insecure and not recommended for production systems."),this.postClientMessage("Warnung: Es werden die Standard-Zugangsdaten für MQTT verwendet! Dies ist unsicher und wird für Produktivsysteme nicht empfohlen.","warning"))),console.debug("connecting to broker:",n),this.client=fe.connect(n,o),this.client.on("connect",()=>{this.connected=!0,console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),a&&(this.postClientMessage(`Angemeldet als "${a}".`,"success"),this.$store.commit("storeLocal",{name:"username",value:a})),this.doSubscribe(["openWB/system/boot_done","openWB/system/dataprotection_acknowledged","openWB/system/usage_terms_acknowledged","openWB/system/installAssistantDone","openWB/system/security/access/+"]),this.dataTimeout=setTimeout(()=>{console.warn("No data received after 1 second, connection might not be working. Removing mqtt cookie and trying again with anonymous connection."),a&&(this.$cookies.remove("mqtt"),this.reconnectMqttClient())},1e3)}),this.client.on("error",r=>{this.connected=!1,console.error("Connection failed",r),this.$cookies.remove("mqtt"),this.$store.commit("storeLocal",{name:"username",value:null}),this.reconnectMqttClient()}),this.client.on("message",(r,v)=>{if(this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null),v.toString().length>0){let k;try{k=JSON.parse(v.toString())}catch(y){console.debug("Json parsing failed, fallback to string: ",r,y),k=v.toString()}this.$store.commit("updateTopic",{topic:r,payload:k})}else this.$store.commit("removeTopic",r)}),this.client.on("end",()=>{this.connected=!1,console.error("mqtt connection ended")}),this.client.on("close",()=>{this.connected=!1,console.error("mqtt connection closed")}),this.client.on("offline",()=>{this.connected=!1,console.error("mqtt connection offline")}),this.client.on("disconnect",()=>{this.connected=!1,console.error("mqtt connection disconnected")}),this.client.on("reconnect",()=>{console.error("mqtt connection reconnecting...")})},endConnection(){this.connected?(console.warn("Ending mqtt connection..."),this.client.end(),this.connected=!1,this.$store.commit("storeLocal",{name:"username",value:null}),this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null)):console.error("No mqtt connection to end.")},reconnectMqttClient(){this.client?.connected&&this.endConnection(),this.createConnection()},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,{},s=>{if(s){this.postClientMessage(`Daten konnten nicht abonniert werden.
Topic: ${t}
${s}`,"danger"),this.$store.commit("removeSubscription",t);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,s=>{s&&(console.error("Unsubscribe error",s),this.postClientMessage(`Daten konnten nicht abbestellt werden.
Topic: ${t}
${s}`,"danger"))}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(s=>{console.debug("removing wildcardTopic:",s),this.$store.commit("removeTopic",s)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,s=!0,u=2){let o={qos:u,retain:s};this.client.publish(e,JSON.stringify(t),o,n=>{n&&(console.error("Publish error",n),this.postClientMessage(`Daten konnten nicht geschrieben werden.
Topic: ${e}
${n}`,"danger"))})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const s=Date.now();this.$store.commit({type:"addClientMessage",timestamp:s,payload:{message:e,type:t,source:"client",timestamp:Math.floor(s/1e3)}})},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})}}},Fi={role:"main",class:"container"},Hi={id:"content"};function Ki(e,t,s,u,o,n){const a=g("nav-bar"),p=g("router-view"),r=g("page-footer"),v=g("mqtt-connection-state"),k=g("user-info"),y=g("messages"),I=g("blocker");return i(),c(M,null,[l("header",null,[b(a)]),l("div",Fi,[l("div",Hi,[l("h1",null,w(e.$route.meta.heading),1),b(p,{onSave:n.saveValues,onReset:n.resetValues,onDefaults:n.setDefaultValues,onSendCommand:n.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),b(r),b(v,{connected:o.connected},null,8,["connected"]),b(k,{onSendCommand:n.sendCommand},null,8,["onSendCommand"]),b(y),b(I)],64)}const Gi=S(Ui,[["render",Ki],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Ji="modulepreload",Zi=function(e){return"/openWB/web/settings/"+e},Z={},B=function(t,s,u){let o=Promise.resolve();if(s&&s.length>0){let r=function(v){return Promise.all(v.map(k=>Promise.resolve(k).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),p=a?.nonce||a?.getAttribute("nonce");o=r(s.map(v=>{if(v=Zi(v),v in Z)return;Z[v]=!0;const k=v.endsWith(".css"),y=k?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${v}"]${y}`))return;const I=document.createElement("link");if(I.rel=k?"stylesheet":Ji,k||(I.as="script"),I.crossOrigin="",I.href=v,p&&I.setAttribute("nonce",p),document.head.appendChild(I),k)return new Promise((le,re)=>{I.addEventListener("load",le),I.addEventListener("error",()=>re(new Error(`Unable to preload CSS for ${v}`)))})}))}function n(a){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=a,window.dispatchEvent(p),!p.defaultPrevented)throw a}return o.then(a=>{for(const p of a||[])p.status==="rejected"&&n(p.reason);return t().catch(n)})},Qi={namespaced:!0,state:()=>({hiddenDatasets:[]}),mutations:{toggleDataset(e,t){e.hiddenDatasets.includes(t)?e.hiddenDatasets=e.hiddenDatasets.filter(s=>s!==t):e.hiddenDatasets.push(t)},setHiddenDatasets(e,t){e.hiddenDatasets=t}}};let ie={mqtt:{},mqttSubscriptions:{},local:{modalBlockerVisible:!1,reloadRequired:!1,savingData:!1,username:null}};ie.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",text8:"Text mit Add-Button",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const x=ge({state:ie,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 s=(u,o,n)=>o.split(".").reduce((a,p,r)=>a[p]=o.split(".").length===r+1?n:a[p]||{},u);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?s(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?s(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"))},addClientMessage(e,t){e.local.messages||(e.local.messages={}),e.local.messages[t.timestamp]=t.payload},removeClientMessage(e,t){e.local.messages&&t in e.local.messages&&delete e.local.messages[t]},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:{chartLegend:Qi},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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(s),clearInterval(u),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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(s),clearInterval(u),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},accessAllowed(e){return t=>new Promise(s=>{const u=`openWB/system/security/access/${t}`;if(e.mqtt[u]!==void 0)s(e.mqtt[u]);else{var o,n;o=setTimeout(()=>{clearInterval(n),s(!1)},5e3),n=setInterval(()=>{e.mqtt[u]!==void 0&&(clearTimeout(o),clearInterval(n),s(e.mqtt[u]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),ae=[{path:"/",redirect:"/GeneralConfiguration"},{path:"/Status",name:"Status",meta:{heading:"Status",checkPermissions:!0},component:()=>B(()=>import("./Status-DYns2lPM.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll",checkPermissions:!0},component:()=>B(()=>import("./ChargeLog-Bgx1bSon.js"),__vite__mapDeps([11,1,2,3,6,7,8,9,12]))},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"Chart",meta:{heading:"Auswertungen - Diagramme",checkPermissions:!0},component:()=>B(()=>import("./Chart-q4SmWErO.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,14]))},{path:"/GeneralConfiguration",name:"GeneralConfiguration",meta:{heading:"Einstellungen - Allgemein",checkPermissions:!0},component:()=>B(()=>import("./GeneralConfiguration-CMMYSFfh.js").then(e=>e.a),__vite__mapDeps([15,1,2,3,16,17]))},{path:"/IdentificationConfiguration",name:"IdentificationConfiguration",meta:{heading:"Einstellungen - Identifikation",checkPermissions:!0},component:()=>B(()=>import("./IdentificationConfiguration-NvHT7cba.js"),__vite__mapDeps([18,16,2,3,1,6,7,8,9]))},{path:"/DisplayConfiguration",name:"DisplayConfiguration",meta:{heading:"Einstellungen - Display",checkPermissions:!0},component:()=>B(()=>import("./DisplayConfiguration-BEaqDSWf.js").then(e=>e.a),__vite__mapDeps([19,17,1,2,3]))},{path:"/GeneralChargeConfiguration",name:"GeneralChargeConfiguration",meta:{heading:"Ladeeinstellungen - Übergreifendes",checkPermissions:!0},component:()=>B(()=>import("./GeneralChargeConfiguration-tvikf7OT.js").then(e=>e.a),__vite__mapDeps([20,17,1,2,3]))},{path:"/SurplusChargeConfiguration",name:"SurplusChargeConfiguration",meta:{heading:"Ladeeinstellungen - Überschuss-Laden",checkPermissions:!0},component:()=>B(()=>import("./SurplusChargeConfiguration-Mmn_2MTQ.js"),__vite__mapDeps([21,16,2,3,1,6,7,8,9]))},{path:"/ActiveBatControlConfiguration",name:"ActiveBatControlConfiguration",meta:{heading:"Ladeeinstellungen - Speichersteuerung",checkPermissions:!0},component:()=>B(()=>import("./ActiveBatControlConfiguration-DEBiR6H9.js"),__vite__mapDeps([22,1,2,3,6,7,8,9]))},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten",checkPermissions:!0},component:()=>B(()=>import("./HardwareInstallation-caZ0sA9z.js").then(e=>e.a),__vite__mapDeps([23,1,2,3,17]))},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement",checkPermissions:!0},component:()=>B(()=>import("./LoadManagementConfiguration-DVcGfr2E.js"),__vite__mapDeps([24,1,2,3,25,26,6,7,8,9]))},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte",checkPermissions:!0},component:()=>B(()=>import("./ChargePointInstallation-C3IshOKk.js").then(e=>e.c),__vite__mapDeps([27,1,2,3,16,17,28]))},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge",checkPermissions:!0},component:()=>B(()=>import("./VehicleConfiguration-TZSwJptx.js").then(e=>e.b),__vite__mapDeps([29,1,2,3,17]))},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge",checkPermissions:!0},component:()=>B(()=>import("./IoConfiguration-vfX10CsO.js").then(e=>e.b),__vite__mapDeps([30,1,2,3,17]))},{path:"/System/CloudConfiguration",name:"CloudConfiguration",meta:{heading:"System - openWB Cloud",checkPermissions:!0},component:()=>B(()=>import("./CloudConfiguration-Cu4M2u7m.js"),__vite__mapDeps([31,1,2,3,6,7,8,9]))},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfiguration",meta:{heading:"System - MQTT-Brücken",checkPermissions:!0},component:()=>B(()=>import("./MqttBridgeConfiguration-hMk_UUpV.js"),__vite__mapDeps([32,1,2,3,6,7,8,9]))},{path:"/System/DebugConfiguration",name:"DebugConfiguration",meta:{heading:"System - Fehlersuche",checkPermissions:!0},component:()=>B(()=>import("./DebugConfiguration-D4jVRy6l.js"),__vite__mapDeps([33,1,2,3,9,6,7,8,34]))},{path:"/System/Support",name:"Support",meta:{heading:"System - Support",checkPermissions:!0},component:()=>B(()=>import("./Support-LbG1Bt3q.js"),__vite__mapDeps([35,1,2,3,6,7,8,9]))},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches",checkPermissions:!0},component:()=>B(()=>import("./LegalSettings-DO80lenG.js"),__vite__mapDeps([36,1,2,3,6,7,8,9]))},{path:"/System/SystemConfiguration",name:"SystemConfiguration",meta:{heading:"System - System",checkPermissions:!0},component:()=>B(()=>import("./SystemConfiguration-BYwqt7v1.js"),__vite__mapDeps([37,1,2,3,6,7,8,9,38]))},{path:"/System/SecurityConfiguration",name:"SecurityConfiguration",meta:{heading:"System - Sicherheit",checkPermissions:!0},component:()=>B(()=>import("./SecurityConfiguration-BMtEoSIk.js"),__vite__mapDeps([39,1,2,3,6,7,8,9]))},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung",checkPermissions:!0},component:()=>B(()=>import("./DataManagement-FAi2cjUn.js").then(e=>e.a),__vite__mapDeps([40,1,2,3,17]))},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent",checkPermissions:!0},component:()=>B(()=>import("./InstallAssistant-D7lW6Pyr.js"),__vite__mapDeps([41,17,2,3,1,6,7,8,9]))},{path:"/Error",name:"Error",meta:{heading:"Fehler",checkPermissions:!1},component:()=>B(()=>import("./Error-BZ1TitTh.js"),__vite__mapDeps([42,2,3]))}];ae.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store",checkPermissions:!1},component:()=>B(()=>import("./TestingStore-D88H008a.js"),__vite__mapDeps([43,25,2,3,1,26,6,7,8,9]))});const F=he({history:be(),routes:ae});let W=!1;F.beforeEach(async e=>{const t=async n=>{if(n.meta.checkPermissions===!0){const a=await x.getters.accessAllowed(n.name);if(console.debug("access check for",n.name,"->",a),W)return console.debug("route already handled, cancel further processing"),!1;if(!a)return console.warn("no permission to access",n.name),x.state.local.username?{name:"Error"}:(console.debug("not logged in, cancel navigation to",n.name),W=!0,!1)}return!0};if(W=!1,!await x.getters.usageTermsAcknowledged)return e.name!=="LegalSettings"?(console.log("usage terms not acknowledged, redirect to legal settings"),{name:"LegalSettings"}):(console.log("usage terms not acknowledged, but already on legal settings, continue"),await t(e));if(!await x.getters.installAssistantDone)return e.name!=="InstallAssistant"?(console.log("install assistant not done, redirect to install assistant"),{name:"InstallAssistant"}):(console.log("install assistant not done, but already on install assistant, continue"),await t(e));const o=await t(e);return W=!0,o});F.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const H=_e(Gi);H.use(x).use(F).use(at,lt).use(ve,{expire:"30d",path:"/",domain:"",secure:!0,sameSite:"Lax"});const Yi=Object.assign({"./components/OpenwbBaseAlert.vue":ct,"./components/OpenwbBaseArrayInput.vue":qt,"./components/OpenwbBaseAvatar.vue":xt,"./components/OpenwbBaseButtonGroupInput.vue":Jt,"./components/OpenwbBaseButtonInput.vue":ns,"./components/OpenwbBaseButtonRow.vue":Ut,"./components/OpenwbBaseCard.vue":ms,"./components/OpenwbBaseCheckboxInput.vue":vs,"./components/OpenwbBaseClickButton.vue":Xt,"./components/OpenwbBaseColorPicker.vue":Bs,"./components/OpenwbBaseCopyToClipboard.vue":Ps,"./components/OpenwbBaseHeading.vue":zs,"./components/OpenwbBaseIoPattern.vue":Hs,"./components/OpenwbBaseModalDialog.vue":en,"./components/OpenwbBaseNumberInput.vue":mn,"./components/OpenwbBaseRangeInput.vue":Sn,"./components/OpenwbBaseSelectInput.vue":En,"./components/OpenwbBaseSettingElement.vue":bt,"./components/OpenwbBaseSubmitButtons.vue":Gn,"./components/OpenwbBaseTextInput.vue":_o,"./components/OpenwbBaseTextarea.vue":Mo,"./components/OpenwbBaseToast.vue":Eo,"./components/OpenwbBaseTooltip.vue":zo});Object.entries(Yi).forEach(([e,t])=>{const s=ye(we(e.split("/").pop().replace(/\.\w+$/,"")));H.component(s,t.default)});H.mount("#app");export{z as C,D as O,B as _}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Status-bV6B6bv6.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-chartjs-0RUe1kvq.js","assets/vendor-luxon-BDx6lZXm.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/Status-C2EBkHqs.css","assets/ChargeLog-CZQ0QwMY.js","assets/ChargeLog-D2ZLixbI.css","assets/Chart-CR-tn1oB.js","assets/Chart-BggLkBbQ.css","assets/GeneralConfiguration-b09cPY_w.js","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/IdentificationConfiguration-BN_nskUK.js","assets/DisplayConfiguration-h7XEuoXV.js","assets/GeneralChargeConfiguration-kMS02s2g.js","assets/SurplusChargeConfiguration-i4C8x6Va.js","assets/ActiveBatControlConfiguration-DyGDJFQ0.js","assets/HardwareInstallation-DrK-NlWu.js","assets/LoadManagementConfiguration-DKZ9eznX.js","assets/OpenwbSortableList-CSUuyi79.js","assets/OpenwbSortableList-C11EhIQj.css","assets/ChargePointInstallation-BeNMkMOi.js","assets/ChargePointInstallation-37TSBtDo.css","assets/VehicleConfiguration-B3d9qly5.js","assets/IoConfiguration-hMQZDwaS.js","assets/CloudConfiguration-DOLVcdWg.js","assets/MqttBridgeConfiguration-DpHaWJdF.js","assets/DebugConfiguration-C2vm4vM4.js","assets/DebugConfiguration-CN753w98.css","assets/Support-DMhdXgqE.js","assets/LegalSettings-DvE2H9Xw.js","assets/SystemConfiguration-BN4gvHU6.js","assets/SystemConfiguration-BWslT2W-.css","assets/SecurityConfiguration-Ckkg6YKx.js","assets/DataManagement-C57poL-r.js","assets/InstallAssistant-C4J4yr5X.js","assets/Error-BZ1TitTh.js","assets/TestingStore-pmOfDSbe.js"])))=>i.map(i=>d[i]); +import{_ as S,e as c,f as _,j as C,k as i,l as g,m as b,q as m,u as d,x as l,y as f,z as E,A as h,D as P,E as O,F as $,G as K,I as V,J as w,K as M,L as q,M as Q,N as de,O as ue,P as ce,Q as pe,T as j,R as G,n as me,S as fe,U as ge,V as he,W as be,X as _e,Y as ve,Z as ye,$ as we}from"./vendor-Bo8v-nQD.js";import{l as A,f as Y,a as X,F as T,b as ke,c as Se,d as N,e as Ce,g as U,h as Be,i as $e,j as Ie,k as Oe,m as Ae,n as Te,o as Me,p as Ve,q as qe,r as Pe,s as De,t as Le,u as Ee,v as xe,w as ee,x as Re,y as We,z as je,A as ze,B as Ne,C as te,D as Ue,E as Fe,G as He,H as Ke,I as Ge,J as Je,K as Ze,L as Qe,M as Ye,N as Xe,O as et,P as se,Q as tt,R as st,S as nt,T as ot,U as it}from"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import{p as at,a as lt}from"./vendor-axios-DdFvNBv9.js";import"./vendor-jquery-CEMonh9Y.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))u(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&u(a)}).observe(document,{childList:!0,subtree:!0});function s(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function u(o){if(o.ep)return;o.ep=!0;const n=s(o);fetch(o.href,n)}})();const rt={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function dt(e,t,s,u,o,n){return i(),c("div",{class:C(["card-text alert","alert-"+s.subtype])},[_(e.$slots,"default",{},void 0,!0)],2)}const ut=S(rt,[["render",dt],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),ct=Object.freeze(Object.defineProperty({__proto__:null,default:ut},Symbol.toStringTag,{value:"Module"}));A.add(Y,X);const pt={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:T},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},mt={key:0,class:"col-md-4 col-form-label"},ft={class:"form-row"},gt={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function ht(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",{class:C(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),c("div",mt,[_(e.$slots,"title",{},void 0,!0),b(p,{description:`Hilfe ${o.showHelp?"verbergen":"anzeigen"}`},{default:m(()=>[e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable ml-1",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),_:1},8,["description"])])):d("",!0),l("div",{class:C(e.$slots.title?"col-md-8":"col px-0")},[l("div",{class:C({"form-row":e.$slots.title})},[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("*ELEMENT MISSING*",-1))],!0)],2),l("div",ft,[o.showHelp?(i(),c("span",gt,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],2)],2)}const D=S(pt,[["render",ht],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),bt=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"})),_t={name:"BaseSettingComponents",data(){return{uid:Math.random().toString(36).substring(2,15)}}},L=S(_t,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/BaseSettingComponents.vue"]]);A.add(ke,Se,N,Ce);const vt={name:"OpenwbArrayInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]},validElements:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},disabled:{type:Boolean,default:()=>!1},readonly:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:""}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},remainingElements(){return this.validElements.length===0?[]:this.validElements.filter(e=>!this.value.includes(e.value||e))},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)&&(this.validElements.length===0||this.validElements.includes(this.newTag)||this.validElements.some(e=>e.value===this.newTag))&&this.$refs.tagInput?.checkValidity()}},tagLabel(){return e=>{const t=this.validElements.find(s=>(s.value||s)===e);return t?t.label||t.value||t:e}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},yt={key:0,class:"w-100"},wt={class:"input-group"},kt={class:"input-group-prepend"},St={class:"input-group-text"},Ct=["id","disabled"],Bt=["id","disabled"],$t={value:"",disabled:""},It=["value"],Ot={class:"input-group-append"},At={class:"tagList mt-1 w-100"},Tt={key:0,class:"noTag"};function Mt(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[s.readonly||s.disabled?d("",!0):(i(),c("div",yt,[l("div",wt,[l("div",kt,[l("div",St,[_(e.$slots,"input-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0)])]),s.validElements.length===0?O((i(),c("input",$({key:0,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>o.newTag=r),type:"text",class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[1]||(t[1]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),null,16,Ct)),[[V,o.newTag]]):O((i(),c("select",$({key:1,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[2]||(t[2]=r=>o.newTag=r),class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[3]||(t[3]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),[l("option",$t,w(n.remainingElements.length>0?"Bitte wählen...":"Keine weiteren Optionen verfügbar"),1),(i(!0),c(M,null,q(n.remainingElements,(r,v)=>(i(),c("option",{key:v,value:r.value||r},w(r.label||r.value||r),9,It))),128))],16,Bt)),[[Q,o.newTag]]),l("div",Ot,[l("div",{class:C(["input-group-text",n.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[4]||(t[4]=(...r)=>n.addTag&&n.addTag(...r))},[_(e.$slots,"input-add",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])])])),l("div",At,[n.value.length==0?(i(),c("span",Tt,[b(a,{icon:["fas","info-circle"]}),h(" "+w(s.noElementsMessage),1)])):d("",!0),(i(!0),c(M,null,q(n.value,(r,v)=>(i(),c("span",{key:v,class:"tag"},[_(e.$slots,"element-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0),h(" "+w(n.tagLabel(r))+" ",1),s.readonly||s.disabled?d("",!0):(i(),f(a,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:k=>n.removeTag(v)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Vt=S(vt,[["render",Mt],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),qt=Object.freeze(Object.defineProperty({__proto__:null,default:Vt},Symbol.toStringTag,{value:"Module"})),Pt={name:"OpenwbAvatar"},Dt={class:"avatar"};function Lt(e,t,s,u,o,n){return i(),c("div",Dt,[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("?",-1))],!0)])}const Et=S(Pt,[["render",Lt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),xt=Object.freeze(Object.defineProperty({__proto__:null,default:Et},Symbol.toStringTag,{value:"Module"}));A.add(U);const Rt={name:"OpenwbButtonRow",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{buttons:{type:Array,required:!0},modelValue:{type:[String,Number,Boolean],default:null},disabled:{type:Boolean,default:!1},uid:{type:String,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Wt={class:"btn-group btn-block btn-group-toggle"},jt=["for"],zt=["id","value","disabled","onClick"];function Nt(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",Wt,[(i(!0),c(M,null,q(s.buttons,p=>(i(),c("label",{key:p.buttonValue,class:C(["btn btn-same-size btn-centered",[{active:s.modelValue===p.buttonValue},{disabled:s.disabled},p.class?p.class:"btn-outline-info"]]),for:`${s.uid}-${p.buttonValue}`},[l("span",null,[O(l("input",$({id:`${s.uid}-${p.buttonValue}`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"radio",value:p.buttonValue},{ref_for:!0},e.$attrs,{disabled:s.disabled,onClick:r=>e.$emit("button-click",p.buttonValue)}),null,16,zt),[[de,n.value]]),_(e.$slots,"label-"+p.buttonValue,{},()=>[h(w(p.text),1)],!0),t[1]||(t[1]=l("span",null," ",-1)),b(a,{icon:["fas","check"],style:ue([n.value==p.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],10,jt))),128))])}const ne=S(Rt,[["render",Nt],["__scopeId","data-v-4bd221b6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonRow.vue"]]),Ut=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"})),Ft={name:"OpenwbButtonGroupInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseButtonRow:ne},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0},disabled:{type:Boolean,required:!1,default:!1},maxButtonsPerRow:{type:Number,default:Number.POSITIVE_INFINITY}},emits:["update:modelValue","button-click"],data(){return{containerWidth:0}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},maxButtonsPerRowAuto(){return this.containerWidth<=200?1:this.containerWidth<=360?2:this.containerWidth<=550?3:1/0},buttonRows(){const e=[];for(let t=0;t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Ht,[(i(!0),c(M,null,q(n.buttonRows,(r,v)=>(i(),f(a,$({key:v,buttons:r,uid:e.uid,"model-value":n.value,disabled:s.disabled},{ref_for:!0},e.$attrs,{"onUpdate:modelValue":t[0]||(t[0]=k=>n.value=k),onButtonClick:t[1]||(t[1]=k=>e.$emit("button-click",k))}),P({_:2},[q(r,k=>({name:`label-${k.buttonValue}`,fn:m(y=>[_(e.$slots,`label-${k.buttonValue}`,$({ref_for:!0},y),void 0,!0)])}))]),1040,["buttons","uid","model-value","disabled"]))),128))],512)]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Gt=S(Ft,[["render",Kt],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Jt=Object.freeze(Object.defineProperty({__proto__:null,default:Gt},Symbol.toStringTag,{value:"Module"})),Zt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},Qt=["title"];function Yt(e,t,s,u,o,n){return i(),c("button",{type:"button",class:"btn btn-block",title:s.tooltip,onClick:t[0]||(t[0]=E((...a)=>n.click&&n.click(...a),["prevent"]))},[_(e.$slots,"default",{},()=>[h(w(s.title),1)],!0)],8,Qt)}const oe=S(Zt,[["render",Yt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:oe},Symbol.toStringTag,{value:"Module"})),es={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseClickButton:oe},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function ts(e,t,s,u,o,n){const a=g("openwb-base-click-button"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[b(a,$({class:(s.disabled?"btn-outline-":"btn-")+s.subtype,disabled:s.disabled},e.$attrs,{onButtonClicked:n.handleClick}),{default:m(()=>[h(w(s.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const ss=S(es,[["render",ts],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),ns=Object.freeze(Object.defineProperty({__proto__:null,default:ss},Symbol.toStringTag,{value:"Module"}));A.add(Be,$e);const os={name:"OpenwbCard",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},is={class:"form-group mb-0"},as={class:"form-row vaRow mb-0 py-2"},ls={class:"col"},rs={class:"card-actions ml-4"},ds={key:0,class:"card-actions mr-2"},us={key:2,class:"card-footer"};function cs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",{class:C(["card","border-"+s.subtype])},[s.title!==void 0||e.$slots.header?(i(),c("div",{key:0,class:C(["card-header py-1","bg-"+s.subtype]),onClick:t[0]||(t[0]=(...p)=>n.toggleBody&&n.toggleBody(...p))},[l("div",is,[l("div",as,[l("div",ls,[_(e.$slots,"header",{collapsed:o.isCollapsed},()=>[h(w(s.title),1)],!0)])])]),l("div",rs,[e.$slots.actions?(i(),c("div",ds,[_(e.$slots,"actions",{collapsed:o.isCollapsed},void 0,!0)])):d("",!0),s.collapsible?(i(),f(a,{key:1,icon:o.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):d("",!0)])],2)):d("",!0),o.isCollapsed===!1?(i(),c("div",$({key:1,class:["card-body",[s.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+s.bodyBg]]},e.$attrs),[_(e.$slots,"default",{},void 0,!0)],16)):d("",!0),e.$slots.footer&&o.isCollapsed===!1?(i(),c("div",us,[_(e.$slots,"footer",{},void 0,!0)])):d("",!0)],2)}const ps=S(os,[["render",cs],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),ms=Object.freeze(Object.defineProperty({__proto__:null,default:ps},Symbol.toStringTag,{value:"Module"})),fs={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},gs={class:"col-md-8"},hs=["id"];function bs(e,t,s,u,o,n){const a=g("openwb-base-setting-element");return i(),f(a,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[l("div",gs,[O(l("input",$({id:`${e.uid}-checkbox-input`,"onUpdate:modelValue":t[0]||(t[0]=p=>n.value=p),class:"form-control",type:"checkbox"},e.$attrs),null,16,hs),[[ce,n.value]])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const _s=S(fs,[["render",bs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),vs=Object.freeze(Object.defineProperty({__proto__:null,default:_s},Symbol.toStringTag,{value:"Module"}));A.add(Ie);const ys={name:"OpenwbColorPicker",components:{FontAwesomeIcon:T},mixins:[L],props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},ws={class:"wrapper"},ks=["id","value","title"];function Ss(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",ws,[l("input",{id:`${e.uid}-color-input`,type:"color",class:"custom-color-picker",value:s.modelValue,title:`Farbe: ${s.modelValue}`,onInput:t[0]||(t[0]=r=>n.changed(r.target.value))},null,40,ks),s.defaultColor?(i(),f(p,{key:0,description:`Zurücksetzen auf Standardfarbe (${s.defaultColor})`},{default:m(()=>[b(a,{class:"ml-1 clickable",icon:["fas","rotate-left"],onClick:t[1]||(t[1]=r=>n.changed(s.defaultColor))})]),_:1},8,["description"])):d("",!0)])}const Cs=S(ys,[["render",Ss],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Bs=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"})),{text:J,copy:$s,copied:Is,isSupported:Os}=pe({copiedDuring:3e3,legacy:!0});A.add(Oe,Ae);const As={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:T},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?.innerText?this.$refs.content.innerText.trim():""},isCopied(){return Is.value&&J.value===this.contentText},copySupported(){return Os.value}},methods:{click(){this.copySupported&&$s(this.contentText).then(()=>{console.debug("Text copied to clipboard:",J.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},Ts=["title"],Ms={ref:"content"};function Vs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("span",{title:n.copySupported&&!n.isCopied?s.tooltip:"",class:C({"copy-me":n.copySupported&&!n.isCopied}),onClick:t[0]||(t[0]=E((...p)=>n.click&&n.click(...p),["stop"]))},[l("span",Ms,[_(e.$slots,"default",{},void 0,!0)],512),n.copySupported?(i(),f(a,{key:0,class:"ml-1",icon:n.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):d("",!0)],10,Ts)}const qs=S(As,[["render",Vs],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),Ps=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));A.add(Y,X,U);const Ds={name:"OpenwbHeading",components:{FontAwesomeIcon:T},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ls={class:"heading-text"},Es={key:0,class:"actions"},xs={class:""},Rs={key:0,class:"form-row alert alert-info small flex-fill"};function Ws(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c(M,null,[l("div",$({class:"card-text card-text-heading"},e.$attrs),[l("div",Ls,[_(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),e.$slots.actions?(i(),c("span",Es,[_(e.$slots,"actions",{},void 0,!0)])):d("",!0)],16),l("div",xs,[o.showHelp?(i(),c("span",Rs,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],64)}const js=S(Ds,[["render",Ws],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),zs=Object.freeze(Object.defineProperty({__proto__:null,default:js},Symbol.toStringTag,{value:"Module"}));A.add(Te,Me,Ve,qe);const R={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},Ns={name:"OpenwbIoPattern",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return R[e].icon},getIconClass(e){return R[e].iconClass},getTitle(e){return R[e].title},toggleInput(e,t){this.value[e]=R[t].nextValue}}};function Us(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip"),r=g("openwb-base-setting-element");return i(),f(r,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[(i(!0),c(M,null,q(n.value,(v,k)=>(i(),c("span",{key:k},[b(p,{description:n.getTitle(v)},{default:m(()=>[b(a,{icon:n.getIcon(v),class:C([n.getIconClass(v),"fa-fw clickable"]),size:"2x",transform:v=="undefined"?"shrink-6":null,mask:v=="undefined"?["fas","square"]:null,onClick:E(y=>n.toggleInput(k,v),["stop","prevent"]),onMousedown:t[0]||(t[0]=E(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=E(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Fs=S(Ns,[["render",Us],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),Hs=Object.freeze(Object.defineProperty({__proto__:null,default:Fs},Symbol.toStringTag,{value:"Module"})),Ks={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=[...this.buttons]),e.findIndex(t=>t.event==="close")===-1&&!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)}}},Gs={class:"modal-content"},Js={class:"modal-title"},Zs={class:"modal-body"},Qs=["disabled","data-event"];function Ys(e,t,s,u,o,n){return s.show?(i(),f(j,{key:0,to:"body"},[t[5]||(t[5]=l("div",{class:"modal-backdrop fade show"},null,-1)),l("div",{class:"modal fade d-block show",role:"dialog",onClick:t[3]||(t[3]=(...a)=>n.handleClick&&n.handleClick(...a))},[l("div",{class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document",onClick:t[2]||(t[2]=E(()=>{},["stop"]))},[l("div",Gs,[l("div",{class:C(["modal-header","bg-"+s.subtype])},[l("h4",Js,w(s.title),1),s.preventClose?d("",!0):(i(),c("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>n.handleClick&&n.handleClick(...a))}," × "))],2),l("div",Zs,[_(e.$slots,"default",{},()=>[t[4]||(t[4]=h("# Body #",-1))])]),n.myButtons.length>0?(i(),c("div",{key:0,class:C(["modal-footer d-flex","justify-content-"+s.footerAlignment])},[(i(!0),c(M,null,q(n.myButtons,a=>(i(),c("button",{key:a.text,disabled:a.disabled===!0,type:"button",class:C(["btn",(a.disabled?"btn-outline-":"btn-")+(a.subtype??"secondary")]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...p)=>n.handleClick&&n.handleClick(...p))},w(a.text),11,Qs))),128))],2)):d("",!0)])])])])):d("",!0)}const Xs=S(Ks,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Xs},Symbol.toStringTag,{value:"Module"}));A.add(Pe);const tn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},sn={class:"input-group"},nn={class:"input-group-prepend"},on={class:"input-group-text"},an=["id"],ln={key:0,class:"input-group-append"},rn={class:"input-group-text"},dn={key:1,class:"input-group-append"},un={class:"input-group-text p-0"};function cn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",sn,[l("div",nn,[l("div",on,[b(a,{icon:["fas","calculator"]})])]),O(l("input",$({id:`${e.uid}-number-input`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,an),[[V,n.value,void 0,{lazy:!0,number:!0}]]),s.unit?(i(),c("div",ln,[l("div",rn,w(s.unit),1)])):d("",!0),e.$slots.append?(i(),c("div",dn,[l("div",un,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pn=S(tn,[["render",cn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),mn=Object.freeze(Object.defineProperty({__proto__:null,default:pn},Symbol.toStringTag,{value:"Module"}));A.add(De,Le);const fn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",gn,[l("div",hn,[n.label?(i(),c("label",{key:0,class:"col-2 pl-0 col-form-label valueLabel",for:`${e.uid}-button`},w(n.label),9,bn)):d("",!0),l("button",{id:`${e.uid}-button`,class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[0]||(t[0]=(...r)=>n.decrement&&n.decrement(...r))},[b(a,{icon:["fas","step-backward"]})],8,_n),l("div",vn,[O(l("input",$({"onUpdate:modelValue":t[1]||(t[1]=r=>n.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:s.min,max:s.max,step:s.step},e.$attrs),null,16,yn),[[V,n.sliderValue,void 0,{number:!0}]])]),l("button",{class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[2]||(t[2]=(...r)=>n.increment&&n.increment(...r))},[b(a,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const kn=S(fn,[["render",wn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:kn},Symbol.toStringTag,{value:"Module"}));A.add(N);const Cn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Bn={class:"w-100"},$n={class:"input-group"},In={key:0,class:"input-group-prepend"},On={class:"input-group-text"},An=["id"],Tn=["value"],Mn=["value"],Vn=["label"],qn=["value"],Pn={key:1,class:"input-group-append"};function Dn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({default:m(()=>[l("div",Bn,[l("div",$n,[e.$slots.prefix?(i(),c("div",In,[l("div",On,[_(e.$slots,"prefix")])])):d("",!0),O(l("select",$({id:`${e.uid}-select`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"col form-control"},e.$attrs),[s.notSelected!==void 0?(i(),c("option",{key:0,value:s.emptyValue,disabled:""}," -- "+w(s.notSelected)+" -- ",9,Tn)):d("",!0),(i(!0),c(M,null,q(s.options,r=>(i(),c("option",{key:r.value,value:r.value},w(r.text),9,Mn))),128)),(i(!0),c(M,null,q(s.groups,r=>(i(),c("optgroup",{key:r.label,label:r.label},[(i(!0),c(M,null,q(r.options,v=>(i(),c("option",{key:v.value,value:v.value},w(v.text),9,qn))),128))],8,Vn))),128))],16,An),[[Q,n.value]]),s.addButton?(i(),c("div",Pn,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})])],2)])):d("",!0)])])]),_:2},[e.$slots.title||s.title?{name:"title",fn:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"1"}:void 0]),1024)}const Ln=S(Cn,[["render",Dn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),En=Object.freeze(Object.defineProperty({__proto__:null,default:Ln},Symbol.toStringTag,{value:"Module"}));A.add(U,Ee,xe);const xn={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:T},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0},saveLabel:{type:String,default:"Speichern"},saveDisabled:{type:Boolean,default:!1},saveId:{type:String,default:"saveSettingsBtn"},resetLabel:{type:String,default:"Änderungen verwerfen"},resetDisabled:{type:Boolean,default:!1},resetId:{type:String,default:"modalResetBtn"},defaultsLabel:{type:String,default:"Werkseinstellungen"},defaultsDisabled:{type:Boolean,default:!1},defaultsId:{type:String,default:"modalDefaultsBtn"}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},Rn={class:"row justify-content-center mb-1"},Wn={class:"col-md-4 d-flex py-1 justify-content-center"},jn=["id","disabled"],zn={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},Nn=["id","disabled"],Un={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},Fn=["id","disabled"];function Hn(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog"),p=g("font-awesome-icon");return i(),c(M,null,[b(a,{show:n.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:m(()=>[...t[3]||(t[3]=[h(" Einstellungen werden gespeichert... ",-1)])]),_:1},8,["show"]),b(a,{show:o.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:n.handleModalReset},{default:m(()=>[...t[4]||(t[4]=[h(" Willst Du die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])]),_:1},8,["show","onModalResult"]),b(a,{show:o.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:n.handleModalDefaults},{default:m(()=>[...t[5]||(t[5]=[h(" Willst Du wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])]),_:1},8,["show","onModalResult"]),l("div",Rn,[l("div",Wn,[l("button",{id:s.saveId,type:"button",class:C(["btn btn-block",[{disabled:s.saveDisabled},s.saveDisabled?"btn-outline-success":"btn-success"]]),disabled:s.saveDisabled,onClick:t[0]||(t[0]=(...r)=>n.saveSettings&&n.saveSettings(...r))},[h(w(s.saveLabel)+" ",1),b(p,{icon:["fas","check"]})],10,jn)]),s.hideReset?d("",!0):(i(),c("div",zn,[l("button",{id:s.resetId,type:"button",class:C(["btn btn-block",[{disabled:s.resetDisabled},s.resetDisabled?"btn-outline-warning":"btn-warning"]]),disabled:s.resetDisabled,onClick:t[1]||(t[1]=(...r)=>n.showResetModal&&n.showResetModal(...r))},[h(w(s.resetLabel)+" ",1),b(p,{icon:["fas","undo"]})],10,Nn)])),s.hideDefaults?d("",!0):(i(),c("div",Un,[l("button",{id:s.defaultsId,type:"button",class:C(["btn btn-block",[{disabled:s.defaultsDisabled},s.defaultsDisabled?"btn-outline-danger":"btn-danger"]]),disabled:s.defaultsDisabled,onClick:t[2]||(t[2]=(...r)=>n.showDefaultsModal&&n.showDefaultsModal(...r))},[h(w(s.defaultsLabel)+" ",1),b(p,{icon:["fas","times"]})],10,Fn)]))])],64)}const Kn=S(xn,[["render",Hn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),Gn=Object.freeze(Object.defineProperty({__proto__:null,default:Kn},Symbol.toStringTag,{value:"Module"}));A.add(ee,Re,We,je,ze,Ne,te,Ue,Fe,He,Ke,N,Ge,Je);const Jn={name:"OpenwbTextInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","group","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},validator:{type:Function,required:!1,default:null},showQuickButtons:{type:Boolean,default:!1},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.validator){console.log("Validating input value:",e);const t=this.validator(e);console.log("Validation result:",t);const s=this.inputRef;t!==!0?(console.log("Marking input as invalid",JSON.stringify(this.$refs)),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(t),this.inputInvalid=!0,this.tempValue=e):(console.log("Input is valid"),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(""),this.inputInvalid=!1)}if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"},addDisabled:{get(){return this.value===this.emptyValue}}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,s=new Date(this.modelValue);switch(this.subtype){case"date":s.setDate(s.getDate()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0")+"-"+String(s.getDate()).padStart(2,"0");break;case"month":s.setMonth(s.getMonth()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0");break;case"year":s.setYear(s.getFullYear()+e),t=String(s.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Zn,[l("div",Qn,[l("div",Yn,[l("div",Xn,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="email"?(i(),f(a,{key:1,icon:["fas","envelope"]})):d("",!0),s.subtype=="host"?(i(),f(a,{key:2,icon:["fas","network-wired"]})):d("",!0),s.subtype=="url"?(i(),f(a,{key:3,icon:["fas","globe"]})):d("",!0),s.subtype=="user"?(i(),f(a,{key:4,icon:["fas","user"]})):d("",!0),s.subtype=="group"?(i(),f(a,{key:5,icon:["fas","users"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:6,icon:["fas","code"]})):d("",!0),s.subtype=="password"?(i(),f(a,{key:7,icon:o.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):d("",!0),s.subtype=="time"?(i(),f(a,{key:8,icon:["fas","clock"]})):d("",!0),s.subtype=="date"||s.subtype=="month"||s.subtype=="year"?(i(),f(a,{key:9,icon:["fas","calendar-day"]})):d("",!0)])]),["text","user","group"].includes(s.subtype)?O((i(),c("input",$({key:0,id:`${e.uid}-text-input`,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"text",class:["form-control",{invalid:o.inputInvalid}]},e.$attrs,{pattern:s.pattern}),null,16,eo)),[[V,n.value]]):d("",!0),s.subtype=="json"?O((i(),c("input",$({key:1,id:`${e.uid}-json-input`,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,to)),[[V,n.value]]):d("",!0),s.subtype=="password"?O((i(),c("input",$({key:2,id:`${e.uid}-password-input`,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>n.value=r),type:o.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,so)),[[G,n.value]]):d("",!0),s.subtype=="host"?O((i(),c("input",$({key:3,id:`${e.uid}-host-input`,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.hostPattern}),null,16,no)),[[V,n.value]]):d("",!0),["email","url"].includes(s.subtype)?O((i(),c("input",$({key:4,id:`${e.uid}-url-input`,ref:"urlInput","onUpdate:modelValue":t[4]||(t[4]=r=>n.value=r),type:s.subtype,class:"form-control"},e.$attrs),null,16,oo)),[[G,n.value]]):d("",!0),s.subtype=="time"?O((i(),c("input",$({key:5,id:`${e.uid}-time-input`,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>n.value=r),type:"time",class:"form-control"},e.$attrs),null,16,io)),[[V,n.value]]):d("",!0),s.subtype=="date"?O((i(),c("input",$({key:6,id:`${e.uid}-date-input`,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>n.value=r),type:"date",class:"form-control"},e.$attrs),null,16,ao)),[[V,n.value]]):d("",!0),s.subtype=="month"?O((i(),c("input",$({key:7,id:`${e.uid}-month-input`,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>n.value=r),type:"month",class:"form-control"},e.$attrs),null,16,lo)),[[V,n.value]]):d("",!0),s.subtype=="year"?O((i(),c("input",$({key:8,id:`${e.uid}-year-input`,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,ro)),[[V,n.value]]):d("",!0),s.unit?(i(),c("div",uo,[l("div",co,w(s.unit),1)])):d("",!0),s.subtype=="password"?(i(),c("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>n.togglePassword&&n.togglePassword(...r))},[l("div",po,[b(a,{icon:o.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>n.modify(-1))},[...t[13]||(t[13]=[l("div",{class:"input-group-text"},"-",-1)])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>n.modify(1))},[...t[14]||(t[14]=[l("div",{class:"input-group-text"},"+",-1)])])):d("",!0),s.addButton?(i(),c("div",mo,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[12]||(t[12]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])):d("",!0),e.$slots.append?(i(),c("div",fo,[l("div",go,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const bo=S(Jn,[["render",ho],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),_o=Object.freeze(Object.defineProperty({__proto__:null,default:bo},Symbol.toStringTag,{value:"Module"}));A.add(ee,te);const vo={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:D,FontAwesomeIcon:T},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},yo={class:"w-100"},wo={class:"input-group"},ko={class:"input-group-prepend"},So={class:"input-group-text"},Co=["id"],Bo=["id"],$o={key:2,class:"input-group-append"},Io={class:"input-group-text"},Oo={class:"form-text text-muted text-right"};function Ao(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",yo,[l("div",wo,[l("div",ko,[l("div",So,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:1,icon:["fas","code"]})):d("",!0)])]),s.subtype==="json"?O((i(),c("textarea",$({key:0,id:`${e.uid}-textarea`,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Co)),[[V,n.value,void 0,{lazy:!0}]]):O((i(),c("textarea",$({key:1,id:`${e.uid}-textarea`,"onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Bo)),[[V,n.value]]),e.$attrs.maxlength?(i(),c("div",$o,[l("div",Io,[l("small",Oo,w(n.length)+" / "+w(e.$attrs.maxlength),1)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const To=S(vo,[["render",Ao],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Mo=Object.freeze(Object.defineProperty({__proto__:null,default:To},Symbol.toStringTag,{value:"Module"})),Vo={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const u=new Date-this.timestamp*1e3;for(var o in e)if(Math.abs(u)>e[o]){this.relativeTime=t.format(Math.round(-u/e[o]),o);break}u>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},qo={key:0,class:"time-diff"},Po={class:"toast-body"};function Do(e,t,s,u,o,n){return i(),c("div",{class:C(["toast","border-"+s.subtype]),role:"alert"},[l("div",{class:C(["toast-header","bg-"+s.subtype])},[t[2]||(t[2]=l("strong",{class:"pr-2 mr-auto"},"openWB",-1)),s.timestamp?(i(),c("small",qo,w(o.relativeTime),1)):d("",!0),l("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>n.dismiss&&n.dismiss(...a))},[...t[1]||(t[1]=[l("span",{"aria-hidden":"true"},"×",-1)])])],2),l("div",Po,[_(e.$slots,"default",{},void 0,!0)])],2)}const Lo=S(Vo,[["render",Do],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Eo=Object.freeze(Object.defineProperty({__proto__:null,default:Lo},Symbol.toStringTag,{value:"Module"})),xo={name:"OpenwbTooltip",props:{description:{type:String,default:"#TOOLTIP#"},addHint:{type:Boolean,default:!1}}},Ro=["title"];function Wo(e,t,s,u,o,n){return i(),c("div",{class:C(["base-text",{dotted:s.addHint}]),title:s.description},[_(e.$slots,"default",{},void 0,!0)],10,Ro)}const jo=S(xo,[["render",Wo],["__scopeId","data-v-c65a1128"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTooltip.vue"]]),zo=Object.freeze(Object.defineProperty({__proto__:null,default:jo},Symbol.toStringTag,{value:"Module"})),No={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopics:[],weekdays:["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],chargeModes:["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"],statusLevel:["success","warning","danger"]}},computed:{mqttTopicsToSubscribe(){return this.mqttTopics.map(e=>e.topic)},mqttTopicsToPublish(){return this.mqttTopics.filter(e=>e.writeable).map(e=>e.topic)}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,s=void 0){console.debug("updateState:",e,t,s),this.$store.commit({type:"updateTopic",topic:e,objectPath:s,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let s=e;t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let u=Object.keys(this.$store.state.mqtt).filter(o=>o.match(s));return u.forEach((o,n,a)=>{a[n]=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),u},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,s=t,u=1){if(!(e==null||isNaN(e)))return e=e*u,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:s})},formatNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,s,u):"-"},formatPhaseArrayNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(o=>this.formatNumber(o,t,s,u)):["-","-","-"]},translateChargeMode(e){return{instant_charging:"Sofort",pv_charging:"PV",scheduled_charging:"Zielladen",time_charging:"Zeitladen",eco_charging:"Eco",standby:"Standby",stop:"Stop"}[e]||e}}},z=S(No,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);A.add(Ze);const Uo={name:"OpenwbNavBar",components:{FontAwesomeIcon:T},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/security/access/+",writeable:!1}]}},computed:{nodeEnv(){return"development"},accessAllowed(){return e=>this.$store.state.mqtt[`openWB/system/security/access/${e}`]===!0}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},Fo={class:"navbar navbar-expand-xl bg-dark navbar-dark fixed-top"},Ho={ref:"navbarButton",class:"navbar-toggler mr-auto",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},Ko={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},Go={class:"navbar-nav mr-auto"},Jo={key:0,class:"nav-item"},Zo={class:"nav-item dropdown nav-separator-before"},Qo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},Yo={class:"nav-item dropdown nav-separator-before"},Xo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ei={class:"nav-item dropdown"},ti={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},si={class:"nav-item dropdown"},ni={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},oi={key:5,class:"dropdown-divider"},ii={key:6,href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"},ai={class:"nav-item dropdown"},li={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ri={class:"nav-item nav-separator-before"},di={class:"nav-link",href:"https://wiki.openwb.de/",target:"_blank"};function ui(e,t,s,u,o,n){const a=g("router-link"),p=g("font-awesome-icon");return i(),c("nav",Fo,[t[30]||(t[30]=l("a",{class:"navbar-brand",href:"/openWB/web/"},[l("span",null,"openWB")],-1)),l("button",Ho,[...t[0]||(t[0]=[l("span",{class:"navbar-toggler-icon"},null,-1)])],512),l("div",Ko,[l("ul",Go,[n.accessAllowed("Status")?(i(),c("li",Jo,[b(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:m(()=>[...t[1]||(t[1]=[h(" Status ",-1)])]),_:1})])):d("",!0),l("li",Zo,[t[4]||(t[4]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),l("div",Qo,[n.accessAllowed("ChargeLog")?(i(),f(a,{key:0,to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[2]||(t[2]=[h(" Ladeprotokoll ",-1)])]),_:1})):d("",!0),n.accessAllowed("Chart")?(i(),f(a,{key:1,to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[3]||(t[3]=[h(" Diagramme ",-1)])]),_:1})):d("",!0)])]),l("li",Yo,[t[8]||(t[8]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),l("div",Xo,[n.accessAllowed("GeneralConfiguration")?(i(),f(a,{key:0,to:"/GeneralConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[5]||(t[5]=[h(" Allgemein ",-1)])]),_:1})):d("",!0),n.accessAllowed("DisplayConfiguration")?(i(),f(a,{key:1,to:"/DisplayConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[6]||(t[6]=[h(" Display ",-1)])]),_:1})):d("",!0),n.accessAllowed("IdentificationConfiguration")?(i(),f(a,{key:2,to:"/IdentificationConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[7]||(t[7]=[h(" Identifikation ",-1)])]),_:1})):d("",!0)])]),l("li",ei,[t[12]||(t[12]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),l("div",ti,[n.accessAllowed("GeneralChargeConfiguration")?(i(),f(a,{key:0,to:"/GeneralChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[9]||(t[9]=[h(" Übergreifendes ",-1)])]),_:1})):d("",!0),n.accessAllowed("SurplusChargeConfiguration")?(i(),f(a,{key:1,to:"/SurplusChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[10]||(t[10]=[h(" Überschuss-Laden ",-1)])]),_:1})):d("",!0),n.accessAllowed("ActiveBatControlConfiguration")?(i(),f(a,{key:2,to:"/ActiveBatControlConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[11]||(t[11]=[h(" Speichersteuerung ",-1)])]),_:1})):d("",!0)])]),l("li",si,[t[18]||(t[18]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),l("div",ni,[n.accessAllowed("HardwareInstallation")?(i(),f(a,{key:0,to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[13]||(t[13]=[h(" Geräte und Komponenten ",-1)])]),_:1})):d("",!0),n.accessAllowed("LoadManagementConfiguration")?(i(),f(a,{key:1,to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[14]||(t[14]=[h(" Lastmanagement ",-1)])]),_:1})):d("",!0),n.accessAllowed("ChargePointInstallation")?(i(),f(a,{key:2,to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[15]||(t[15]=[h(" Ladepunkte ",-1)])]),_:1})):d("",!0),n.accessAllowed("VehicleConfiguration")?(i(),f(a,{key:3,to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[16]||(t[16]=[h(" Fahrzeuge ",-1)])]),_:1})):d("",!0),n.accessAllowed("IoConfiguration")?(i(),f(a,{key:4,to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[17]||(t[17]=[h(" Ein-/Ausgänge ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("div",oi)):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("a",ii," SmartHome ")):d("",!0)])]),l("li",ai,[t[28]||(t[28]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),l("div",li,[n.accessAllowed("InstallAssistant")?(i(),f(a,{key:0,to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[19]||(t[19]=[h(" Einrichtungsassistent ",-1)])]),_:1})):d("",!0),n.accessAllowed("CloudConfiguration")?(i(),f(a,{key:1,to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[20]||(t[20]=[h(" openWB Cloud ",-1)])]),_:1})):d("",!0),n.accessAllowed("MqttBridgeConfiguration")?(i(),f(a,{key:2,to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[21]||(t[21]=[h(" MQTT-Brücken ",-1)])]),_:1})):d("",!0),n.accessAllowed("DebugConfiguration")?(i(),f(a,{key:3,to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[22]||(t[22]=[h(" Fehlersuche ",-1)])]),_:1})):d("",!0),n.accessAllowed("Support")?(i(),f(a,{key:4,to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[23]||(t[23]=[h(" Support ",-1)])]),_:1})):d("",!0),n.accessAllowed("DataManagement")?(i(),f(a,{key:5,to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[24]||(t[24]=[h(" Datenverwaltung ",-1)])]),_:1})):d("",!0),n.accessAllowed("SecurityConfiguration")?(i(),f(a,{key:6,to:"/System/SecurityConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[25]||(t[25]=[h(" Sicherheit ",-1)])]),_:1})):d("",!0),n.accessAllowed("SystemConfiguration")?(i(),f(a,{key:7,to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[26]||(t[26]=[h(" System ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegalSettings")?(i(),f(a,{key:8,to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[27]||(t[27]=[h(" Rechtliches ",-1)])]),_:1})):d("",!0)])]),l("li",ri,[l("a",di,[t[29]||(t[29]=h(" Wiki ",-1)),b(p,{icon:["fas","external-link-alt"]})])])])],512),t[31]||(t[31]=l("div",{class:"ml-auto d-flex flex-row align-items-center"},[l("div",{id:"info-target"}),l("div",{id:"user-target"}),l("div",{id:"message-target"})],-1))])}const ci=S(Uo,[["render",ui],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]),pi={name:"OpenwbPageFooter"},mi={id:"footer",class:"footer bg-dark text-light font-small"},fi={class:"container text-center"};function gi(e,t,s,u,o,n){return i(),c("footer",mi,[l("div",fi,[l("small",null," Du befindest dich hier: Einstellungen / "+w(e.$route.meta.heading),1)])])}const hi=S(pi,[["render",gi],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);A.add(Qe,Ye,Xe,et);const bi={name:"OpenwbPageUser",components:{FontAwesomeIcon:T,FontAwesomeLayers:se},mixins:[z],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/security/access_allowed",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],showLoginModal:!1,showPasswordResetModal:!1,showLogoutModal:!1,username:"",password:"",token:"",passwordConfirm:"",tokenRequested:!1,passwordResetRequested:!1,smallScreen:!1}},computed:{loggedInUser(){return this.$store.state.local.username||null},userManagementActive(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},accessAllowed(){return this.$store.state.mqtt["openWB/system/security/access_allowed"]===void 0?!1:this.$store.state.mqtt["openWB/system/security/access_allowed"]===!0},anonymousAccessAllowed(){return this.accessAllowed&&this.loggedInUser===null},dataProtectionAcknowledged(){return this.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0},loginButtons(){let e=[{text:"Anmelden",event:"login",subtype:"success",disabled:this.stringIsEmpty(this.username)||this.stringIsEmpty(this.password)}];return this.dataProtectionAcknowledged&&e.push({text:"Kennwort vergessen",event:"forgot_password",subtype:"warning"}),e},requestTokenDisabled(){return this.stringIsEmpty(this.username)||this.tokenRequested},resetPasswordDisabled(){return this.stringIsEmpty(this.username)||this.stringIsEmpty(this.token)||this.stringIsEmpty(this.password)||this.stringIsEmpty(this.passwordConfirm)||this.password!==this.passwordConfirm||this.passwordResetRequested},modalBlockerVisible(){return this.$store.state.local.modalBlockerVisible===!0}},watch:{userManagementActive(){this.checkAutoLogin()},loggedInUser(e){e&&this.checkAutoLogin()},accessAllowed(){this.checkAutoLogin()},modalBlockerVisible(){this.checkAutoLogin()}},mounted(){me(()=>{this.checkAutoLogin()})},beforeMount(){window.addEventListener("resize",this.updateScreenSize),this.updateScreenSize()},beforeUnmount(){window.removeEventListener("resize",this.updateScreenSize)},methods:{updateScreenSize(){this.smallScreen=window.innerWidth<576},stringIsEmpty(e){return!e||e.length===0},checkAutoLogin(){console.debug("Checking auto login: ",this.userManagementActive,this.accessAllowed,this.loggedInUser),this.userManagementActive&&!this.accessAllowed&&!this.modalBlockerVisible?this.showLoginModal=!0:this.showLoginModal=!1},doLogin(e){switch(e){case"login":if(!this.username||!this.password){this.$root.postClientMessage("Benutzername und Passwort erforderlich.","danger");return}this.$cookies.set("mqtt",`${this.username}:${this.password}`),this.$root.reconnectMqttClient(),location.reload();break;case"forgot_password":console.warn("Password reset requested for user:",this.username),this.showLoginModal=!1,this.username="",this.password="",this.showPasswordResetModal=!0;break;default:this.showLoginModal=!1,this.username="",this.password=""}},processResetResult(e){switch(console.log("Password reset modal result:",e),e){case"request_token":if(!this.username){this.$root.postClientMessage("Benutzername erforderlich.","danger");return}console.warn("Requesting password reset token for:",this.username),this.tokenRequested=!0,this.$emit("sendCommand",{command:"createPasswordResetToken",data:{username:this.username}});break;case"reset_password":if(!this.username||!this.token||!this.password||!this.passwordConfirm||this.password!==this.passwordConfirm){this.$root.postClientMessage("Benutzername, Token und neues Kennwort erforderlich.","danger");return}console.warn("Resetting password for:",this.username,"with token:",this.token,"and new password:",this.password),this.passwordResetRequested=!0,this.$root.postClientMessage("Das Token wird geprüft und bei Erfolg das Passwort zurückgesetzt. Dieser Vorgang dauert ein paar Sekunden.","info"),this.$emit("sendCommand",{command:"resetUserPassword",data:{username:this.username,token:this.token,newPassword:this.password}});break;case"close":this.showPasswordResetModal=!1,this.username="",this.password="",this.token="",this.passwordConfirm="",this.tokenRequested=!1,this.passwordResetRequested=!1,this.showLoginModal=!0;return}},doLogout(e){this.showLogoutModal=!1,e==="confirm"&&(console.warn("Logging out user"),this.$cookies.remove("mqtt"),this.$root.reconnectMqttClient(),location.reload())}}},_i={id:"user-indicator",class:"ml-2"},vi={key:0,class:"pill bg-primary"},yi={key:0,class:"non-selectable"},wi={key:1,class:"pill bg-secondary"},ki={name:"loginForm"},Si={name:"requestTokenForm"};function Ci(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-tooltip"),r=g("FontAwesomeLayers"),v=g("openwb-base-modal-dialog"),k=g("openwb-base-text-input");return i(),c(M,null,[n.userManagementActive===!0?(i(),f(j,{key:0,defer:"",to:"#user-target"},[l("div",_i,[n.loggedInUser?(i(),c("span",vi,[b(p,{description:`Angemeldet als ${n.loggedInUser}`},{default:m(()=>[b(a,{icon:["fas","circle-user"],size:"lg"}),o.smallScreen?d("",!0):(i(),c("span",yi,w(n.loggedInUser),1))]),_:1},8,["description"]),b(p,{description:"Abmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-from-bracket"],size:"lg",onClick:t[0]||(t[0]=y=>o.showLogoutModal=!0)})]),_:1})])):(i(),c("span",wi,[b(p,{description:"Nicht angemeldet"},{default:m(()=>[b(r,null,{default:m(()=>[b(a,{icon:["fas","circle-user"]}),b(a,{icon:["fas","ban"],color:"red"})]),_:1})]),_:1}),b(p,{description:"Anmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-to-bracket"],size:"lg",onClick:t[1]||(t[1]=y=>o.showLoginModal=!0)})]),_:1})]))])])):d("",!0),n.userManagementActive?(i(),f(v,{key:1,show:o.showLogoutModal,title:"Abmelden",subtype:"warning",buttons:[{text:"Abmelden",event:"confirm",subtype:"danger"}],onModalResult:t[2]||(t[2]=y=>n.doLogout(y))},{default:m(()=>[...t[11]||(t[11]=[l("p",null,"Willst Du Dich wirklich abmelden?",-1)])]),_:1},8,["show"])):d("",!0),n.userManagementActive?(i(),f(v,{key:2,show:o.showLoginModal,"prevent-close":!n.anonymousAccessAllowed,title:"Anmelden",subtype:"success",buttons:n.loginButtons,onModalResult:t[5]||(t[5]=y=>n.doLogin(y))},{default:m(()=>[l("form",ki,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[3]||(t[3]=y=>o.username=y),title:"Benutzername",subtype:"user",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[4]||(t[4]=y=>o.password=y),title:"Passwort",subtype:"password",required:"",autocomplete:"current-password"},null,8,["modelValue"])])]),_:1},8,["show","prevent-close","buttons"])):d("",!0),n.userManagementActive&&n.dataProtectionAcknowledged?(i(),f(v,{key:3,show:o.showPasswordResetModal,title:"Kennwort zurücksetzen",subtype:"warning",buttons:[{text:"Token anfordern",event:"request_token",subtype:"success",disabled:n.requestTokenDisabled},{text:"Kennwort zurücksetzen",event:"reset_password",subtype:"primary",disabled:n.resetPasswordDisabled},{text:"Zurück",event:"close",subtype:"secondary"}],onModalResult:t[10]||(t[10]=y=>n.processResetResult(y))},{default:m(()=>[l("form",Si,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[6]||(t[6]=y=>o.username=y),title:"Benutzername",subtype:"user","empty-value":"",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.token,"onUpdate:modelValue":t[7]||(t[7]=y=>o.token=y),title:"Token",subtype:"password","empty-value":"",readonly:o.username.length<=0,disabled:o.username.length<=0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[8]||(t[8]=y=>o.password=y),title:"Neues Kennwort",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.passwordConfirm,"onUpdate:modelValue":t[9]||(t[9]=y=>o.passwordConfirm=y),title:"Neues Kennwort bestätigen",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0,validator:y=>y===o.password||"Kennwörter stimmen nicht überein"},null,8,["modelValue","readonly","disabled","validator"])])]),_:1},8,["show","buttons"])):d("",!0)],64)}const Bi=S(bi,[["render",Ci],["__scopeId","data-v-adc196c2"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageUser.vue"]]);A.add(tt,st);const $i={name:"OpenwbPageMqttConnectionState",components:{FontAwesomeIcon:T},props:{connected:{type:Boolean,required:!0}},data(){return{showIcon:!this.connected,visibilityTimeout:null}},watch:{connected(e){e?(clearTimeout(this.visibilityTimeout),this.visibilityTimeout=setTimeout(()=>{this.showIcon=!1},5e3)):(this.showIcon=!0,clearTimeout(this.visibilityTimeout))}}},Ii={id:"connection-state-indicator",class:"ml-2"};function Oi(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-avatar"),r=g("openwb-base-tooltip");return o.showIcon?(i(),f(j,{key:0,defer:"",to:"#info-target"},[l("div",Ii,[b(r,{description:`Verbindung ${s.connected?"hergestellt":"getrennt"}`},{default:m(()=>[b(p,{class:C(s.connected?"text-success":"bg-danger")},{default:m(()=>[b(a,{icon:s.connected?["fas","link"]:["fas","link-slash"]},null,8,["icon"])]),_:1},8,["class"])]),_:1},8,["description"])])])):d("",!0)}const Ai=S($i,[["render",Oi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMqttConnectionState.vue"]]);A.add(nt,ot);const Ti={name:"OpenwbPageMessages",components:{FontAwesomeIcon:T,FontAwesomeLayers:se,FontAwesomeLayersText:it},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/command/"+this.$root.mqttClientId+"/messages/+",writeable:!1},{topic:"openWB/system/messages/+",writeable:!1}],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,s)=>((t=="light"&&["info","success","warning","danger"].includes(s.type)||t=="info"&&["success","warning","danger"].includes(s.type)||t=="success"&&["warning","danger"].includes(s.type)||t=="warning"&&s.type=="danger")&&(t=s.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.localMessages.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[s,u]of Object.entries(e))t.push({topic:s,...u});return t},localMessages(){const e=this.$store.state.local.messages||{};var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});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.localMessages.find(s=>s.topic===e.topic)?this.$store.commit("removeClientMessage",e.topic):this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.dismissMessage({topic:e.topic})}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Mi=["title"],Vi=["innerHTML"];function qi(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("font-awesome-layers-text"),r=g("font-awesome-layers"),v=g("openwb-base-alert"),k=g("openwb-base-click-button"),y=g("openwb-base-toast");return i(),c(M,null,[(i(),f(j,{defer:"",to:"#message-target"},[l("div",{id:"message-indicator",class:C(["text-light clickable",o.showAllMessages?"active":""]),title:o.showAllMessages?"nur neue Nachrichten anzeigen":"Alle Nachrichten anzeigen",onClick:t[0]||(t[0]=(...I)=>n.toggleAllMessages&&n.toggleAllMessages(...I))},[b(r,{"full-width":""},{default:m(()=>[b(a,{icon:o.showAllMessages?["fas","bell"]:["far","bell"],class:C(n.messageIndicatorClass)},null,8,["icon","class"]),n.messages.length>0?(i(),f(p,{key:0,counter:"",value:n.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):d("",!0)]),_:1})],10,Mi)])),n.recentMessages.length>0||o.showAllMessages?(i(),c("div",{key:0,class:C(["openwb-toast-container",o.showAllMessages?"full-height":""])},[n.recentMessages.length==0?(i(),f(v,{key:0,subtype:"info"},{default:m(()=>[...t[1]||(t[1]=[h(" Keine Nachrichten vorhanden. ",-1)])]),_:1})):o.showAllMessages?(i(),f(k,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:n.dismissAllMessages},{default:m(()=>[...t[2]||(t[2]=[h(" Alle Nachrichten löschen ",-1)])]),_:1},8,["onButtonClicked"])):d("",!0),(i(!0),c(M,null,q(n.recentMessages,I=>(i(),f(y,{key:I.topic,topic:I.topic,source:I.source,subtype:I.type,timestamp:I.timestamp,onDismiss:n.dismissMessage,onHide:n.hideMessage},{default:m(()=>[l("span",{innerHTML:I.message},null,8,Vi)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):d("",!0)],64)}const Pi=S(Ti,[["render",qi],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Di={name:"OpenwbPageBlocker",mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],disconnectedTimeout:null}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.mqttClientDisconnected?"Verbindung zur openWB verloren":this.reloadRequired?"Die Seite muss neu geladen werden":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress||this.mqttClientDisconnected)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},mqttClientDisconnected(){return!this.$root.$data.connected},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.$store.state.local.modalBlockerVisible},modalType(){return this.mqttClientDisconnected&&!(this.bootInProgress||this.updateInProgress)?"danger":"dark"}},watch:{mqttClientDisconnected(e){e===!0?this.disconnectedTimeout=window.setTimeout(()=>{this.mqttClientDisconnected&&this.updateLocalStore()},2e3):(this.disconnectedTimeout&&(clearTimeout(this.disconnectedTimeout),this.disconnectedTimeout=null),this.updateLocalStore())},bootInProgress(e){e===!0&&this.updateInProgress===!0&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!0}),this.updateLocalStore()},updateInProgress(e){e===!1&&this.bootInProgress===!1&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!1}),this.updateLocalStore()},reloadRequired(){this.updateLocalStore()}},methods:{updateLocalStore(){this.$store.commit("storeLocal",{name:"modalBlockerVisible",value:this.bootInProgress||this.updateInProgress||this.reloadRequired||this.mqttClientDisconnected})},handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Li={class:"openwb-blocker"},Ei={key:0},xi={key:1},Ri={key:2},Wi={key:3},ji={key:4};function zi(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog");return i(),c("div",Li,[b(a,{show:n.showModalBlocker,title:n.title,subtype:n.modalType,"prevent-close":!0,buttons:n.myButtons,onModalResult:t[0]||(t[0]=p=>n.handleModalResult(p))},{default:m(()=>[n.bootInProgress?(i(),c("p",Ei,"Der Systemstart ist noch nicht abgeschlossen.")):n.updateInProgress?(i(),c("p",xi,"Es wird eine Systemaktualisierung ausgeführt.")):n.mqttClientDisconnected?(i(),c("p",Ri,[...t[1]||(t[1]=[h(" Die Verbindung zur openWB wurde unterbrochen.",-1),l("br",null,null,-1),h(" Es wird versucht, die Verbindung wieder herzustellen... ",-1)])])):n.reloadRequired?(i(),c("p",Wi,"Bitte die Seite neu laden.")):(i(),c("p",ji,"Bitte warten..."))]),_:1},8,["show","title","subtype","buttons"])])}const Ni=S(Di,[["render",zi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]),Ui={name:"OpenwbSettingsApp",components:{NavBar:ci,PageFooter:hi,UserInfo:Bi,MqttConnectionState:Ai,Messages:Pi,Blocker:Ni},data(){return{client:null,connected:!1,connection:{protocol:location.protocol=="https:"?"wss":"ws",protocolVersion:5,host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),path:"/ws",connectTimeout:4e3,reconnectPeriod:4e3,resubscribe:!0,properties:{requestResponseInformation:!0,requestProblemInformation:!0}},dataTimeout:null}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)},nodeEnv(){return"development"}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(u){return new Promise(o=>setTimeout(o,u))}function s(u){return u.includes("#")||u.includes("+")}this.$store.commit("storeLocal",{name:"savingData",value:!0});try{let u={};if(e===void 0){console.error("no topics to save defined!");return}if(Array.isArray(e))e.forEach(o=>{if(s(o)){console.debug("expanding wildcard topic:",o);const n=this.getWildcardTopics(o);Object.entries(n).forEach(([a,p])=>{console.debug("adding topic to save:",a),u[a]=p})}else console.debug("adding topic to save:",o),u[o]=this.$store.state.mqtt[o]});else{console.error("expected array, got ",typeof e);return}for(const[o,n]of Object.entries(u)){if(o.startsWith("$CONTROL")){console.debug("skipping control topic:",o);continue}let a=o.replace("openWB/","openWB/set/");console.debug("saving data:",a,n),this.doPublish(a,n),await t(50)}}finally{this.$store.commit("storeLocal",{name:"savingData",value:!1})}},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish(`openWB/set/command/${this.client.options.clientId}/todo/${e.command}`,e,!1)},createConnection(){const{protocol:e,host:t,port:s,path:u,...o}=this.connection,n=`${e}://${t}:${s}${u}`,[a,p]=this.$cookies.get("mqtt")?.match(/^([^:]+):(.+)$/)?.slice(1)||[null,null];a&&p||console.debug("Anonymous mqtt connection (no cookie set)"),(this.nodeEnv!=="production"||e=="wss")&&a&&p&&(console.debug(`Using mqtt credentials from cookie: "${a}" / "${p.charAt(0)}..."`),o.username=a,o.password=p,a==="admin"&&p==="openwb"&&(console.warn("Using default mqtt credentials! This is insecure and not recommended for production systems."),this.postClientMessage("Warnung: Es werden die Standard-Zugangsdaten für MQTT verwendet! Dies ist unsicher und wird für Produktivsysteme nicht empfohlen.","warning"))),console.debug("connecting to broker:",n),this.client=fe.connect(n,o),this.client.on("connect",()=>{this.connected=!0,console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),a&&(this.postClientMessage(`Angemeldet als "${a}".`,"success"),this.$store.commit("storeLocal",{name:"username",value:a})),this.doSubscribe(["openWB/system/boot_done","openWB/system/dataprotection_acknowledged","openWB/system/usage_terms_acknowledged","openWB/system/installAssistantDone","openWB/system/security/access/+"]),this.dataTimeout=setTimeout(()=>{console.warn("No data received after 1 second, connection might not be working. Removing mqtt cookie and trying again with anonymous connection."),a&&(this.$cookies.remove("mqtt"),this.reconnectMqttClient())},1e3)}),this.client.on("error",r=>{this.connected=!1,console.error("Connection failed",r),this.$cookies.remove("mqtt"),this.$store.commit("storeLocal",{name:"username",value:null}),this.reconnectMqttClient()}),this.client.on("message",(r,v)=>{if(this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null),v.toString().length>0){let k;try{k=JSON.parse(v.toString())}catch(y){console.debug("Json parsing failed, fallback to string: ",r,y),k=v.toString()}this.$store.commit("updateTopic",{topic:r,payload:k})}else this.$store.commit("removeTopic",r)}),this.client.on("end",()=>{this.connected=!1,console.error("mqtt connection ended")}),this.client.on("close",()=>{this.connected=!1,console.error("mqtt connection closed")}),this.client.on("offline",()=>{this.connected=!1,console.error("mqtt connection offline")}),this.client.on("disconnect",()=>{this.connected=!1,console.error("mqtt connection disconnected")}),this.client.on("reconnect",()=>{console.error("mqtt connection reconnecting...")})},endConnection(){this.connected?(console.warn("Ending mqtt connection..."),this.client.end(),this.connected=!1,this.$store.commit("storeLocal",{name:"username",value:null}),this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null)):console.error("No mqtt connection to end.")},reconnectMqttClient(){this.client?.connected&&this.endConnection(),this.createConnection()},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,{},s=>{if(s){this.postClientMessage(`Daten konnten nicht abonniert werden.
Topic: ${t}
${s}`,"danger"),this.$store.commit("removeSubscription",t);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,s=>{s&&(console.error("Unsubscribe error",s),this.postClientMessage(`Daten konnten nicht abbestellt werden.
Topic: ${t}
${s}`,"danger"))}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(s=>{console.debug("removing wildcardTopic:",s),this.$store.commit("removeTopic",s)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,s=!0,u=2){let o={qos:u,retain:s};this.client.publish(e,JSON.stringify(t),o,n=>{n&&(console.error("Publish error",n),this.postClientMessage(`Daten konnten nicht geschrieben werden.
Topic: ${e}
${n}`,"danger"))})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const s=Date.now();this.$store.commit({type:"addClientMessage",timestamp:s,payload:{message:e,type:t,source:"client",timestamp:Math.floor(s/1e3)}})},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})}}},Fi={role:"main",class:"container"},Hi={id:"content"};function Ki(e,t,s,u,o,n){const a=g("nav-bar"),p=g("router-view"),r=g("page-footer"),v=g("mqtt-connection-state"),k=g("user-info"),y=g("messages"),I=g("blocker");return i(),c(M,null,[l("header",null,[b(a)]),l("div",Fi,[l("div",Hi,[l("h1",null,w(e.$route.meta.heading),1),b(p,{onSave:n.saveValues,onReset:n.resetValues,onDefaults:n.setDefaultValues,onSendCommand:n.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),b(r),b(v,{connected:o.connected},null,8,["connected"]),b(k,{onSendCommand:n.sendCommand},null,8,["onSendCommand"]),b(y),b(I)],64)}const Gi=S(Ui,[["render",Ki],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Ji="modulepreload",Zi=function(e){return"/openWB/web/settings/"+e},Z={},B=function(t,s,u){let o=Promise.resolve();if(s&&s.length>0){let r=function(v){return Promise.all(v.map(k=>Promise.resolve(k).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),p=a?.nonce||a?.getAttribute("nonce");o=r(s.map(v=>{if(v=Zi(v),v in Z)return;Z[v]=!0;const k=v.endsWith(".css"),y=k?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${v}"]${y}`))return;const I=document.createElement("link");if(I.rel=k?"stylesheet":Ji,k||(I.as="script"),I.crossOrigin="",I.href=v,p&&I.setAttribute("nonce",p),document.head.appendChild(I),k)return new Promise((le,re)=>{I.addEventListener("load",le),I.addEventListener("error",()=>re(new Error(`Unable to preload CSS for ${v}`)))})}))}function n(a){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=a,window.dispatchEvent(p),!p.defaultPrevented)throw a}return o.then(a=>{for(const p of a||[])p.status==="rejected"&&n(p.reason);return t().catch(n)})},Qi={namespaced:!0,state:()=>({hiddenDatasets:[]}),mutations:{toggleDataset(e,t){e.hiddenDatasets.includes(t)?e.hiddenDatasets=e.hiddenDatasets.filter(s=>s!==t):e.hiddenDatasets.push(t)},setHiddenDatasets(e,t){e.hiddenDatasets=t}}};let ie={mqtt:{},mqttSubscriptions:{},local:{modalBlockerVisible:!1,reloadRequired:!1,savingData:!1,username:null}};ie.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",text8:"Text mit Add-Button",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const x=ge({state:ie,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 s=(u,o,n)=>o.split(".").reduce((a,p,r)=>a[p]=o.split(".").length===r+1?n:a[p]||{},u);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?s(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?s(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"))},addClientMessage(e,t){e.local.messages||(e.local.messages={}),e.local.messages[t.timestamp]=t.payload},removeClientMessage(e,t){e.local.messages&&t in e.local.messages&&delete e.local.messages[t]},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:{chartLegend:Qi},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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(s),clearInterval(u),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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(s),clearInterval(u),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},accessAllowed(e){return t=>new Promise(s=>{const u=`openWB/system/security/access/${t}`;if(e.mqtt[u]!==void 0)s(e.mqtt[u]);else{var o,n;o=setTimeout(()=>{clearInterval(n),s(!1)},5e3),n=setInterval(()=>{e.mqtt[u]!==void 0&&(clearTimeout(o),clearInterval(n),s(e.mqtt[u]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),ae=[{path:"/",redirect:"/GeneralConfiguration"},{path:"/Status",name:"Status",meta:{heading:"Status",checkPermissions:!0},component:()=>B(()=>import("./Status-bV6B6bv6.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll",checkPermissions:!0},component:()=>B(()=>import("./ChargeLog-CZQ0QwMY.js"),__vite__mapDeps([11,1,2,3,6,7,8,9,12]))},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"Chart",meta:{heading:"Auswertungen - Diagramme",checkPermissions:!0},component:()=>B(()=>import("./Chart-CR-tn1oB.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,14]))},{path:"/GeneralConfiguration",name:"GeneralConfiguration",meta:{heading:"Einstellungen - Allgemein",checkPermissions:!0},component:()=>B(()=>import("./GeneralConfiguration-b09cPY_w.js").then(e=>e.a),__vite__mapDeps([15,1,2,3,16,17]))},{path:"/IdentificationConfiguration",name:"IdentificationConfiguration",meta:{heading:"Einstellungen - Identifikation",checkPermissions:!0},component:()=>B(()=>import("./IdentificationConfiguration-BN_nskUK.js"),__vite__mapDeps([18,16,2,3,1,6,7,8,9]))},{path:"/DisplayConfiguration",name:"DisplayConfiguration",meta:{heading:"Einstellungen - Display",checkPermissions:!0},component:()=>B(()=>import("./DisplayConfiguration-h7XEuoXV.js").then(e=>e.a),__vite__mapDeps([19,17,1,2,3]))},{path:"/GeneralChargeConfiguration",name:"GeneralChargeConfiguration",meta:{heading:"Ladeeinstellungen - Übergreifendes",checkPermissions:!0},component:()=>B(()=>import("./GeneralChargeConfiguration-kMS02s2g.js").then(e=>e.a),__vite__mapDeps([20,17,1,2,3]))},{path:"/SurplusChargeConfiguration",name:"SurplusChargeConfiguration",meta:{heading:"Ladeeinstellungen - Überschuss-Laden",checkPermissions:!0},component:()=>B(()=>import("./SurplusChargeConfiguration-i4C8x6Va.js"),__vite__mapDeps([21,16,2,3,1,6,7,8,9]))},{path:"/ActiveBatControlConfiguration",name:"ActiveBatControlConfiguration",meta:{heading:"Ladeeinstellungen - Speichersteuerung",checkPermissions:!0},component:()=>B(()=>import("./ActiveBatControlConfiguration-DyGDJFQ0.js"),__vite__mapDeps([22,1,2,3,6,7,8,9]))},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten",checkPermissions:!0},component:()=>B(()=>import("./HardwareInstallation-DrK-NlWu.js").then(e=>e.a),__vite__mapDeps([23,1,2,3,17]))},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement",checkPermissions:!0},component:()=>B(()=>import("./LoadManagementConfiguration-DKZ9eznX.js"),__vite__mapDeps([24,1,2,3,25,26,6,7,8,9]))},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte",checkPermissions:!0},component:()=>B(()=>import("./ChargePointInstallation-BeNMkMOi.js").then(e=>e.c),__vite__mapDeps([27,1,2,3,16,17,28]))},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge",checkPermissions:!0},component:()=>B(()=>import("./VehicleConfiguration-B3d9qly5.js").then(e=>e.b),__vite__mapDeps([29,1,2,3,17]))},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge",checkPermissions:!0},component:()=>B(()=>import("./IoConfiguration-hMQZDwaS.js").then(e=>e.b),__vite__mapDeps([30,1,2,3,17]))},{path:"/System/CloudConfiguration",name:"CloudConfiguration",meta:{heading:"System - openWB Cloud",checkPermissions:!0},component:()=>B(()=>import("./CloudConfiguration-DOLVcdWg.js"),__vite__mapDeps([31,1,2,3,6,7,8,9]))},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfiguration",meta:{heading:"System - MQTT-Brücken",checkPermissions:!0},component:()=>B(()=>import("./MqttBridgeConfiguration-DpHaWJdF.js"),__vite__mapDeps([32,1,2,3,6,7,8,9]))},{path:"/System/DebugConfiguration",name:"DebugConfiguration",meta:{heading:"System - Fehlersuche",checkPermissions:!0},component:()=>B(()=>import("./DebugConfiguration-C2vm4vM4.js"),__vite__mapDeps([33,1,2,3,9,6,7,8,34]))},{path:"/System/Support",name:"Support",meta:{heading:"System - Support",checkPermissions:!0},component:()=>B(()=>import("./Support-DMhdXgqE.js"),__vite__mapDeps([35,1,2,3,6,7,8,9]))},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches",checkPermissions:!0},component:()=>B(()=>import("./LegalSettings-DvE2H9Xw.js"),__vite__mapDeps([36,1,2,3,6,7,8,9]))},{path:"/System/SystemConfiguration",name:"SystemConfiguration",meta:{heading:"System - System",checkPermissions:!0},component:()=>B(()=>import("./SystemConfiguration-BN4gvHU6.js"),__vite__mapDeps([37,1,2,3,6,7,8,9,38]))},{path:"/System/SecurityConfiguration",name:"SecurityConfiguration",meta:{heading:"System - Sicherheit",checkPermissions:!0},component:()=>B(()=>import("./SecurityConfiguration-Ckkg6YKx.js"),__vite__mapDeps([39,1,2,3,6,7,8,9]))},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung",checkPermissions:!0},component:()=>B(()=>import("./DataManagement-C57poL-r.js").then(e=>e.a),__vite__mapDeps([40,1,2,3,17]))},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent",checkPermissions:!0},component:()=>B(()=>import("./InstallAssistant-C4J4yr5X.js"),__vite__mapDeps([41,17,2,3,1,6,7,8,9]))},{path:"/Error",name:"Error",meta:{heading:"Fehler",checkPermissions:!1},component:()=>B(()=>import("./Error-BZ1TitTh.js"),__vite__mapDeps([42,2,3]))}];ae.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store",checkPermissions:!1},component:()=>B(()=>import("./TestingStore-pmOfDSbe.js"),__vite__mapDeps([43,25,2,3,1,26,6,7,8,9]))});const F=he({history:be(),routes:ae});let W=!1;F.beforeEach(async e=>{const t=async n=>{if(n.meta.checkPermissions===!0){const a=await x.getters.accessAllowed(n.name);if(console.debug("access check for",n.name,"->",a),W)return console.debug("route already handled, cancel further processing"),!1;if(!a)return console.warn("no permission to access",n.name),x.state.local.username?{name:"Error"}:(console.debug("not logged in, cancel navigation to",n.name),W=!0,!1)}return!0};if(W=!1,!await x.getters.usageTermsAcknowledged)return e.name!=="LegalSettings"?(console.log("usage terms not acknowledged, redirect to legal settings"),{name:"LegalSettings"}):(console.log("usage terms not acknowledged, but already on legal settings, continue"),await t(e));if(!await x.getters.installAssistantDone)return e.name!=="InstallAssistant"?(console.log("install assistant not done, redirect to install assistant"),{name:"InstallAssistant"}):(console.log("install assistant not done, but already on install assistant, continue"),await t(e));const o=await t(e);return W=!0,o});F.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const H=_e(Gi);H.use(x).use(F).use(at,lt).use(ve,{expire:"30d",path:"/",domain:"",secure:!0,sameSite:"Lax"});const Yi=Object.assign({"./components/OpenwbBaseAlert.vue":ct,"./components/OpenwbBaseArrayInput.vue":qt,"./components/OpenwbBaseAvatar.vue":xt,"./components/OpenwbBaseButtonGroupInput.vue":Jt,"./components/OpenwbBaseButtonInput.vue":ns,"./components/OpenwbBaseButtonRow.vue":Ut,"./components/OpenwbBaseCard.vue":ms,"./components/OpenwbBaseCheckboxInput.vue":vs,"./components/OpenwbBaseClickButton.vue":Xt,"./components/OpenwbBaseColorPicker.vue":Bs,"./components/OpenwbBaseCopyToClipboard.vue":Ps,"./components/OpenwbBaseHeading.vue":zs,"./components/OpenwbBaseIoPattern.vue":Hs,"./components/OpenwbBaseModalDialog.vue":en,"./components/OpenwbBaseNumberInput.vue":mn,"./components/OpenwbBaseRangeInput.vue":Sn,"./components/OpenwbBaseSelectInput.vue":En,"./components/OpenwbBaseSettingElement.vue":bt,"./components/OpenwbBaseSubmitButtons.vue":Gn,"./components/OpenwbBaseTextInput.vue":_o,"./components/OpenwbBaseTextarea.vue":Mo,"./components/OpenwbBaseToast.vue":Eo,"./components/OpenwbBaseTooltip.vue":zo});Object.entries(Yi).forEach(([e,t])=>{const s=ye(we(e.split("/").pop().replace(/\.\w+$/,"")));H.component(s,t.default)});H.mount("#app");export{z as C,D as O,B as _}; diff --git a/web/settings/assets/inverter-Dd8Zt71F.js b/web/settings/assets/inverter-0RghKIsx.js similarity index 87% rename from web/settings/assets/inverter-Dd8Zt71F.js rename to web/settings/assets/inverter-0RghKIsx.js index 4f3d9af016..91deed84eb 100644 --- a/web/settings/assets/inverter-Dd8Zt71F.js +++ b/web/settings/assets/inverter-0RghKIsx.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-BaOo9WeK.js b/web/settings/assets/inverter-8vpAsJFV.js similarity index 87% rename from web/settings/assets/inverter-BaOo9WeK.js rename to web/settings/assets/inverter-8vpAsJFV.js index 88680f5acb..a468009230 100644 --- a/web/settings/assets/inverter-BaOo9WeK.js +++ b/web/settings/assets/inverter-8vpAsJFV.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOneInverter",mixins:[a]},_={class:"device-solakon-one-inverter"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOneInverter",mixins:[a]},_={class:"device-solakon-one-inverter"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-CopsarJJ.js b/web/settings/assets/inverter-9SjCnF3G.js similarity index 88% rename from web/settings/assets/inverter-CopsarJJ.js rename to web/settings/assets/inverter-9SjCnF3G.js index f039ef4e15..bdd5237ab7 100644 --- a/web/settings/assets/inverter-CopsarJJ.js +++ b/web/settings/assets/inverter-9SjCnF3G.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-D7eVv_21.js b/web/settings/assets/inverter-9vdoOv_r.js similarity index 87% rename from web/settings/assets/inverter-D7eVv_21.js rename to web/settings/assets/inverter-9vdoOv_r.js index cec8d136c0..97a08882d5 100644 --- a/web/settings/assets/inverter-D7eVv_21.js +++ b/web/settings/assets/inverter-9vdoOv_r.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as o,k as p,e as l,m as n,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartMeInverter",mixins:[a]},_={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",_,[n(r,null,{default:d(()=>[...e[1]||(e[1]=[c(" Einstellungen für smart-me Wechselrichter ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as p,e as l,m as n,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartMeInverter",mixins:[a]},_={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",_,[n(r,null,{default:d(()=>[...e[1]||(e[1]=[c(" Einstellungen für smart-me Wechselrichter ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-lozsDiob.js b/web/settings/assets/inverter-ACq6R7xB.js similarity index 88% rename from web/settings/assets/inverter-lozsDiob.js rename to web/settings/assets/inverter-ACq6R7xB.js index e94fd198ea..7df5fa35da 100644 --- a/web/settings/assets/inverter-lozsDiob.js +++ b/web/settings/assets/inverter-ACq6R7xB.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as o,k as l,e as u,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseInverter",mixins:[m]},_={class:"device-enphase-inverter"};function f(n,e,v,b,g,h){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return l(),u("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])]),_:1}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[r(' EID für "production" ',-1)])]),_:1},8,["model-value"])])}const D=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{D as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as o,k as l,e as u,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseInverter",mixins:[m]},_={class:"device-enphase-inverter"};function f(n,e,v,b,g,h){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return l(),u("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])]),_:1}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[r(' EID für "production" ',-1)])]),_:1},8,["model-value"])])}const D=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-CB0x6P9A.js b/web/settings/assets/inverter-AYViTSOI.js similarity index 88% rename from web/settings/assets/inverter-CB0x6P9A.js rename to web/settings/assets/inverter-AYViTSOI.js index 20e5a70bf9..cdf7075f10 100644 --- a/web/settings/assets/inverter-CB0x6P9A.js +++ b/web/settings/assets/inverter-AYViTSOI.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiInverter",mixins:[m]},c={class:"device-kostal-piko-ci-inverter"};function b(o,e,f,v,k,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kostal Piko CI Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/inverter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiInverter",mixins:[m]},c={class:"device-kostal-piko-ci-inverter"};function b(o,e,f,v,k,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kostal Piko CI Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/inverter.vue"]]);export{M as default}; diff --git a/web/settings/assets/inverter-BpKMExBm.js b/web/settings/assets/inverter-B-NdAxCX.js similarity index 88% rename from web/settings/assets/inverter-BpKMExBm.js rename to web/settings/assets/inverter-B-NdAxCX.js index 030e7e5f4e..c9fd366737 100644 --- a/web/settings/assets/inverter-BpKMExBm.js +++ b/web/settings/assets/inverter-B-NdAxCX.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as p,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},_={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as p,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},_={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-5EBX0iZo.js b/web/settings/assets/inverter-B8AbK5LS.js similarity index 88% rename from web/settings/assets/inverter-5EBX0iZo.js rename to web/settings/assets/inverter-B8AbK5LS.js index ba143d5017..d956e9eb78 100644 --- a/web/settings/assets/inverter-5EBX0iZo.js +++ b/web/settings/assets/inverter-B8AbK5LS.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as u,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{I as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as u,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-BI2ZqzaW.js b/web/settings/assets/inverter-BbajKr0y.js similarity index 87% rename from web/settings/assets/inverter-BI2ZqzaW.js rename to web/settings/assets/inverter-BbajKr0y.js index 5a4406178f..c091c770a2 100644 --- a/web/settings/assets/inverter-BI2ZqzaW.js +++ b/web/settings/assets/inverter-BbajKr0y.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as d,e as m,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolaredgeInverter",mixins:[a]},_={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return d(),m("div",_,[t(r,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as d,e as m,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolaredgeInverter",mixins:[a]},_={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return d(),m("div",_,[t(r,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-DLWFTpaZ.js b/web/settings/assets/inverter-BjdsHouB.js similarity index 88% rename from web/settings/assets/inverter-DLWFTpaZ.js rename to web/settings/assets/inverter-BjdsHouB.js index a14be2ac7a..15978dac58 100644 --- a/web/settings/assets/inverter-DLWFTpaZ.js +++ b/web/settings/assets/inverter-BjdsHouB.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as p,e as l,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])]),_:1}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const E=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{E as default}; +import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as p,e as l,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])]),_:1}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const E=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{E as default}; diff --git a/web/settings/assets/inverter-BB887ZYt.js b/web/settings/assets/inverter-CDYkCixE.js similarity index 79% rename from web/settings/assets/inverter-BB887ZYt.js rename to web/settings/assets/inverter-CDYkCixE.js index 3fcf3ad907..c0a791e669 100644 --- a/web/settings/assets/inverter-BB887ZYt.js +++ b/web/settings/assets/inverter-CDYkCixE.js @@ -1 +1 @@ -import{C as e}from"./HardwareInstallation-caZ0sA9z.js";import{_ as t,k as o,e as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const C=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{C as default}; +import{C as e}from"./HardwareInstallation-DrK-NlWu.js";import{_ as t,k as o,e as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const C=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-BLcG2ney.js b/web/settings/assets/inverter-CQscUjQi.js similarity index 91% rename from web/settings/assets/inverter-BLcG2ney.js rename to web/settings/assets/inverter-CQscUjQi.js index dc3c9df19d..6ad5378f6c 100644 --- a/web/settings/assets/inverter-BLcG2ney.js +++ b/web/settings/assets/inverter-CQscUjQi.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerInverter",mixins:[u]},_={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[o(a,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])]),_:1}),o(p,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const $=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{$ as default}; +import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerInverter",mixins:[u]},_={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[o(a,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])]),_:1}),o(p,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const $=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-f4xqdlX6.js b/web/settings/assets/inverter-CTZt8kgW.js similarity index 96% rename from web/settings/assets/inverter-f4xqdlX6.js rename to web/settings/assets/inverter-CTZt8kgW.js index 4255bb8fd1..12118168cc 100644 --- a/web/settings/assets/inverter-f4xqdlX6.js +++ b/web/settings/assets/inverter-CTZt8kgW.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as p,k as g,e as b,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceMqttInverter",mixins:[m]},v={class:"device-mqtt-inverter"};function B(o,e,z,w,k,W){const d=p("openwb-base-heading"),u=p("openwb-base-alert"),r=p("openwb-base-copy-to-clipboard");return g(),b("div",v,[i(d,null,{default:l(()=>[...e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])]),_:1}),i(u,{subtype:"warning"},{default:l(()=>[e[1]||(e[1]=t(" Ist die ",-1)),e[2]||(e[2]=n("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Wechselrichter '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[4]||(e[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(u,{subtype:"info"},{default:l(()=>[e[23]||(e[23]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[5]||(e[5]=n("br",null,null,-1)),e[6]||(e[6]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[7]||(e[7]=n("span",{class:"text-info"},"-123",-1))])]),e[24]||(e[24]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" Beispiel: ",-1)),e[12]||(e[12]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Bezogene Energie in Wh (optional, zB für Hybridsysteme, die den Speicher aus dem Netz laden), Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[15]||(e[15]=n("br",null,null,-1)),e[16]||(e[16]=t(" Beispiel: ",-1)),e[17]||(e[17]=n("span",{class:"text-info"},"123.45",-1))])]),e[25]||(e[25]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[20]||(e[20]=n("br",null,null,-1)),e[21]||(e[21]=t(" Beispiel: ",-1)),e[22]||(e[22]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1})])}const V=a(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{V as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as p,k as g,e as b,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceMqttInverter",mixins:[m]},v={class:"device-mqtt-inverter"};function B(o,e,z,w,k,W){const d=p("openwb-base-heading"),u=p("openwb-base-alert"),r=p("openwb-base-copy-to-clipboard");return g(),b("div",v,[i(d,null,{default:l(()=>[...e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])]),_:1}),i(u,{subtype:"warning"},{default:l(()=>[e[1]||(e[1]=t(" Ist die ",-1)),e[2]||(e[2]=n("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Wechselrichter '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[4]||(e[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(u,{subtype:"info"},{default:l(()=>[e[23]||(e[23]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[5]||(e[5]=n("br",null,null,-1)),e[6]||(e[6]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[7]||(e[7]=n("span",{class:"text-info"},"-123",-1))])]),e[24]||(e[24]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" Beispiel: ",-1)),e[12]||(e[12]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Bezogene Energie in Wh (optional, zB für Hybridsysteme, die den Speicher aus dem Netz laden), Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[15]||(e[15]=n("br",null,null,-1)),e[16]||(e[16]=t(" Beispiel: ",-1)),e[17]||(e[17]=n("span",{class:"text-info"},"123.45",-1))])]),e[25]||(e[25]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[20]||(e[20]=n("br",null,null,-1)),e[21]||(e[21]=t(" Beispiel: ",-1)),e[22]||(e[22]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1})])}const V=a(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-CkuUw0Yu.js b/web/settings/assets/inverter-CbPKaOUd.js similarity index 88% rename from web/settings/assets/inverter-CkuUw0Yu.js rename to web/settings/assets/inverter-CbPKaOUd.js index 4137e47181..90ab489e10 100644 --- a/web/settings/assets/inverter-CkuUw0Yu.js +++ b/web/settings/assets/inverter-CbPKaOUd.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as t,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return l(),u("div",_,[n(i,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko Wechselrichter ",-1)])]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const K=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{K as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return l(),u("div",_,[n(i,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko Wechselrichter ",-1)])]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const K=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{K as default}; diff --git a/web/settings/assets/inverter-Da945LLX.js b/web/settings/assets/inverter-CbwWOoTg.js similarity index 94% rename from web/settings/assets/inverter-Da945LLX.js rename to web/settings/assets/inverter-CbwWOoTg.js index 8d9b50cbaa..3960dd6e5f 100644 --- a/web/settings/assets/inverter-Da945LLX.js +++ b/web/settings/assets/inverter-CbwWOoTg.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l,k as m,e as g,m as r,q as o,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>[...e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])]),_:1}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>[...e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>[...e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const W=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{W as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l,k as m,e as g,m as r,q as o,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>[...e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])]),_:1}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>[...e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>[...e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const W=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-m3LVq5tF.js b/web/settings/assets/inverter-ChBLwrbt.js similarity index 91% rename from web/settings/assets/inverter-m3LVq5tF.js rename to web/settings/assets/inverter-ChBLwrbt.js index ddb6b1a7c0..9a5b50f540 100644 --- a/web/settings/assets/inverter-m3LVq5tF.js +++ b/web/settings/assets/inverter-ChBLwrbt.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as n,k as m,e as c,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),c("div",b,[r(u,null,{default:i(()=>[...e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])]),_:1}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>[...e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{$ as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as m,e as c,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),c("div",b,[r(u,null,{default:i(()=>[...e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])]),_:1}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>[...e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-7soLwDob.js b/web/settings/assets/inverter-Ci3SfwIV.js similarity index 87% rename from web/settings/assets/inverter-7soLwDob.js rename to web/settings/assets/inverter-Ci3SfwIV.js index 95965541b0..bc41f7a98a 100644 --- a/web/settings/assets/inverter-7soLwDob.js +++ b/web/settings/assets/inverter-Ci3SfwIV.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as c,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHInverter",mixins:[s]},_={class:"device-kaco-nh-inverter"};function f(o,e,v,b,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Kaco NH Wechselrichter ",-1)])]),_:1}),t(r,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/inverter.vue"]]);export{q as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as c,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHInverter",mixins:[s]},_={class:"device-kaco-nh-inverter"};function f(o,e,v,b,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Kaco NH Wechselrichter ",-1)])]),_:1}),t(r,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-CgUUQeXE.js b/web/settings/assets/inverter-CzPXa6it.js similarity index 92% rename from web/settings/assets/inverter-CgUUQeXE.js rename to web/settings/assets/inverter-CzPXa6it.js index a423a6d2c9..f6da500b1d 100644 --- a/web/settings/assets/inverter-CgUUQeXE.js +++ b/web/settings/assets/inverter-CzPXa6it.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as t,k as m,e as c,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxInverter",mixins:[l]},b={class:"device-powerfox-inverter"};function g(o,e,v,w,x,_){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{A as default}; +import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as m,e as c,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxInverter",mixins:[l]},b={class:"device-powerfox-inverter"};function g(o,e,v,w,x,_){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{A as default}; diff --git a/web/settings/assets/inverter-CMmTSLWH.js b/web/settings/assets/inverter-D0gOX-_P.js similarity index 90% rename from web/settings/assets/inverter-CMmTSLWH.js rename to web/settings/assets/inverter-D0gOX-_P.js index cb6ba09ae6..b04fd74ab2 100644 --- a/web/settings/assets/inverter-CMmTSLWH.js +++ b/web/settings/assets/inverter-D0gOX-_P.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},f={class:"device-discovergy-inverter"};function g(t,e,_,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const $=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},f={class:"device-discovergy-inverter"};function g(t,e,_,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const $=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-DL8Ty732.js b/web/settings/assets/inverter-D8I4F0kA.js similarity index 90% rename from web/settings/assets/inverter-DL8Ty732.js rename to web/settings/assets/inverter-D8I4F0kA.js index 708489aa0e..a71c4b6ae1 100644 --- a/web/settings/assets/inverter-DL8Ty732.js +++ b/web/settings/assets/inverter-D8I4F0kA.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as u,e as m,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[p]},b={class:"device-openwb-flex-inverter"};function f(o,e,_,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",b,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])]),_:1}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const q=a(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as u,e as m,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[p]},b={class:"device-openwb-flex-inverter"};function f(o,e,_,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",b,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])]),_:1}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const q=a(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-BvYIme5g.js b/web/settings/assets/inverter-D8K2CFDi.js similarity index 87% rename from web/settings/assets/inverter-BvYIme5g.js rename to web/settings/assets/inverter-D8K2CFDi.js index 2d3b8ad421..5c4155acd4 100644 --- a/web/settings/assets/inverter-BvYIme5g.js +++ b/web/settings/assets/inverter-D8K2CFDi.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisInverter",mixins:[p]},_={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Wechselrichter ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisInverter",mixins:[p]},_={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Wechselrichter ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-DrtnNh9-.js b/web/settings/assets/inverter-D8ojL_BV.js similarity index 90% rename from web/settings/assets/inverter-DrtnNh9-.js rename to web/settings/assets/inverter-D8ojL_BV.js index c1d108f24f..f442ff594c 100644 --- a/web/settings/assets/inverter-DrtnNh9-.js +++ b/web/settings/assets/inverter-D8ojL_BV.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as u,l as n,k as d,e as c,m as o,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),c("div",f,[o(s,null,{default:r(()=>[...e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])]),_:1}),o(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])]),_:1}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const W=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{W as default}; +import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as d,e as c,m as o,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),c("div",f,[o(s,null,{default:r(()=>[...e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])]),_:1}),o(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])]),_:1}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const W=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-Bk86qHNm.js b/web/settings/assets/inverter-D9Thnvbs.js similarity index 87% rename from web/settings/assets/inverter-Bk86qHNm.js rename to web/settings/assets/inverter-D9Thnvbs.js index bc7e7490e6..164b6e72bb 100644 --- a/web/settings/assets/inverter-Bk86qHNm.js +++ b/web/settings/assets/inverter-D9Thnvbs.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxInverter",mixins:[a]},_={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxInverter",mixins:[a]},_={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-CN_ruNlm.js b/web/settings/assets/inverter-DBFgbhVo.js similarity index 89% rename from web/settings/assets/inverter-CN_ruNlm.js rename to web/settings/assets/inverter-DBFgbhVo.js index 874d29321f..b8e4a87200 100644 --- a/web/settings/assets/inverter-CN_ruNlm.js +++ b/web/settings/assets/inverter-DBFgbhVo.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as o,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),s=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])]),_:1}),n(s,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),s=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])]),_:1}),n(s,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-zzkwTxc_.js b/web/settings/assets/inverter-DIStW2Xn.js similarity index 93% rename from web/settings/assets/inverter-zzkwTxc_.js rename to web/settings/assets/inverter-DIStW2Xn.js index adffb7bbd2..f0264ceb74 100644 --- a/web/settings/assets/inverter-zzkwTxc_.js +++ b/web/settings/assets/inverter-DIStW2Xn.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as b,e as v,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>[...e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])]),_:1}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>[...e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>[...e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])]),_:1},8,["model-value"])])}const E=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{E as default}; +import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as b,e as v,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>[...e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])]),_:1}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>[...e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>[...e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])]),_:1},8,["model-value"])])}const E=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{E as default}; diff --git a/web/settings/assets/inverter-YmiFDBbL.js b/web/settings/assets/inverter-DJnr53ar.js similarity index 95% rename from web/settings/assets/inverter-YmiFDBbL.js rename to web/settings/assets/inverter-DJnr53ar.js index fec48f85a5..1d65587303 100644 --- a/web/settings/assets/inverter-YmiFDBbL.js +++ b/web/settings/assets/inverter-DJnr53ar.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,c,j,_){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const A=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{A as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,c,j,_){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const A=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{A as default}; diff --git a/web/settings/assets/inverter-9sFbkMow.js b/web/settings/assets/inverter-DMLtmP39.js similarity index 88% rename from web/settings/assets/inverter-9sFbkMow.js rename to web/settings/assets/inverter-DMLtmP39.js index 1ec34ec016..f494f959ce 100644 --- a/web/settings/assets/inverter-9sFbkMow.js +++ b/web/settings/assets/inverter-DMLtmP39.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-DhjTWscc.js b/web/settings/assets/inverter-DSMmU0bk.js similarity index 90% rename from web/settings/assets/inverter-DhjTWscc.js rename to web/settings/assets/inverter-DSMmU0bk.js index d3faf1a340..f0ae1f3b3b 100644 --- a/web/settings/assets/inverter-DhjTWscc.js +++ b/web/settings/assets/inverter-DSMmU0bk.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])]),_:1}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const D=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{D as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])]),_:1}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const D=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-CZxBgkMq.js b/web/settings/assets/inverter-DXCXYnzH.js similarity index 89% rename from web/settings/assets/inverter-CZxBgkMq.js rename to web/settings/assets/inverter-DXCXYnzH.js index b4b73cb354..9e503ca30a 100644 --- a/web/settings/assets/inverter-CZxBgkMq.js +++ b/web/settings/assets/inverter-DXCXYnzH.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as l,l as n,k as d,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])]),_:1}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>[...e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])]),_:1},8,["model-value"])])}const A=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{A as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as n,k as d,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])]),_:1}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>[...e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])]),_:1},8,["model-value"])])}const A=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{A as default}; diff --git a/web/settings/assets/inverter-Bwj64g5e.js b/web/settings/assets/inverter-DgFOEAbi.js similarity index 87% rename from web/settings/assets/inverter-Bwj64g5e.js rename to web/settings/assets/inverter-DgFOEAbi.js index 2432e62aaa..715ec6448e 100644 --- a/web/settings/assets/inverter-Bwj64g5e.js +++ b/web/settings/assets/inverter-DgFOEAbi.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-caZ0sA9z.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeInverter",mixins:[p]},_={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeInverter",mixins:[p]},_={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-B88OrxMD.js b/web/settings/assets/inverter-Dt-0cVGJ.js similarity index 79% rename from web/settings/assets/inverter-B88OrxMD.js rename to web/settings/assets/inverter-Dt-0cVGJ.js index 2baf86ac30..644a152a32 100644 --- a/web/settings/assets/inverter-B88OrxMD.js +++ b/web/settings/assets/inverter-Dt-0cVGJ.js @@ -1 +1 @@ -import{C as e}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,k as t,e as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const $=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{$ as default}; +import{C as e}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,k as t,e as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const $=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-YdmHIKyl.js b/web/settings/assets/inverter-YRLdoDau.js similarity index 86% rename from web/settings/assets/inverter-YdmHIKyl.js rename to web/settings/assets/inverter-YRLdoDau.js index eb71dc6418..dee40522d4 100644 --- a/web/settings/assets/inverter-YdmHIKyl.js +++ b/web/settings/assets/inverter-YRLdoDau.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-caZ0sA9z.js";import{_ as n,l as s,k as o,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])]),_:1})])}const B=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{B as default}; +import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as o,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])]),_:1})])}const B=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{B as default}; diff --git a/web/settings/assets/inverter-yrrMEiBw.js b/web/settings/assets/inverter-hdDYm9Uf.js similarity index 87% rename from web/settings/assets/inverter-yrrMEiBw.js rename to web/settings/assets/inverter-hdDYm9Uf.js index e5d8ac0eb2..52bcdd8c32 100644 --- a/web/settings/assets/inverter-yrrMEiBw.js +++ b/web/settings/assets/inverter-hdDYm9Uf.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-caZ0sA9z.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Kaco Wechselrichter ",-1)])]),_:1}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{q as default}; +import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Kaco Wechselrichter ",-1)])]),_:1}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-Dl-vr0bC.js b/web/settings/assets/inverter-oQ0jJI7j.js similarity index 88% rename from web/settings/assets/inverter-Dl-vr0bC.js rename to web/settings/assets/inverter-oQ0jJI7j.js index e633584068..af1b82203d 100644 --- a/web/settings/assets/inverter-Dl-vr0bC.js +++ b/web/settings/assets/inverter-oQ0jJI7j.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-caZ0sA9z.js";import{_ as d,l as o,k as u,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as o,k as u,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter_maxstorage-Da9O-iNa.js b/web/settings/assets/inverter_maxstorage-DeCO1HV-.js similarity index 88% rename from web/settings/assets/inverter_maxstorage-Da9O-iNa.js rename to web/settings/assets/inverter_maxstorage-DeCO1HV-.js index 77bd6721a9..2e7f8e25b9 100644 --- a/web/settings/assets/inverter_maxstorage-Da9O-iNa.js +++ b/web/settings/assets/inverter_maxstorage-DeCO1HV-.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxMsInverter",mixins:[s]},c={class:"device-solarmax-inverter-maxstorage"};function b(o,e,f,x,v,g){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const k=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter_maxstorage.vue"]]);export{k as default}; +import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxMsInverter",mixins:[s]},c={class:"device-solarmax-inverter-maxstorage"};function b(o,e,f,x,v,g){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const k=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter_maxstorage.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter_production_meter-BhLy0jS8.js b/web/settings/assets/inverter_production_meter-Coy7d4cu.js similarity index 95% rename from web/settings/assets/inverter_production_meter-BhLy0jS8.js rename to web/settings/assets/inverter_production_meter-Coy7d4cu.js index aefd18c4d9..20e9e3d822 100644 --- a/web/settings/assets/inverter_production_meter-BhLy0jS8.js +++ b/web/settings/assets/inverter_production_meter-Coy7d4cu.js @@ -1 +1 @@ -import{C as f}from"./HardwareInstallation-caZ0sA9z.js";import{_ as g,l as r,k as b,e as c,m as i,q as o,A as t,x as l,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceFroniusInverterProductionMeter",mixins:[f],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},w={class:"device-fronius-inverter-production-meter"},D=["href"];function h(n,e,k,M,S,s){const d=r("openwb-base-heading"),u=r("openwb-base-alert"),m=r("openwb-base-select-input"),p=r("openwb-base-number-input");return b(),c("div",w,[i(d,null,{default:o(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius Erzeugerzähler ",-1)])]),_:1}),i(u,{subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[t(" Zusätzlicher, externer Erzeuger, welcher über einen Smartmeter erfasst wird. ",-1)])]),_:1}),i(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.variant"))},{help:o(()=>[...e[4]||(e[4]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),i(p,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateConfiguration(a,"configuration.meter_id"))},{help:o(()=>[e[5]||(e[5]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},_(s.meterRealtimeUrl),9,D),e[6]||(e[6]=l("br",null,null,-1)),e[7]||(e[7]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const N=g(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_production_meter.vue"]]);export{N as default}; +import{C as f}from"./HardwareInstallation-DrK-NlWu.js";import{_ as g,l as r,k as b,e as c,m as i,q as o,A as t,x as l,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceFroniusInverterProductionMeter",mixins:[f],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},w={class:"device-fronius-inverter-production-meter"},D=["href"];function h(n,e,k,M,S,s){const d=r("openwb-base-heading"),u=r("openwb-base-alert"),m=r("openwb-base-select-input"),p=r("openwb-base-number-input");return b(),c("div",w,[i(d,null,{default:o(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius Erzeugerzähler ",-1)])]),_:1}),i(u,{subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[t(" Zusätzlicher, externer Erzeuger, welcher über einen Smartmeter erfasst wird. ",-1)])]),_:1}),i(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.variant"))},{help:o(()=>[...e[4]||(e[4]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),i(p,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateConfiguration(a,"configuration.meter_id"))},{help:o(()=>[e[5]||(e[5]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},_(s.meterRealtimeUrl),9,D),e[6]||(e[6]=l("br",null,null,-1)),e[7]||(e[7]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const N=g(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_production_meter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter_secondary-Cke98mZd.js b/web/settings/assets/inverter_secondary-D3yQDLVg.js similarity index 92% rename from web/settings/assets/inverter_secondary-Cke98mZd.js rename to web/settings/assets/inverter_secondary-D3yQDLVg.js index bdd2c9849f..f6c0d30d39 100644 --- a/web/settings/assets/inverter_secondary-Cke98mZd.js +++ b/web/settings/assets/inverter_secondary-D3yQDLVg.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-caZ0sA9z.js";import{_ as m,l as t,k as f,e as c,m as i,q as s,A as n,x as a,J as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},_={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",_,[i(d,null,{default:s(()=>[...e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])]),_:1}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},g(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const U=m(w,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{U as default}; +import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as f,e as c,m as i,q as s,A as n,x as a,J as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},_={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",_,[i(d,null,{default:s(()=>[...e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])]),_:1}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},g(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const U=m(w,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{U as default}; diff --git a/web/settings/assets/io_action-BlGNVQOy.js b/web/settings/assets/io_action-B9LeEnBs.js similarity index 96% rename from web/settings/assets/io_action-BlGNVQOy.js rename to web/settings/assets/io_action-B9LeEnBs.js index c18d7306c0..85efe2656a 100644 --- a/web/settings/assets/io_action-BlGNVQOy.js +++ b/web/settings/assets/io_action-B9LeEnBs.js @@ -1 +1 @@ -import{a as b}from"./IoConfiguration-vfX10CsO.js";import{O as v}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as u,k as a,e as l,y as d,u as s,m as f,q as w,A as p,x as k,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const V={name:"IoActionDimming",components:{OpenwbIoSinglePattern:v},mixins:[b],computed:{value:{get(){return this.ioAction?.configuration?.input_pattern||[]},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},isPatternConfigured(){return this.value?.length>0&&this.value[0].matrix&&Object.keys(this.value[0].matrix).length>0},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices?.forEach(t=>{let o=[];Object.keys(t?.output?.digital||{}).forEach(r=>{o.push({text:`${r}`,value:{type:"io",id:t.id,digital_output:r}})}),o.length>0&&e.push({label:t.name,options:o})}),e},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints?.map(t=>({value:{type:"cp",id:t.value},text:t.text}))||[]}].concat(this.ioDevicesOutputOptions)}}},A={key:2};function D(e,t,o,r,y,n){const g=u("openwb-io-single-pattern"),m=u("openwb-base-number-input"),c=u("openwb-base-select-input");return a(),l(_,null,[e.ioDevice?.type!=="eebus"&&n.value&&n.value.length>0?(a(),d(g,{key:0,modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=i=>n.value=i),contacts:e.ioDevice?.input?.digital||{}},null,8,["modelValue","contacts"])):s("",!0),e.ioAction?.configuration&&e.ioDevice?.type!=="eebus"?(a(),d(m,{key:1,title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!n.isPatternConfigured,"model-value":(e.ioAction.configuration.max_import_power||0)/1e3,"onUpdate:modelValue":t[1]||(t[1]=i=>e.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"])):s("",!0),e.ioDevice?.type!=="eebus"?(a(),l("hr",A)):s("",!0),f(c,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:e.ioDevice?.type!=="eebus"&&!n.isPatternConfigured,"model-value":e.ioAction?.configuration?.devices||[],"onUpdate:modelValue":t[2]||(t[2]=i=>e.updateConfiguration(i,"configuration.devices"))},{help:w(()=>[...t[3]||(t[3]=[p(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),k("br",null,null,-1),p(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const I=h(V,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{I as default}; +import{a as b}from"./IoConfiguration-hMQZDwaS.js";import{O as v}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as u,k as a,e as l,y as d,u as s,m as f,q as w,A as p,x as k,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const V={name:"IoActionDimming",components:{OpenwbIoSinglePattern:v},mixins:[b],computed:{value:{get(){return this.ioAction?.configuration?.input_pattern||[]},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},isPatternConfigured(){return this.value?.length>0&&this.value[0].matrix&&Object.keys(this.value[0].matrix).length>0},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices?.forEach(t=>{let o=[];Object.keys(t?.output?.digital||{}).forEach(r=>{o.push({text:`${r}`,value:{type:"io",id:t.id,digital_output:r}})}),o.length>0&&e.push({label:t.name,options:o})}),e},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints?.map(t=>({value:{type:"cp",id:t.value},text:t.text}))||[]}].concat(this.ioDevicesOutputOptions)}}},A={key:2};function D(e,t,o,r,y,n){const g=u("openwb-io-single-pattern"),m=u("openwb-base-number-input"),c=u("openwb-base-select-input");return a(),l(_,null,[e.ioDevice?.type!=="eebus"&&n.value&&n.value.length>0?(a(),d(g,{key:0,modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=i=>n.value=i),contacts:e.ioDevice?.input?.digital||{}},null,8,["modelValue","contacts"])):s("",!0),e.ioAction?.configuration&&e.ioDevice?.type!=="eebus"?(a(),d(m,{key:1,title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!n.isPatternConfigured,"model-value":(e.ioAction.configuration.max_import_power||0)/1e3,"onUpdate:modelValue":t[1]||(t[1]=i=>e.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"])):s("",!0),e.ioDevice?.type!=="eebus"?(a(),l("hr",A)):s("",!0),f(c,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:e.ioDevice?.type!=="eebus"&&!n.isPatternConfigured,"model-value":e.ioAction?.configuration?.devices||[],"onUpdate:modelValue":t[2]||(t[2]=i=>e.updateConfiguration(i,"configuration.devices"))},{help:w(()=>[...t[3]||(t[3]=[p(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),k("br",null,null,-1),p(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const I=h(V,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{I as default}; diff --git a/web/settings/assets/io_action-CcAuqDqD.js b/web/settings/assets/io_action-BWKUJ45t.js similarity index 92% rename from web/settings/assets/io_action-CcAuqDqD.js rename to web/settings/assets/io_action-BWKUJ45t.js index 5210abdcc5..1f5c947809 100644 --- a/web/settings/assets/io_action-CcAuqDqD.js +++ b/web/settings/assets/io_action-BWKUJ45t.js @@ -1 +1 @@ -import{a as b}from"./IoConfiguration-vfX10CsO.js";import{O as g}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as f,l as i,k as o,e as p,y as l,q as r,A as d,m as _,u,K as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:g},mixins:[b],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}},h={key:2};function y(t,e,V,C,B,a){const m=i("openwb-base-alert"),s=i("openwb-base-select-input"),c=i("openwb-io-pattern");return o(),p(w,null,[t.ioDevice?.type==="eebus"?(o(),l(m,{key:0,subtype:"warning"},{default:r(()=>[...e[2]||(e[2]=[d(" Steuerboxen mit EEBus-Schnistelle sind für Rundsteuerempfänger-Aktionen nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):t.ioDevice?(o(),l(c,{key:1,modelValue:a.value,"onUpdate:modelValue":e[0]||(e[0]=n=>a.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:r(n=>[_(s,{modelValue:n.pattern.value,"onUpdate:modelValue":v=>n.pattern.value=v,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"])):u("",!0),t.ioDevice?.type!=="eebus"?(o(),p("hr",h)):u("",!0),t.ioDevice?.type!=="eebus"?(o(),l(s,{key:3,title:"Anwenden auf...","empty-value":[],groups:a.availableDevices,required:"",multiple:"","model-value":t.ioAction?.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:r(()=>[...e[3]||(e[3]=[d(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])]),_:1},8,["groups","model-value"])):u("",!0)],64)}const N=f(k,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{N as default}; +import{a as b}from"./IoConfiguration-hMQZDwaS.js";import{O as g}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as f,l as i,k as o,e as p,y as l,q as r,A as d,m as _,u,K as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:g},mixins:[b],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}},h={key:2};function y(t,e,V,C,B,a){const m=i("openwb-base-alert"),s=i("openwb-base-select-input"),c=i("openwb-io-pattern");return o(),p(w,null,[t.ioDevice?.type==="eebus"?(o(),l(m,{key:0,subtype:"warning"},{default:r(()=>[...e[2]||(e[2]=[d(" Steuerboxen mit EEBus-Schnistelle sind für Rundsteuerempfänger-Aktionen nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):t.ioDevice?(o(),l(c,{key:1,modelValue:a.value,"onUpdate:modelValue":e[0]||(e[0]=n=>a.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:r(n=>[_(s,{modelValue:n.pattern.value,"onUpdate:modelValue":v=>n.pattern.value=v,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"])):u("",!0),t.ioDevice?.type!=="eebus"?(o(),p("hr",h)):u("",!0),t.ioDevice?.type!=="eebus"?(o(),l(s,{key:3,title:"Anwenden auf...","empty-value":[],groups:a.availableDevices,required:"",multiple:"","model-value":t.ioAction?.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:r(()=>[...e[3]||(e[3]=[d(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])]),_:1},8,["groups","model-value"])):u("",!0)],64)}const N=f(k,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{N as default}; diff --git a/web/settings/assets/io_action-CNib3IIZ.js b/web/settings/assets/io_action-Des8D82O.js similarity index 96% rename from web/settings/assets/io_action-CNib3IIZ.js rename to web/settings/assets/io_action-Des8D82O.js index 9d7901b6a4..03249d864f 100644 --- a/web/settings/assets/io_action-CNib3IIZ.js +++ b/web/settings/assets/io_action-Des8D82O.js @@ -1 +1 @@ -import{a as f}from"./IoConfiguration-vfX10CsO.js";import{O as v}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as h,l as u,k as i,e as l,y as p,q as s,A as a,J as g,u as r,m as k,x as w,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:v},mixins:[f],computed:{availableDevices(){let e=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:e.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:e}]}}},V={key:1},y={key:2};function B(e,t,o,D,z,c){const d=u("openwb-io-pattern"),m=u("openwb-base-select-input"),b=u("openwb-base-button-group-input");return i(),l(_,null,[e.ioDevice?.type!=="eebus"?(i(),p(d,{key:0,modelValue:e.ioAction.configuration.input_pattern,"onUpdate:modelValue":t[0]||(t[0]=n=>e.ioAction.configuration.input_pattern=n),contacts:e.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0),e.ioDevice?.type!=="eebus"?(i(),l("hr",V)):r("",!0),k(m,{modelValue:e.ioAction.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=n=>e.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:c.availableDevices,required:"",multiple:""},{help:s(()=>[...t[4]||(t[4]=[a(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),w("br",null,null,-1),a(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])]),_:1},8,["modelValue","groups"]),e.ioDevice?.type!=="eebus"?(i(),l("hr",y)):r("",!0),e.ioDevice?.type!=="eebus"?(i(),p(b,{key:3,modelValue:e.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":t[2]||(t[2]=n=>e.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:s(()=>[...t[5]||(t[5]=[a(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])]),_:1},8,["modelValue"])):r("",!0),e.ioAction.configuration.passthrough_enabled?(i(),p(d,{key:4,modelValue:e.ioAction.configuration.output_pattern,"onUpdate:modelValue":t[3]||(t[3]=n=>e.ioAction.configuration.output_pattern=n),contacts:e.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0)],64)}const $=h(A,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{$ as default}; +import{a as f}from"./IoConfiguration-hMQZDwaS.js";import{O as v}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as h,l as u,k as i,e as l,y as p,q as s,A as a,J as g,u as r,m as k,x as w,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:v},mixins:[f],computed:{availableDevices(){let e=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:e.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:e}]}}},V={key:1},y={key:2};function B(e,t,o,D,z,c){const d=u("openwb-io-pattern"),m=u("openwb-base-select-input"),b=u("openwb-base-button-group-input");return i(),l(_,null,[e.ioDevice?.type!=="eebus"?(i(),p(d,{key:0,modelValue:e.ioAction.configuration.input_pattern,"onUpdate:modelValue":t[0]||(t[0]=n=>e.ioAction.configuration.input_pattern=n),contacts:e.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0),e.ioDevice?.type!=="eebus"?(i(),l("hr",V)):r("",!0),k(m,{modelValue:e.ioAction.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=n=>e.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:c.availableDevices,required:"",multiple:""},{help:s(()=>[...t[4]||(t[4]=[a(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),w("br",null,null,-1),a(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])]),_:1},8,["modelValue","groups"]),e.ioDevice?.type!=="eebus"?(i(),l("hr",y)):r("",!0),e.ioDevice?.type!=="eebus"?(i(),p(b,{key:3,modelValue:e.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":t[2]||(t[2]=n=>e.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:s(()=>[...t[5]||(t[5]=[a(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])]),_:1},8,["modelValue"])):r("",!0),e.ioAction.configuration.passthrough_enabled?(i(),p(d,{key:4,modelValue:e.ioAction.configuration.output_pattern,"onUpdate:modelValue":t[3]||(t[3]=n=>e.ioAction.configuration.output_pattern=n),contacts:e.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0)],64)}const $=h(A,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{$ as default}; diff --git a/web/settings/assets/io_action-XIjORj2n.js b/web/settings/assets/io_action-JT1W0Hwl.js similarity index 93% rename from web/settings/assets/io_action-XIjORj2n.js rename to web/settings/assets/io_action-JT1W0Hwl.js index 0fe070e8cb..7f05c19bd4 100644 --- a/web/settings/assets/io_action-XIjORj2n.js +++ b/web/settings/assets/io_action-JT1W0Hwl.js @@ -1 +1 @@ -import{a as v}from"./IoConfiguration-vfX10CsO.js";import{O as f}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as s,k as n,e as p,y as r,q as d,A as c,u,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:f},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices.forEach(t=>{let i=[];Object.keys(t?.output?.digital||{}).forEach(a=>{i.push({text:`${a}`,value:{type:"io",id:t.id,digital_output:a}})}),i.length>0&&e.push({label:t.name,options:i})}),e.length===0&&e.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),e},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}},k={key:2};function y(e,t,i,a,D,o){const m=s("openwb-base-alert"),g=s("openwb-io-single-pattern"),b=s("openwb-base-select-input");return n(),p(_,null,[e.ioDevice?.type==="eebus"?(n(),r(m,{key:0,subtype:"warning"},{default:d(()=>[...t[2]||(t[2]=[c(" Steuerboxen mit EEBus-Schnistelle sind für Dimmen per Direktsteuerung nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):e.ioDevice?(n(),r(g,{key:1,modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=l=>o.value=l),contacts:e.ioDevice?.input?.digital},null,8,["modelValue","contacts"])):u("",!0),e.ioDevice?.type!=="eebus"?(n(),p("hr",k)):u("",!0),e.ioDevice?.type!=="eebus"?(n(),r(b,{key:3,title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":e.ioAction?.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateConfiguration(l,"configuration.devices"))},{help:d(()=>[...t[3]||(t[3]=[c(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])]),_:1},8,["groups","disabled","model-value"])):u("",!0)],64)}const P=h(w,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{P as default}; +import{a as v}from"./IoConfiguration-hMQZDwaS.js";import{O as f}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as s,k as n,e as p,y as r,q as d,A as c,u,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:f},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices.forEach(t=>{let i=[];Object.keys(t?.output?.digital||{}).forEach(a=>{i.push({text:`${a}`,value:{type:"io",id:t.id,digital_output:a}})}),i.length>0&&e.push({label:t.name,options:i})}),e.length===0&&e.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),e},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}},k={key:2};function y(e,t,i,a,D,o){const m=s("openwb-base-alert"),g=s("openwb-io-single-pattern"),b=s("openwb-base-select-input");return n(),p(_,null,[e.ioDevice?.type==="eebus"?(n(),r(m,{key:0,subtype:"warning"},{default:d(()=>[...t[2]||(t[2]=[c(" Steuerboxen mit EEBus-Schnistelle sind für Dimmen per Direktsteuerung nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):e.ioDevice?(n(),r(g,{key:1,modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=l=>o.value=l),contacts:e.ioDevice?.input?.digital},null,8,["modelValue","contacts"])):u("",!0),e.ioDevice?.type!=="eebus"?(n(),p("hr",k)):u("",!0),e.ioDevice?.type!=="eebus"?(n(),r(b,{key:3,title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":e.ioAction?.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateConfiguration(l,"configuration.devices"))},{help:d(()=>[...t[3]||(t[3]=[c(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])]),_:1},8,["groups","disabled","model-value"])):u("",!0)],64)}const P=h(w,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{P as default}; diff --git a/web/settings/assets/io_device-B-Ykhm08.js b/web/settings/assets/io_device-BBOT5GiC.js similarity index 92% rename from web/settings/assets/io_device-B-Ykhm08.js rename to web/settings/assets/io_device-BBOT5GiC.js index c72cd434a1..941304c2bc 100644 --- a/web/settings/assets/io_device-B-Ykhm08.js +++ b/web/settings/assets/io_device-BBOT5GiC.js @@ -1 +1 @@ -import{O as m}from"./IoConfiguration-vfX10CsO.js";import{_ as p,l as r,k as c,e as b,m as n,q as l,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"IoDeviceEebus",mixins:[m]},v={class:"io-device-eebus"};function g(e,o,_,w,k,D){const u=r("openwb-base-number-input"),t=r("openwb-base-text-input"),s=r("openwb-base-button-input"),d=r("openwb-base-alert");return c(),b("div",v,[n(u,{title:"Port",required:"",min:1,max:65535,"model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),n(t,{title:"SKI-Schlüssel des VNB","model-value":e.ioDevice.configuration.remote_ski,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.remote_ski"))},null,8,["model-value"]),n(s,{title:"Zertifikat und SKI-Schlüssel","button-text":"Zertifikat und SKI-Schlüssel generieren",subtype:"warning",onButtonClicked:o[2]||(o[2]=i=>e.sendSystemCommand("createEebusCert",{io_device:e.ioDevice.id}))},{help:l(()=>[...o[3]||(o[3]=[a(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1}),n(d,{subtype:"danger"},{default:l(()=>[...o[4]||(o[4]=[a(" Vorhandene Zertifikate werden gelöscht. Der SKI-Schlüssel muss danach beim Netzbetreiber (VNB) neu eingetragen werden. ",-1)])]),_:1}),n(t,{title:"SKI-Schlüssel (zum Eintragen beim VNB)","model-value":e.ioDevice.configuration.cert_info.client_ski,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig ab","model-value":e.ioDevice.configuration.cert_info.not_before,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig bis","model-value":e.ioDevice.configuration.cert_info.not_after,readonly:!0},null,8,["model-value"]),n(t,{title:"Aussteller","model-value":e.ioDevice.configuration.cert_info.issuer,readonly:!0},null,8,["model-value"]),n(t,{title:"weitere Informationen","model-value":e.ioDevice.configuration.cert_info.subject,readonly:!0},null,8,["model-value"])])}const N=p(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/eebus/io_device.vue"]]);export{N as default}; +import{O as m}from"./IoConfiguration-hMQZDwaS.js";import{_ as p,l as r,k as c,e as b,m as n,q as l,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"IoDeviceEebus",mixins:[m]},v={class:"io-device-eebus"};function g(e,o,_,w,k,D){const u=r("openwb-base-number-input"),t=r("openwb-base-text-input"),s=r("openwb-base-button-input"),d=r("openwb-base-alert");return c(),b("div",v,[n(u,{title:"Port",required:"",min:1,max:65535,"model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),n(t,{title:"SKI-Schlüssel des VNB","model-value":e.ioDevice.configuration.remote_ski,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.remote_ski"))},null,8,["model-value"]),n(s,{title:"Zertifikat und SKI-Schlüssel","button-text":"Zertifikat und SKI-Schlüssel generieren",subtype:"warning",onButtonClicked:o[2]||(o[2]=i=>e.sendSystemCommand("createEebusCert",{io_device:e.ioDevice.id}))},{help:l(()=>[...o[3]||(o[3]=[a(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1}),n(d,{subtype:"danger"},{default:l(()=>[...o[4]||(o[4]=[a(" Vorhandene Zertifikate werden gelöscht. Der SKI-Schlüssel muss danach beim Netzbetreiber (VNB) neu eingetragen werden. ",-1)])]),_:1}),n(t,{title:"SKI-Schlüssel (zum Eintragen beim VNB)","model-value":e.ioDevice.configuration.cert_info.client_ski,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig ab","model-value":e.ioDevice.configuration.cert_info.not_before,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig bis","model-value":e.ioDevice.configuration.cert_info.not_after,readonly:!0},null,8,["model-value"]),n(t,{title:"Aussteller","model-value":e.ioDevice.configuration.cert_info.issuer,readonly:!0},null,8,["model-value"]),n(t,{title:"weitere Informationen","model-value":e.ioDevice.configuration.cert_info.subject,readonly:!0},null,8,["model-value"])])}const N=p(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/eebus/io_device.vue"]]);export{N as default}; diff --git a/web/settings/assets/io_device-1ouhD8vS.js b/web/settings/assets/io_device-ByQHLYHY.js similarity index 95% rename from web/settings/assets/io_device-1ouhD8vS.js rename to web/settings/assets/io_device-ByQHLYHY.js index 685966445b..e8c29eea25 100644 --- a/web/settings/assets/io_device-1ouhD8vS.js +++ b/web/settings/assets/io_device-ByQHLYHY.js @@ -1 +1 @@ -import{O as m}from"./IoConfiguration-vfX10CsO.js";import{C as f}from"./index-CyH1Au4V.js";import{_ as g,l as s,k as h,e as b,m as a,q as l,A as i,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./dynamic-import-helper-BheWnx7M.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1}]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const o of Object.values(t))if(["external_openwb"].includes(o.type)){if(e.find(r=>r.value===o.configuration.ip_address))continue;e.push({value:o.configuration.ip_address,text:o.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?[]:[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,o,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>[...e[1]||(e[1]=[i(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),i(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),i(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),i(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])]),_:1}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>[...e[2]||(e[2]=[i(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),i(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])]),_:1},8,["groups","model-value"])])}const P=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{P as default}; +import{O as m}from"./IoConfiguration-hMQZDwaS.js";import{C as f}from"./index-D_eD74fL.js";import{_ as g,l as s,k as h,e as b,m as a,q as l,A as i,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./dynamic-import-helper-BheWnx7M.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1}]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const o of Object.values(t))if(["external_openwb"].includes(o.type)){if(e.find(r=>r.value===o.configuration.ip_address))continue;e.push({value:o.configuration.ip_address,text:o.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?[]:[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,o,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>[...e[1]||(e[1]=[i(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),i(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),i(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),i(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])]),_:1}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>[...e[2]||(e[2]=[i(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),i(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])]),_:1},8,["groups","model-value"])])}const P=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{P as default}; diff --git a/web/settings/assets/io_device-BFTcDSy5.js b/web/settings/assets/io_device-mvR1tJtP.js similarity index 90% rename from web/settings/assets/io_device-BFTcDSy5.js rename to web/settings/assets/io_device-mvR1tJtP.js index 9d29661234..4249750aec 100644 --- a/web/settings/assets/io_device-BFTcDSy5.js +++ b/web/settings/assets/io_device-mvR1tJtP.js @@ -1 +1 @@ -import{O as m}from"./IoConfiguration-vfX10CsO.js";import{_ as a,l as r,k as p,e as s,m as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(e,o,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return p(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.ioDevice.configuration.host,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":e.ioDevice.configuration.modbus_id,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{q as default}; +import{O as m}from"./IoConfiguration-hMQZDwaS.js";import{_ as a,l as r,k as p,e as s,m as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(e,o,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return p(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.ioDevice.configuration.host,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":e.ioDevice.configuration.modbus_id,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{q as default}; diff --git a/web/settings/assets/monitoring-BMLL0nfh.js b/web/settings/assets/monitoring-oAy7LKTI.js similarity index 93% rename from web/settings/assets/monitoring-BMLL0nfh.js rename to web/settings/assets/monitoring-oAy7LKTI.js index 36a4acbeee..1eefc55f14 100644 --- a/web/settings/assets/monitoring-BMLL0nfh.js +++ b/web/settings/assets/monitoring-oAy7LKTI.js @@ -1 +1 @@ -import{M as l}from"./DataManagement-FAi2cjUn.js";import{_ as d,l as a,k as p,e as m,m as t,q as g,A as r,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,k,_,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return p(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>[...e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])]),_:1}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const S=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{S as default}; +import{M as l}from"./DataManagement-C57poL-r.js";import{_ as d,l as a,k as p,e as m,m as t,q as g,A as r,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,k,_,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return p(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>[...e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])]),_:1}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const S=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{S as default}; diff --git a/web/settings/assets/vehicle-CiPbB9w2.js b/web/settings/assets/vehicle-7kCruC46.js similarity index 94% rename from web/settings/assets/vehicle-CiPbB9w2.js rename to web/settings/assets/vehicle-7kCruC46.js index 7453198072..fc6152071e 100644 --- a/web/settings/assets/vehicle-CiPbB9w2.js +++ b/web/settings/assets/vehicle-7kCruC46.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as u,k as m,e as v,m as t,q as l,A as o,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=u("openwb-base-alert"),s=u("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])]),_:1}),t(s,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>[...e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])]),_:1},8,["model-value"]),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>[...e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>[...e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>[...e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])]),_:1},8,["model-value"])])}const _=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{_ as default}; +import{V as a}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as u,k as m,e as v,m as t,q as l,A as o,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=u("openwb-base-alert"),s=u("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])]),_:1}),t(s,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>[...e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])]),_:1},8,["model-value"]),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>[...e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>[...e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>[...e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])]),_:1},8,["model-value"])])}const _=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{_ as default}; diff --git a/web/settings/assets/vehicle-B0tJYS46.js b/web/settings/assets/vehicle-ADVayxu-.js similarity index 94% rename from web/settings/assets/vehicle-B0tJYS46.js rename to web/settings/assets/vehicle-ADVayxu-.js index 92eb985de1..3788c3eec2 100644 --- a/web/settings/assets/vehicle-B0tJYS46.js +++ b/web/settings/assets/vehicle-ADVayxu-.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfiguration-TZSwJptx.js";import{_ as m,l,k as f,e as b,m as i,q as r,A as t,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,C){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])]),_:1}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>[...e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])]),_:1},8,["model-value"])])}const x=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{x as default}; +import{V as p}from"./VehicleConfiguration-B3d9qly5.js";import{_ as m,l,k as f,e as b,m as i,q as r,A as t,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,C){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])]),_:1}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>[...e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])]),_:1},8,["model-value"])])}const x=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{x as default}; diff --git a/web/settings/assets/vehicle-Bo3E1wuI.js b/web/settings/assets/vehicle-BBQyN4nf.js similarity index 96% rename from web/settings/assets/vehicle-Bo3E1wuI.js rename to web/settings/assets/vehicle-BBQyN4nf.js index 33a9f3ffbe..ffe683d898 100644 --- a/web/settings/assets/vehicle-Bo3E1wuI.js +++ b/web/settings/assets/vehicle-BBQyN4nf.js @@ -1 +1 @@ -import{V as s}from"./VehicleConfiguration-TZSwJptx.js";import{_ as d,l as u,k as p,e as v,m as a,q as n,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return p(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>[...e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>[...e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>[...e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>[...e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>[...e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const F=d(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; +import{V as s}from"./VehicleConfiguration-B3d9qly5.js";import{_ as d,l as u,k as p,e as v,m as a,q as n,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return p(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>[...e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>[...e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>[...e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>[...e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>[...e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const F=d(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-BJ8Vq-80.js b/web/settings/assets/vehicle-BV1RfRrF.js similarity index 97% rename from web/settings/assets/vehicle-BJ8Vq-80.js rename to web/settings/assets/vehicle-BV1RfRrF.js index b7fc484850..ef83fa4ce1 100644 --- a/web/settings/assets/vehicle-BJ8Vq-80.js +++ b/web/settings/assets/vehicle-BV1RfRrF.js @@ -1 +1 @@ -import{_ as h,l as r,k as f,e as b,m as i,q as a,A as s,x as k,a5 as v,a6 as c,a7 as _}from"./vendor-Bo8v-nQD.js";import{a as w}from"./vendor-axios-DdFvNBv9.js";import{C}from"./index-CyH1Au4V.js";import{V as y}from"./VehicleConfiguration-TZSwJptx.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=v.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},U={class:"vehicle-soc-tesla"};function B(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return f(),b("div",U,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>[...n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])]),_:1},8,["model-value"]),i(m,null,{default:a(()=>[...n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])]),_:1}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>[...n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Tesla mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>[...n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])]),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>[...n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=k("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>[...n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>[...n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])]),_:1},8,["model-value"])])}const x=h(T,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{x as default}; +import{_ as h,l as r,k as f,e as b,m as i,q as a,A as s,x as k,a5 as v,a6 as c,a7 as _}from"./vendor-Bo8v-nQD.js";import{a as w}from"./vendor-axios-DdFvNBv9.js";import{C}from"./index-D_eD74fL.js";import{V as y}from"./VehicleConfiguration-B3d9qly5.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=v.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},U={class:"vehicle-soc-tesla"};function B(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return f(),b("div",U,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>[...n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])]),_:1},8,["model-value"]),i(m,null,{default:a(()=>[...n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])]),_:1}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>[...n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Tesla mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>[...n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])]),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>[...n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=k("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>[...n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>[...n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])]),_:1},8,["model-value"])])}const x=h(T,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{x as default}; diff --git a/web/settings/assets/vehicle-C4xon1Al.js b/web/settings/assets/vehicle-Br3C3ndJ.js similarity index 93% rename from web/settings/assets/vehicle-C4xon1Al.js rename to web/settings/assets/vehicle-Br3C3ndJ.js index 91781d2c42..347ce21946 100644 --- a/web/settings/assets/vehicle-C4xon1Al.js +++ b/web/settings/assets/vehicle-Br3C3ndJ.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfiguration-TZSwJptx.js";import{_ as l,l as s,k as d,e as m,m as r,q as i,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,V){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])]),_:1}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{N as default}; +import{V as p}from"./VehicleConfiguration-B3d9qly5.js";import{_ as l,l as s,k as d,e as m,m as r,q as i,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,V){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])]),_:1}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-7u_dqMEp.js b/web/settings/assets/vehicle-BtE1rfvQ.js similarity index 89% rename from web/settings/assets/vehicle-7u_dqMEp.js rename to web/settings/assets/vehicle-BtE1rfvQ.js index 48114482e0..276a01aa81 100644 --- a/web/settings/assets/vehicle-7u_dqMEp.js +++ b/web/settings/assets/vehicle-BtE1rfvQ.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfiguration-TZSwJptx.js";import{_ as u,l,k as p,e as s,m as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEvnotify",mixins:[r]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const a=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(a,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const q=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{q as default}; +import{V as r}from"./VehicleConfiguration-B3d9qly5.js";import{_ as u,l,k as p,e as s,m as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEvnotify",mixins:[r]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const a=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(a,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const q=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-CeWm61bY.js b/web/settings/assets/vehicle-Bzw0t3uD.js similarity index 95% rename from web/settings/assets/vehicle-CeWm61bY.js rename to web/settings/assets/vehicle-Bzw0t3uD.js index b6d0f4b37c..bbe1147296 100644 --- a/web/settings/assets/vehicle-CeWm61bY.js +++ b/web/settings/assets/vehicle-Bzw0t3uD.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfiguration-TZSwJptx.js";import{_ as b,l as s,k as g,e as v,m as i,q as o,A as n,x as u,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),v("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>[...e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>[...e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>[...e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(_(r.callback_url),1)]),_:1})]),_:1}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>[...e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Mercedes mit Deinen Zugangsdaten anmelden kannst.",-1),u("br",null,null,-1)])]),_:1},8,["disabled","onButtonClicked"])])}const $=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{$ as default}; +import{V as m}from"./VehicleConfiguration-B3d9qly5.js";import{_ as b,l as s,k as g,e as v,m as i,q as o,A as n,x as u,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),v("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>[...e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>[...e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>[...e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(_(r.callback_url),1)]),_:1})]),_:1}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>[...e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Mercedes mit Deinen Zugangsdaten anmelden kannst.",-1),u("br",null,null,-1)])]),_:1},8,["disabled","onButtonClicked"])])}const $=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-CPjkbES5.js b/web/settings/assets/vehicle-CH_9CnU6.js similarity index 93% rename from web/settings/assets/vehicle-CPjkbES5.js rename to web/settings/assets/vehicle-CH_9CnU6.js index c902a857f3..07eca006e9 100644 --- a/web/settings/assets/vehicle-CPjkbES5.js +++ b/web/settings/assets/vehicle-CH_9CnU6.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfiguration-TZSwJptx.js";import{_ as u,l as a,k as p,e as m,m as i,q as r,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,c){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])]),_:1}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{N as default}; +import{V as l}from"./VehicleConfiguration-B3d9qly5.js";import{_ as u,l as a,k as p,e as m,m as i,q as r,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,c){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])]),_:1}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-9Vh-TxGa.js b/web/settings/assets/vehicle-CO6j-SQn.js similarity index 87% rename from web/settings/assets/vehicle-9Vh-TxGa.js rename to web/settings/assets/vehicle-CO6j-SQn.js index 8f4d032aa0..e32f2e2d91 100644 --- a/web/settings/assets/vehicle-9Vh-TxGa.js +++ b/web/settings/assets/vehicle-CO6j-SQn.js @@ -1 +1 @@ -import{V as o}from"./VehicleConfiguration-TZSwJptx.js";import{_ as i,l as r,k as s,e as a,m as c,q as p,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(f,e,_,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>[...e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])]),_:1})])}const C=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{C as default}; +import{V as o}from"./VehicleConfiguration-B3d9qly5.js";import{_ as i,l as r,k as s,e as a,m as c,q as p,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(f,e,_,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>[...e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])]),_:1})])}const C=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{C as default}; diff --git a/web/settings/assets/vehicle-Bwnke49F.js b/web/settings/assets/vehicle-CUR0E3wk.js similarity index 89% rename from web/settings/assets/vehicle-Bwnke49F.js rename to web/settings/assets/vehicle-CUR0E3wk.js index 2f1f500e2e..af2dc421b5 100644 --- a/web/settings/assets/vehicle-Bwnke49F.js +++ b/web/settings/assets/vehicle-CUR0E3wk.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfiguration-TZSwJptx.js";import{S as d}from"./SystemVersion-DQAfG1DR.js";import{_ as p,l as t,k as m,e as b,m as o,q as f,A as r,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocManual",mixins:[l,d]},c={class:"vehicle-soc-manual"},h=["href"];function _(n,e,k,w,v,z){const s=t("openwb-base-alert"),i=t("openwb-base-button-group-input");return m(),b("div",c,[o(s,{subtype:"info"},{default:f(()=>[e[1]||(e[1]=r(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC-Wert des Fahrzeugs über die Hauptseite oder (wenn verbaut) am Display der openWB angegeben werden. Anhand des geladenen Stroms wird der aktuelle SoC-Wert des Fahrzeugs während der Ladung berechnet. Ausschlaggebend für die Genauigkeit der Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. Weitere Infos dazu im ',-1)),a("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:fahrzeug-infos:manueller-soc`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zum manuellen SoC ",8,h),e[2]||(e[2]=r(".",-1)),e[3]||(e[3]=a("br",null,null,-1))]),_:1}),o(i,{title:"SoC ohne manuelle Eingabe",buttons:[{buttonValue:!1,text:"letzten SoC beibehalten"},{buttonValue:!0,text:"nach dem Abstecken auf 0% zurücksetzen"}],"model-value":n.vehicle.configuration.reset_after_unplug,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u,"configuration.reset_after_unplug"))},null,8,["model-value"])])}const F=p(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{F as default}; +import{V as l}from"./VehicleConfiguration-B3d9qly5.js";import{S as d}from"./SystemVersion-DQAfG1DR.js";import{_ as p,l as t,k as m,e as b,m as o,q as f,A as r,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocManual",mixins:[l,d]},c={class:"vehicle-soc-manual"},h=["href"];function _(n,e,k,w,v,z){const s=t("openwb-base-alert"),i=t("openwb-base-button-group-input");return m(),b("div",c,[o(s,{subtype:"info"},{default:f(()=>[e[1]||(e[1]=r(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC-Wert des Fahrzeugs über die Hauptseite oder (wenn verbaut) am Display der openWB angegeben werden. Anhand des geladenen Stroms wird der aktuelle SoC-Wert des Fahrzeugs während der Ladung berechnet. Ausschlaggebend für die Genauigkeit der Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. Weitere Infos dazu im ',-1)),a("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:fahrzeug-infos:manueller-soc`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zum manuellen SoC ",8,h),e[2]||(e[2]=r(".",-1)),e[3]||(e[3]=a("br",null,null,-1))]),_:1}),o(i,{title:"SoC ohne manuelle Eingabe",buttons:[{buttonValue:!1,text:"letzten SoC beibehalten"},{buttonValue:!0,text:"nach dem Abstecken auf 0% zurücksetzen"}],"model-value":n.vehicle.configuration.reset_after_unplug,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u,"configuration.reset_after_unplug"))},null,8,["model-value"])])}const F=p(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-mz1O0JRs.js b/web/settings/assets/vehicle-ClSMB-k7.js similarity index 91% rename from web/settings/assets/vehicle-mz1O0JRs.js rename to web/settings/assets/vehicle-ClSMB-k7.js index 0a91b167b7..0109499a9d 100644 --- a/web/settings/assets/vehicle-mz1O0JRs.js +++ b/web/settings/assets/vehicle-ClSMB-k7.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfiguration-TZSwJptx.js";import{_ as l,l as s,k as a,e as u,m as i,q as p,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>[...e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const $=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{$ as default}; +import{V as r}from"./VehicleConfiguration-B3d9qly5.js";import{_ as l,l as s,k as a,e as u,m as i,q as p,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>[...e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const $=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-CoVie7os.js b/web/settings/assets/vehicle-D363Q7cB.js similarity index 97% rename from web/settings/assets/vehicle-CoVie7os.js rename to web/settings/assets/vehicle-D363Q7cB.js index 4631485b5f..cb0b525a38 100644 --- a/web/settings/assets/vehicle-CoVie7os.js +++ b/web/settings/assets/vehicle-D363Q7cB.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as s,k as g,e as b,m as r,q as i,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>[...e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>[...e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>[...e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>[...e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])]),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>[...e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>[...e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])]),_:1},8,["model-value"])])}const y=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{y as default}; +import{V as m}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as s,k as g,e as b,m as r,q as i,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>[...e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>[...e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>[...e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>[...e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])]),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>[...e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>[...e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])]),_:1},8,["model-value"])])}const y=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vehicle-uzGGKIpS.js b/web/settings/assets/vehicle-DDs9o72d.js similarity index 96% rename from web/settings/assets/vehicle-uzGGKIpS.js rename to web/settings/assets/vehicle-DDs9o72d.js index c04b7fb0cd..b1a83a1fc3 100644 --- a/web/settings/assets/vehicle-uzGGKIpS.js +++ b/web/settings/assets/vehicle-DDs9o72d.js @@ -1 +1 @@ -import{V as d}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as r,k as m,e as g,m as o,q as l,A as i,x as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocHomeAssistant",mixins:[d]},b={class:"vehicle-soc-homeassistant"};function v(t,e,w,h,D,C){const s=r("openwb-base-text-input"),a=r("openwb-base-button-group-input");return m(),g("div",b,[o(s,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.url"))},{help:l(()=>[...e[6]||(e[6]=[i(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen und idealerweise Port. Beispiel: http://192.168.1.1:8123 ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Token",subtype:"text",required:"","model-value":t.vehicle.configuration.token,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.token"))},{help:l(()=>[...e[7]||(e[7]=[i(" Das Token kann in HomeAssistant hier erstellt werden:",-1),u("br",null,null,-1),i(" „Dein Profil“ → oberer Reiter „Sicherheit“ → ganz unten „Langlebiges Zugriffstoken erstellen“ ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.entity_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.entity_soc"))},{help:l(()=>[...e[8]||(e[8]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Reichweite",subtype:"text","model-value":t.vehicle.configuration.entity_range,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.entity_range"))},{help:l(()=>[...e[9]||(e[9]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Kilometerstand",subtype:"text","model-value":t.vehicle.configuration.entity_odometer,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.entity_odometer"))},{help:l(()=>[...e[10]||(e[10]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(a,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:l(()=>[...e[11]||(e[11]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),u("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const A=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/homeassistant/vehicle.vue"]]);export{A as default}; +import{V as d}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as r,k as m,e as g,m as o,q as l,A as i,x as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocHomeAssistant",mixins:[d]},b={class:"vehicle-soc-homeassistant"};function v(t,e,w,h,D,C){const s=r("openwb-base-text-input"),a=r("openwb-base-button-group-input");return m(),g("div",b,[o(s,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.url"))},{help:l(()=>[...e[6]||(e[6]=[i(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen und idealerweise Port. Beispiel: http://192.168.1.1:8123 ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Token",subtype:"text",required:"","model-value":t.vehicle.configuration.token,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.token"))},{help:l(()=>[...e[7]||(e[7]=[i(" Das Token kann in HomeAssistant hier erstellt werden:",-1),u("br",null,null,-1),i(" „Dein Profil“ → oberer Reiter „Sicherheit“ → ganz unten „Langlebiges Zugriffstoken erstellen“ ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.entity_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.entity_soc"))},{help:l(()=>[...e[8]||(e[8]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Reichweite",subtype:"text","model-value":t.vehicle.configuration.entity_range,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.entity_range"))},{help:l(()=>[...e[9]||(e[9]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Kilometerstand",subtype:"text","model-value":t.vehicle.configuration.entity_odometer,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.entity_odometer"))},{help:l(()=>[...e[10]||(e[10]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(a,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:l(()=>[...e[11]||(e[11]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),u("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const A=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/homeassistant/vehicle.vue"]]);export{A as default}; diff --git a/web/settings/assets/vehicle-Qsp1JuH6.js b/web/settings/assets/vehicle-DT7Lg5C4.js similarity index 92% rename from web/settings/assets/vehicle-Qsp1JuH6.js rename to web/settings/assets/vehicle-DT7Lg5C4.js index 21fa39ce6a..7e47ecad5d 100644 --- a/web/settings/assets/vehicle-Qsp1JuH6.js +++ b/web/settings/assets/vehicle-DT7Lg5C4.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfiguration-TZSwJptx.js";import{_ as u,l as s,k as d,e as p,m as t,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocKia",mixins:[a]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>[...e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const U=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{U as default}; +import{V as a}from"./VehicleConfiguration-B3d9qly5.js";import{_ as u,l as s,k as d,e as p,m as t,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocKia",mixins:[a]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>[...e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const U=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-bxge8VZs.js b/web/settings/assets/vehicle-DTOXQ3ag.js similarity index 93% rename from web/settings/assets/vehicle-bxge8VZs.js rename to web/settings/assets/vehicle-DTOXQ3ag.js index 065326b878..b77457db71 100644 --- a/web/settings/assets/vehicle-bxge8VZs.js +++ b/web/settings/assets/vehicle-DTOXQ3ag.js @@ -1 +1 @@ -import{V as s}from"./VehicleConfiguration-TZSwJptx.js";import{_ as d,l as a,k as p,e as m,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"VehicleSocHttp",mixins:[s]},g={class:"vehicle-soc-http"};function b(t,e,v,f,h,w){const l=a("openwb-base-text-input"),u=a("openwb-base-button-group-input");return p(),m("div",g,[o(l,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.soc_url"))},{help:i(()=>[...e[3]||(e[3]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.range_url"))},{help:i(()=>[...e[4]||(e[4]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:i(()=>[...e[5]||(e[5]=[r(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const B=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{B as default}; +import{V as s}from"./VehicleConfiguration-B3d9qly5.js";import{_ as d,l as a,k as p,e as m,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"VehicleSocHttp",mixins:[s]},g={class:"vehicle-soc-http"};function b(t,e,v,f,h,w){const l=a("openwb-base-text-input"),u=a("openwb-base-button-group-input");return p(),m("div",g,[o(l,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.soc_url"))},{help:i(()=>[...e[3]||(e[3]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.range_url"))},{help:i(()=>[...e[4]||(e[4]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:i(()=>[...e[5]||(e[5]=[r(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const B=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-BxcO7fDO.js b/web/settings/assets/vehicle-DjrtYuS-.js similarity index 93% rename from web/settings/assets/vehicle-BxcO7fDO.js rename to web/settings/assets/vehicle-DjrtYuS-.js index 3a3fed523d..d7263c04d4 100644 --- a/web/settings/assets/vehicle-BxcO7fDO.js +++ b/web/settings/assets/vehicle-DjrtYuS-.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as r,k as d,e as m,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const a=r("openwb-base-text-input"),l=r("openwb-base-select-input");return d(),m("div",f,[o(a,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[3]||(e[3]=[s(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[4]||(e[4]=[s(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>[...e[5]||(e[5]=[s(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])]),_:1},8,["model-value"])])}const S=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{S as default}; +import{V as u}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as r,k as d,e as m,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const a=r("openwb-base-text-input"),l=r("openwb-base-select-input");return d(),m("div",f,[o(a,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[3]||(e[3]=[s(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[4]||(e[4]=[s(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>[...e[5]||(e[5]=[s(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])]),_:1},8,["model-value"])])}const S=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{S as default}; diff --git a/web/settings/assets/vehicle-BjW8elSd.js b/web/settings/assets/vehicle-TpGqMVx6.js similarity index 96% rename from web/settings/assets/vehicle-BjW8elSd.js rename to web/settings/assets/vehicle-TpGqMVx6.js index 76a5bd1a7c..5a56ef63f8 100644 --- a/web/settings/assets/vehicle-BjW8elSd.js +++ b/web/settings/assets/vehicle-TpGqMVx6.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfiguration-TZSwJptx.js";import{_ as b,l as u,k as g,e as f,m as i,q as o,A as n,x as t,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocMqtt",mixins:[m]},w={class:"vehicle-soc-mqtt"};function k(l,e,B,z,x,I){const p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-button-group-input");return g(),f("div",w,[i(p,{subtype:"warning"},{default:o(()=>[e[1]||(e[1]=n(" Ist die ",-1)),e[2]||(e[2]=t("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=n(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),t("strong",null,`"Daten: Fahrzeug '`+s(l.vehicle.name)+"' ("+s(l.vehicleId)+') MQTT-Input"',1),e[4]||(e[4]=n(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:o(()=>[t("ul",null,[t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc ",1)]),_:1}),e[5]||(e[5]=t("br",null,null,-1)),e[6]||(e[6]=n(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[7]||(e[7]=t("br",null,null,-1)),e[8]||(e[8]=n(" Beispiel: ",-1)),e[9]||(e[9]=t("span",{class:"text-info"},"89.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),e[10]||(e[10]=t("br",null,null,-1)),e[11]||(e[11]=n(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),e[12]||(e[12]=t("br",null,null,-1)),e[13]||(e[13]=n(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),e[14]||(e[14]=t("br",null,null,-1)),e[15]||(e[15]=n(" Beispiel: ",-1)),e[16]||(e[16]=t("span",{class:"text-info"},"1748339524",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/range ",1)]),_:1}),e[17]||(e[17]=t("br",null,null,-1)),e[18]||(e[18]=n(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[19]||(e[19]=t("br",null,null,-1)),e[20]||(e[20]=n(" Diese Info ist optional.",-1)),e[21]||(e[21]=t("br",null,null,-1)),e[22]||(e[22]=n(" Beispiel: ",-1)),e[23]||(e[23]=t("span",{class:"text-info"},"356.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/odometer ",1)]),_:1}),e[24]||(e[24]=t("br",null,null,-1)),e[25]||(e[25]=n(" Aktueller Km-Stand des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[26]||(e[26]=t("br",null,null,-1)),e[27]||(e[27]=n(" Diese Info ist optional.",-1)),e[28]||(e[28]=t("br",null,null,-1)),e[29]||(e[29]=n(" Beispiel: ",-1)),e[30]||(e[30]=t("span",{class:"text-info"},"20356.5",-1))])])]),_:1}),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[0]||(e[0]=a=>l.updateConfiguration(a,"configuration.calculate_soc"))},{help:o(()=>[...e[31]||(e[31]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const N=b(v,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default}; +import{V as m}from"./VehicleConfiguration-B3d9qly5.js";import{_ as b,l as u,k as g,e as f,m as i,q as o,A as n,x as t,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocMqtt",mixins:[m]},w={class:"vehicle-soc-mqtt"};function k(l,e,B,z,x,I){const p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-button-group-input");return g(),f("div",w,[i(p,{subtype:"warning"},{default:o(()=>[e[1]||(e[1]=n(" Ist die ",-1)),e[2]||(e[2]=t("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=n(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),t("strong",null,`"Daten: Fahrzeug '`+s(l.vehicle.name)+"' ("+s(l.vehicleId)+') MQTT-Input"',1),e[4]||(e[4]=n(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:o(()=>[t("ul",null,[t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc ",1)]),_:1}),e[5]||(e[5]=t("br",null,null,-1)),e[6]||(e[6]=n(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[7]||(e[7]=t("br",null,null,-1)),e[8]||(e[8]=n(" Beispiel: ",-1)),e[9]||(e[9]=t("span",{class:"text-info"},"89.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),e[10]||(e[10]=t("br",null,null,-1)),e[11]||(e[11]=n(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),e[12]||(e[12]=t("br",null,null,-1)),e[13]||(e[13]=n(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),e[14]||(e[14]=t("br",null,null,-1)),e[15]||(e[15]=n(" Beispiel: ",-1)),e[16]||(e[16]=t("span",{class:"text-info"},"1748339524",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/range ",1)]),_:1}),e[17]||(e[17]=t("br",null,null,-1)),e[18]||(e[18]=n(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[19]||(e[19]=t("br",null,null,-1)),e[20]||(e[20]=n(" Diese Info ist optional.",-1)),e[21]||(e[21]=t("br",null,null,-1)),e[22]||(e[22]=n(" Beispiel: ",-1)),e[23]||(e[23]=t("span",{class:"text-info"},"356.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/odometer ",1)]),_:1}),e[24]||(e[24]=t("br",null,null,-1)),e[25]||(e[25]=n(" Aktueller Km-Stand des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[26]||(e[26]=t("br",null,null,-1)),e[27]||(e[27]=n(" Diese Info ist optional.",-1)),e[28]||(e[28]=t("br",null,null,-1)),e[29]||(e[29]=n(" Beispiel: ",-1)),e[30]||(e[30]=t("span",{class:"text-info"},"20356.5",-1))])])]),_:1}),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[0]||(e[0]=a=>l.updateConfiguration(a,"configuration.calculate_soc"))},{help:o(()=>[...e[31]||(e[31]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const N=b(v,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-TwRWpbVJ.js b/web/settings/assets/vehicle-XMzQc45d.js similarity index 94% rename from web/settings/assets/vehicle-TwRWpbVJ.js rename to web/settings/assets/vehicle-XMzQc45d.js index df770388f1..c4df88a7fd 100644 --- a/web/settings/assets/vehicle-TwRWpbVJ.js +++ b/web/settings/assets/vehicle-XMzQc45d.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfiguration-TZSwJptx.js";import{_ as p,l as a,k as m,e as f,m as r,q as t,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>[...e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])]),_:1}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>[...e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])]),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>[...e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])]),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>[...e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])]),_:1},8,["model-value"])])}const x=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{x as default}; +import{V as l}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as a,k as m,e as f,m as r,q as t,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>[...e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])]),_:1}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>[...e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])]),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>[...e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])]),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>[...e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])]),_:1},8,["model-value"])])}const x=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{x as default}; diff --git a/web/settings/assets/vehicle-wE-5x93X.js b/web/settings/assets/vehicle-lU7Zuadi.js similarity index 93% rename from web/settings/assets/vehicle-wE-5x93X.js rename to web/settings/assets/vehicle-lU7Zuadi.js index aa16739759..3ca6f7ef8b 100644 --- a/web/settings/assets/vehicle-wE-5x93X.js +++ b/web/settings/assets/vehicle-lU7Zuadi.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfiguration-TZSwJptx.js";import{_ as a,l as s,k as d,e as p,m as i,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>[...e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const A=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{A as default}; +import{V as u}from"./VehicleConfiguration-B3d9qly5.js";import{_ as a,l as s,k as d,e as p,m as i,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>[...e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const A=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{A as default}; diff --git a/web/settings/assets/vehicle-CYTzHFS6.js b/web/settings/assets/vehicle-uRvyo-2W.js similarity index 94% rename from web/settings/assets/vehicle-CYTzHFS6.js rename to web/settings/assets/vehicle-uRvyo-2W.js index 0fa08fcc3a..cb95d9a277 100644 --- a/web/settings/assets/vehicle-CYTzHFS6.js +++ b/web/settings/assets/vehicle-uRvyo-2W.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfiguration-TZSwJptx.js";import{_ as d,l,k as s,e as p,m as n,q as m,A as a,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>[...e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])]),_:1}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const B=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{B as default}; +import{V as u}from"./VehicleConfiguration-B3d9qly5.js";import{_ as d,l,k as s,e as p,m as n,q as m,A as a,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>[...e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])]),_:1}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const B=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-BgWejNBx.js b/web/settings/assets/vehicle-uZMeCx8f.js similarity index 94% rename from web/settings/assets/vehicle-BgWejNBx.js rename to web/settings/assets/vehicle-uZMeCx8f.js index 5d2ce5bde7..0223b5f611 100644 --- a/web/settings/assets/vehicle-BgWejNBx.js +++ b/web/settings/assets/vehicle-uZMeCx8f.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfiguration-TZSwJptx.js";import{_ as d,l as u,k as p,e as g,m as o,q as l,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>[...e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>[...e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>[...e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])]),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>[...e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const k=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{k as default}; +import{V as a}from"./VehicleConfiguration-B3d9qly5.js";import{_ as d,l as u,k as p,e as g,m as o,q as l,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>[...e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>[...e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>[...e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])]),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>[...e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const k=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{k as default}; diff --git a/web/settings/assets/webTheme-DQBJkymH.js b/web/settings/assets/webTheme-BZXitWVh.js similarity index 98% rename from web/settings/assets/webTheme-DQBJkymH.js rename to web/settings/assets/webTheme-BZXitWVh.js index d590e033b2..a5d19f0fe3 100644 --- a/web/settings/assets/webTheme-DQBJkymH.js +++ b/web/settings/assets/webTheme-BZXitWVh.js @@ -1 +1 @@ -import{W as s}from"./GeneralConfiguration-CMMYSFfh.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"WebThemeColors",components:{},mixins:[s],data(){return{slideLabels:{daily_totals:"Tageswerte",history_chart:"Verlaufsdiagramm",flow_diagram:"Energiefluss"}}}},p={class:"web-theme-colors"};function f(t,e,V,w,v,h){const a=r("openwb-base-button-group-input"),i=r("openwb-base-range-input");return m(),g("div",p,[o(a,{title:"Farbschema",buttons:[{buttonValue:"dark",text:"Dunkel"},{buttonValue:"light",text:"Hell"},{buttonValue:"blue",text:"Blau"}],"model-value":t.webTheme.configuration.displayMode,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.displayMode"))},{help:l(()=>[...e[14]||(e[14]=[u(" Hintergrundfarbe ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Farbschema Smarthome-Geräte",buttons:[{buttonValue:"normal",text:"Orange"},{buttonValue:"standard",text:"Grün/Violett"},{buttonValue:"advanced",text:"Bunt"}],"model-value":t.webTheme.configuration.smartHomeColors,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.smartHomeColors"))},{help:l(()=>[...e[15]||(e[15]=[u(" Für die Smart-Home-Geräte stehen mehrere Schemata zur Verfügung. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Zeitfenster Live-Graph",min:15,max:120,step:15,unit:"Min.","model-value":t.webTheme.configuration.liveGraphDuration/60,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n*60,"configuration.liveGraphDuration"))},{help:l(()=>[...e[16]||(e[16]=[u(" Das Zeitfenster für den Live-Graphen wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Grafik: Raster",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showGrid,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.showGrid"))},{help:l(()=>[...e[17]||(e[17]=[u(" Verwende ein Hintergrundraster in den Grafiken ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Anzahl Dezimalstellen",buttons:[{buttonValue:0,text:"3 kW"},{buttonValue:1,text:"3.1 kW"},{buttonValue:2,text:"3.14 kW"},{buttonValue:3,text:"3.141 kW"},{buttonValue:4,text:"3141 W"}],"model-value":t.webTheme.configuration.decimalPlaces,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.decimalPlaces"))},{help:l(()=>[...e[18]||(e[18]=[u(" Alle kW- und kWh-Werte werden mit der gewählten Anzahl an Stellen angezeigt. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Variable Bogenlänge",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showRelativeArcs,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.showRelativeArcs"))},{help:l(()=>[...e[19]||(e[19]=[u(" Im Graph 'Aktuelle Leistung' können die Bögen immer die volle Länge haben, oder entsprechend des aktuellen Gesamtleistung verkürzt dargestellt werden. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Wechselrichter anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showInverters,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.showInverters"))},{help:l(()=>[...e[20]||(e[20]=[u(" Zeige Details zu den einzelnen Wechselrichtern ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Fahrzeugliste anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showVehicles,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.showVehicles"))},{help:l(()=>[...e[21]||(e[21]=[u(" Zeige alle Fahrzeuge mit Ladestand und Reichweite. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Zähler anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showCounters,"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.showCounters"))},{help:l(()=>[...e[22]||(e[22]=[u(" Zeige die Werte zusätzlich angelegter Zähler. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Preistabelle anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showPrices,"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.showPrices"))},{help:l(()=>[...e[23]||(e[23]=[u(" Zeige den Verlauf des dynamischen Strompreises auf der Hauptseite. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Untere Markierung in der Preistabelle",min:-25,max:95,step:.1,unit:"ct","model-value":t.webTheme.configuration.lowerPriceBound,"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.lowerPriceBound"))},{help:l(()=>[...e[24]||(e[24]=[u(" Position der unteren Markierung festlegen. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Obere Markierung in der Preistabelle",min:-25,max:95,step:.1,unit:"ct","model-value":t.webTheme.configuration.upperPriceBound,"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.upperPriceBound"))},{help:l(()=>[...e[25]||(e[25]=[u(" Position der oberen Markierung festlegen. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Alternatives Energie-Widget",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.alternativeEnergy,"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.alternativeEnergy"))},{help:l(()=>[...e[26]||(e[26]=[u(" Horizontale Darstellung der Energie-Werte. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Standard-Fahrzeug anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showStandardVehicle,"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.showStandardVehicle"))},{help:l(()=>[...e[27]||(e[27]=[u(" Legt fest, ob das Standardfahrzeug in Listen und Auswahlmenus angezeigt wird.",-1)])]),_:1},8,["model-value"])])}const A=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/colors/webTheme.vue"]]);export{A as default}; +import{W as s}from"./GeneralConfiguration-b09cPY_w.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"WebThemeColors",components:{},mixins:[s],data(){return{slideLabels:{daily_totals:"Tageswerte",history_chart:"Verlaufsdiagramm",flow_diagram:"Energiefluss"}}}},p={class:"web-theme-colors"};function f(t,e,V,w,v,h){const a=r("openwb-base-button-group-input"),i=r("openwb-base-range-input");return m(),g("div",p,[o(a,{title:"Farbschema",buttons:[{buttonValue:"dark",text:"Dunkel"},{buttonValue:"light",text:"Hell"},{buttonValue:"blue",text:"Blau"}],"model-value":t.webTheme.configuration.displayMode,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.displayMode"))},{help:l(()=>[...e[14]||(e[14]=[u(" Hintergrundfarbe ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Farbschema Smarthome-Geräte",buttons:[{buttonValue:"normal",text:"Orange"},{buttonValue:"standard",text:"Grün/Violett"},{buttonValue:"advanced",text:"Bunt"}],"model-value":t.webTheme.configuration.smartHomeColors,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.smartHomeColors"))},{help:l(()=>[...e[15]||(e[15]=[u(" Für die Smart-Home-Geräte stehen mehrere Schemata zur Verfügung. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Zeitfenster Live-Graph",min:15,max:120,step:15,unit:"Min.","model-value":t.webTheme.configuration.liveGraphDuration/60,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n*60,"configuration.liveGraphDuration"))},{help:l(()=>[...e[16]||(e[16]=[u(" Das Zeitfenster für den Live-Graphen wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Grafik: Raster",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showGrid,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.showGrid"))},{help:l(()=>[...e[17]||(e[17]=[u(" Verwende ein Hintergrundraster in den Grafiken ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Anzahl Dezimalstellen",buttons:[{buttonValue:0,text:"3 kW"},{buttonValue:1,text:"3.1 kW"},{buttonValue:2,text:"3.14 kW"},{buttonValue:3,text:"3.141 kW"},{buttonValue:4,text:"3141 W"}],"model-value":t.webTheme.configuration.decimalPlaces,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.decimalPlaces"))},{help:l(()=>[...e[18]||(e[18]=[u(" Alle kW- und kWh-Werte werden mit der gewählten Anzahl an Stellen angezeigt. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Variable Bogenlänge",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showRelativeArcs,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.showRelativeArcs"))},{help:l(()=>[...e[19]||(e[19]=[u(" Im Graph 'Aktuelle Leistung' können die Bögen immer die volle Länge haben, oder entsprechend des aktuellen Gesamtleistung verkürzt dargestellt werden. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Wechselrichter anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showInverters,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.showInverters"))},{help:l(()=>[...e[20]||(e[20]=[u(" Zeige Details zu den einzelnen Wechselrichtern ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Fahrzeugliste anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showVehicles,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.showVehicles"))},{help:l(()=>[...e[21]||(e[21]=[u(" Zeige alle Fahrzeuge mit Ladestand und Reichweite. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Zähler anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showCounters,"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.showCounters"))},{help:l(()=>[...e[22]||(e[22]=[u(" Zeige die Werte zusätzlich angelegter Zähler. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Preistabelle anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showPrices,"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.showPrices"))},{help:l(()=>[...e[23]||(e[23]=[u(" Zeige den Verlauf des dynamischen Strompreises auf der Hauptseite. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Untere Markierung in der Preistabelle",min:-25,max:95,step:.1,unit:"ct","model-value":t.webTheme.configuration.lowerPriceBound,"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.lowerPriceBound"))},{help:l(()=>[...e[24]||(e[24]=[u(" Position der unteren Markierung festlegen. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Obere Markierung in der Preistabelle",min:-25,max:95,step:.1,unit:"ct","model-value":t.webTheme.configuration.upperPriceBound,"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.upperPriceBound"))},{help:l(()=>[...e[25]||(e[25]=[u(" Position der oberen Markierung festlegen. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Alternatives Energie-Widget",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.alternativeEnergy,"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.alternativeEnergy"))},{help:l(()=>[...e[26]||(e[26]=[u(" Horizontale Darstellung der Energie-Werte. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Standard-Fahrzeug anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showStandardVehicle,"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.showStandardVehicle"))},{help:l(()=>[...e[27]||(e[27]=[u(" Legt fest, ob das Standardfahrzeug in Listen und Auswahlmenus angezeigt wird.",-1)])]),_:1},8,["model-value"])])}const A=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/colors/webTheme.vue"]]);export{A as default}; diff --git a/web/settings/assets/webTheme-CUZsmlbL.js b/web/settings/assets/webTheme-CHG5h5Rr.js similarity index 94% rename from web/settings/assets/webTheme-CUZsmlbL.js rename to web/settings/assets/webTheme-CHG5h5Rr.js index 2a0bcf7856..8c2ca90a4f 100644 --- a/web/settings/assets/webTheme-CUZsmlbL.js +++ b/web/settings/assets/webTheme-CHG5h5Rr.js @@ -1 +1 @@ -import{W as g}from"./GeneralConfiguration-CMMYSFfh.js";import{S as f}from"./OpenwbSortableList-BORHS8nd.js";import{_ as h,l as o,k as w,e as _,m as i,q as a,A as r,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"WebThemeKoala",components:{SortableList:f},mixins:[g],data(){return{slideLabels:{daily_totals:"Tageswerte",history_chart:"Verlaufsdiagramm",flow_diagram:"Energiefluss"}}},computed:{slideOrderList:{get(){return(this.webTheme.configuration.top_carousel_slide_order||["flow_diagram","history_chart","daily_totals"]).map(e=>({id:e}))},set(t){const e=t.map(l=>l.id);this.updateConfiguration(e,"configuration.top_carousel_slide_order")}},numberedSlideLabels(){return this.slideOrderList.reduce((t,e,l)=>(t[e.id]=`${l+1}. ${this.slideLabels[e.id]||e.id}`,t),{})}}},c={class:"web-theme-koala"};function V(t,e,l,z,L,u){const d=o("openwb-base-button-group-input"),b=o("openwb-base-range-input"),p=o("sortable-list"),m=o("openwb-base-number-input");return w(),_("div",c,[i(d,{title:"Standard-Fahrzeug ausblenden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.hide_standard_vehicle,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.hide_standard_vehicle"))},{help:a(()=>[...e[7]||(e[7]=[r(" Legt fest, ob das Standardfahrzeug im Fahrzeugkarten- bzw. Ladepunkt-Fahrzeugauswahlmenü ausgeblendet wird. ",-1)])]),_:1},8,["model-value"]),e[14]||(e[14]=s("hr",null,null,-1)),i(b,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":t.webTheme.configuration.history_chart_range/60,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n*60,"configuration.history_chart_range"))},{help:a(()=>[...e[8]||(e[8]=[r(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"]),e[15]||(e[15]=s("hr",null,null,-1)),i(p,{modelValue:u.slideOrderList,"onUpdate:modelValue":e[2]||(e[2]=n=>u.slideOrderList=n),title:"Oberer Infobereich",labels:u.numberedSlideLabels,nesting:!1},{help:a(()=>[...e[9]||(e[9]=[r(" Anordnung/Reihenfolge des oberen Informationsbereiches. ",-1)])]),_:1},8,["modelValue","labels"]),e[16]||(e[16]=s("hr",null,null,-1)),i(m,{title:"Ladepunkt Kartenansicht Grenzwert",min:0,step:1,"model-value":t.webTheme.configuration.chargePoint_card_view_breakpoint,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.chargePoint_card_view_breakpoint"))},{help:a(()=>[...e[10]||(e[10]=[r(" Legt fest, bis zu wie vielen Ladepunkten die Kartenansicht verwendet wird. Bei mehr Ladepunkten wird automatisch zur Tabellenansicht gewechselt. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"Suchfeld in Ladepunkt Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.chargePoint_table_search_input_field,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.chargePoint_table_search_input_field"))},{help:a(()=>[...e[11]||(e[11]=[r(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Ladepunkt“ und „Fahrzeug“ durchsucht werden. ",-1)])]),_:1},8,["model-value"]),e[17]||(e[17]=s("hr",null,null,-1)),i(m,{title:"Fahrzeug Kartenansicht Grenzwert",min:0,step:1,"model-value":t.webTheme.configuration.vehicle_card_view_breakpoint,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.vehicle_card_view_breakpoint"))},{help:a(()=>[...e[12]||(e[12]=[r(" Legt fest, bis zu wie vielen Fahrzeugen die Kartenansicht verwendet wird. Bei mehr Fahrzeugen wird automatisch zur Tabellenansicht gewechselt. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"Suchfeld in Fahrzeug Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.vehicle_table_search_input_field,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.vehicle_table_search_input_field"))},{help:a(()=>[...e[13]||(e[13]=[r(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Fahrzeug“, „Hersteller“ und „Modell“ durchsucht werden. ",-1)])]),_:1},8,["model-value"])])}const N=h(v,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/koala/webTheme.vue"]]);export{N as default}; +import{W as g}from"./GeneralConfiguration-b09cPY_w.js";import{S as f}from"./OpenwbSortableList-CSUuyi79.js";import{_ as h,l as o,k as w,e as _,m as i,q as a,A as r,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"WebThemeKoala",components:{SortableList:f},mixins:[g],data(){return{slideLabels:{daily_totals:"Tageswerte",history_chart:"Verlaufsdiagramm",flow_diagram:"Energiefluss"}}},computed:{slideOrderList:{get(){return(this.webTheme.configuration.top_carousel_slide_order||["flow_diagram","history_chart","daily_totals"]).map(e=>({id:e}))},set(t){const e=t.map(l=>l.id);this.updateConfiguration(e,"configuration.top_carousel_slide_order")}},numberedSlideLabels(){return this.slideOrderList.reduce((t,e,l)=>(t[e.id]=`${l+1}. ${this.slideLabels[e.id]||e.id}`,t),{})}}},c={class:"web-theme-koala"};function V(t,e,l,z,L,u){const d=o("openwb-base-button-group-input"),b=o("openwb-base-range-input"),p=o("sortable-list"),m=o("openwb-base-number-input");return w(),_("div",c,[i(d,{title:"Standard-Fahrzeug ausblenden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.hide_standard_vehicle,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.hide_standard_vehicle"))},{help:a(()=>[...e[7]||(e[7]=[r(" Legt fest, ob das Standardfahrzeug im Fahrzeugkarten- bzw. Ladepunkt-Fahrzeugauswahlmenü ausgeblendet wird. ",-1)])]),_:1},8,["model-value"]),e[14]||(e[14]=s("hr",null,null,-1)),i(b,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":t.webTheme.configuration.history_chart_range/60,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n*60,"configuration.history_chart_range"))},{help:a(()=>[...e[8]||(e[8]=[r(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"]),e[15]||(e[15]=s("hr",null,null,-1)),i(p,{modelValue:u.slideOrderList,"onUpdate:modelValue":e[2]||(e[2]=n=>u.slideOrderList=n),title:"Oberer Infobereich",labels:u.numberedSlideLabels,nesting:!1},{help:a(()=>[...e[9]||(e[9]=[r(" Anordnung/Reihenfolge des oberen Informationsbereiches. ",-1)])]),_:1},8,["modelValue","labels"]),e[16]||(e[16]=s("hr",null,null,-1)),i(m,{title:"Ladepunkt Kartenansicht Grenzwert",min:0,step:1,"model-value":t.webTheme.configuration.chargePoint_card_view_breakpoint,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.chargePoint_card_view_breakpoint"))},{help:a(()=>[...e[10]||(e[10]=[r(" Legt fest, bis zu wie vielen Ladepunkten die Kartenansicht verwendet wird. Bei mehr Ladepunkten wird automatisch zur Tabellenansicht gewechselt. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"Suchfeld in Ladepunkt Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.chargePoint_table_search_input_field,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.chargePoint_table_search_input_field"))},{help:a(()=>[...e[11]||(e[11]=[r(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Ladepunkt“ und „Fahrzeug“ durchsucht werden. ",-1)])]),_:1},8,["model-value"]),e[17]||(e[17]=s("hr",null,null,-1)),i(m,{title:"Fahrzeug Kartenansicht Grenzwert",min:0,step:1,"model-value":t.webTheme.configuration.vehicle_card_view_breakpoint,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.vehicle_card_view_breakpoint"))},{help:a(()=>[...e[12]||(e[12]=[r(" Legt fest, bis zu wie vielen Fahrzeugen die Kartenansicht verwendet wird. Bei mehr Fahrzeugen wird automatisch zur Tabellenansicht gewechselt. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"Suchfeld in Fahrzeug Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.vehicle_table_search_input_field,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.vehicle_table_search_input_field"))},{help:a(()=>[...e[13]||(e[13]=[r(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Fahrzeug“, „Hersteller“ und „Modell“ durchsucht werden. ",-1)])]),_:1},8,["model-value"])])}const N=h(v,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/koala/webTheme.vue"]]);export{N as default}; diff --git a/web/settings/assets/webTheme-D6gb9Bne.js b/web/settings/assets/webTheme-CY7Mp7o_.js similarity index 88% rename from web/settings/assets/webTheme-D6gb9Bne.js rename to web/settings/assets/webTheme-CY7Mp7o_.js index 824d138a90..8266e45bbe 100644 --- a/web/settings/assets/webTheme-D6gb9Bne.js +++ b/web/settings/assets/webTheme-CY7Mp7o_.js @@ -1 +1 @@ -import{W as a}from"./GeneralConfiguration-CMMYSFfh.js";import{_ as r,l as i,k as s,e as m,m as p,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-CyH1Au4V.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"WebThemeKoala",mixins:[a]},_={class:"web-theme-standard-legacy"};function f(t,e,c,h,g,b){const n=i("openwb-base-range-input");return s(),m("div",_,[p(n,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":Math.round(t.webTheme.configuration.history_chart_range/(60*1e3)),"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o*60*1e3,"configuration.history_chart_range"))},{help:d(()=>[...e[1]||(e[1]=[l(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"])])}const W=r(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/standard_legacy/webTheme.vue"]]);export{W as default}; +import{W as a}from"./GeneralConfiguration-b09cPY_w.js";import{_ as r,l as i,k as s,e as m,m as p,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"WebThemeKoala",mixins:[a]},_={class:"web-theme-standard-legacy"};function f(t,e,c,h,g,b){const n=i("openwb-base-range-input");return s(),m("div",_,[p(n,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":Math.round(t.webTheme.configuration.history_chart_range/(60*1e3)),"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o*60*1e3,"configuration.history_chart_range"))},{help:d(()=>[...e[1]||(e[1]=[l(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"])])}const W=r(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/standard_legacy/webTheme.vue"]]);export{W as default}; diff --git a/web/settings/index.html b/web/settings/index.html index 268054fd57..23a81628bb 100644 --- a/web/settings/index.html +++ b/web/settings/index.html @@ -7,7 +7,7 @@ openWB - + From a321c4932ff9d82c3ce012c17adde7044a202dae Mon Sep 17 00:00:00 2001 From: Xoffroad <65235705+Xoffroad@users.noreply.github.com> Date: Wed, 22 Apr 2026 08:50:38 +0200 Subject: [PATCH 5/9] Qcells active battery control - some fixes (#3314) * adding active battery control for qcells and new field for overload security * remove field for max_power and use max_charge_power and max_discharge_power instead * fix: stabilize QCells active battery control in mode 1 Reworked QCells battery control to a stable Mode 1 workflow aligned with the validated HA behavior. The target calculation was corrected to avoid unintended forced charging, import limiting was applied consistently for net import control, and the full Mode 1 control payload is now written each cycle with dynamic timing based on the configured openWB control interval. --- packages/modules/devices/qcells/qcells/bat.py | 33 ++++++++++++++++--- 1 file changed, 29 insertions(+), 4 deletions(-) diff --git a/packages/modules/devices/qcells/qcells/bat.py b/packages/modules/devices/qcells/qcells/bat.py index 0db941fd47..13b1cbb9f7 100644 --- a/packages/modules/devices/qcells/qcells/bat.py +++ b/packages/modules/devices/qcells/qcells/bat.py @@ -21,7 +21,11 @@ REMOTE_CONTROL_MODE_REG = 0x7C # U16: 0=Disabled, 1=Enabled Power Control REMOTE_CONTROL_SET_TYPE_REG = 0x7D # U16: 1=Set REMOTE_CONTROL_ACTIVE_POWER_REG = 0x7E # S32: Active Power Sollwert in Watt +REMOTE_CONTROL_REACTIVE_POWER_REG = 0x80 # S32: Reactive Power Sollwert (0) REMOTE_CONTROL_DURATION_REG = 0x82 # U16: Dauer in Sekunden +REMOTE_CONTROL_TARGET_SOC_REG = 0x83 # U16: Target SoC (Dummy 0) +REMOTE_CONTROL_TARGET_ENERGY_REG = 0x84 # U32: Target Energy (Dummy 0) +REMOTE_CONTROL_TARGET_POWER_REG = 0x86 # S32: Target Charge/Discharge Power (Dummy 0) REMOTE_CONTROL_TIMEOUT_REG = 0x88 # U16: Timeout in Sekunden MODE_1_DISABLED = 0 @@ -97,7 +101,8 @@ def _get_active_power_target(self, power_limit: int) -> int: cp_power = int(data.data.cp_all_data.data.get.power) house_load = max(0, home_consumption + cp_power) pv_generation = max(0, int(data.data.pv_all_data.data.get.power * -1)) - ap_target = power_limit + house_load - pv_generation + # Mode 1 / Enabled Battery Control: house_load wird inverter-intern bereits berücksichtigt. + ap_target = power_limit - pv_generation try: evu_counter = data.data.counter_all_data.get_evu_counter() @@ -105,19 +110,27 @@ def _get_active_power_target(self, power_limit: int) -> int: except Exception: import_limit = 0 - if import_limit > 0: - ap_target = min(ap_target, import_limit) + import_bound = None + if import_limit > 0 and ap_target > 0: + import_bound = import_limit - house_load + ap_target = min(ap_target, import_bound) log.debug(( f"QCells Mode1 target: power_limit={power_limit}W, home_consumption={home_consumption}W, " f"cp_power={cp_power}W, house_load={house_load}W, " - f"pv_generation={pv_generation}W, import_limit={import_limit}W -> ap_target={ap_target}W" + f"pv_generation={pv_generation}W, import_limit={import_limit}W, " + f"import_bound={import_bound}W -> ap_target={ap_target}W" )) return int(ap_target) def _write_mode1(self, ap_target: int, unit: int) -> None: """Schreibt die Mode 1 Remote Control Register (0x7C-0x88).""" duration, timeout = self._get_mode1_timing() + log.debug(( + f"QCells Mode1 write: mode={MODE_1_ENABLED_POWER_CONTROL}, set_type={SET_TYPE_SET}, " + f"active_power={ap_target}W, reactive_power=0var, duration={duration}s, " + f"target_soc=0, target_energy=0Wh, target_power=0W, timeout={timeout}s" + )) with self.client: self.client.write_register( REMOTE_CONTROL_MODE_REG, MODE_1_ENABLED_POWER_CONTROL, @@ -128,9 +141,21 @@ def _write_mode1(self, ap_target: int, unit: int) -> None: self.client.write_register( REMOTE_CONTROL_ACTIVE_POWER_REG, ap_target, data_type=ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) + self.client.write_register( + REMOTE_CONTROL_REACTIVE_POWER_REG, 0, + data_type=ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) self.client.write_register( REMOTE_CONTROL_DURATION_REG, duration, data_type=ModbusDataType.UINT_16, unit=unit) + self.client.write_register( + REMOTE_CONTROL_TARGET_SOC_REG, 0, + data_type=ModbusDataType.UINT_16, unit=unit) + self.client.write_register( + REMOTE_CONTROL_TARGET_ENERGY_REG, 0, + data_type=ModbusDataType.UINT_32, wordorder=Endian.Little, unit=unit) + self.client.write_register( + REMOTE_CONTROL_TARGET_POWER_REG, 0, + data_type=ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) self.client.write_register( REMOTE_CONTROL_TIMEOUT_REG, timeout, data_type=ModbusDataType.UINT_16, unit=unit) From 0115fd7ddbbeab8a30a869193d8467f251301bec Mon Sep 17 00:00:00 2001 From: Xoffroad <65235705+Xoffroad@users.noreply.github.com> Date: Thu, 23 Apr 2026 15:23:34 +0200 Subject: [PATCH 6/9] fix: align QCells Mode 1 battery control with openWB semantics and timing (#3318) * adding active battery control for qcells and new field for overload security * remove field for max_power and use max_charge_power and max_discharge_power instead * fix: align QCells Mode 1 battery control with openWB semantics and timing --- packages/modules/devices/qcells/qcells/bat.py | 38 +++--- .../modules/devices/qcells/qcells/bat_test.py | 109 ++++++++++++++++++ 2 files changed, 131 insertions(+), 16 deletions(-) create mode 100644 packages/modules/devices/qcells/qcells/bat_test.py diff --git a/packages/modules/devices/qcells/qcells/bat.py b/packages/modules/devices/qcells/qcells/bat.py index 13b1cbb9f7..d40dcb69a9 100644 --- a/packages/modules/devices/qcells/qcells/bat.py +++ b/packages/modules/devices/qcells/qcells/bat.py @@ -26,13 +26,14 @@ REMOTE_CONTROL_TARGET_SOC_REG = 0x83 # U16: Target SoC (Dummy 0) REMOTE_CONTROL_TARGET_ENERGY_REG = 0x84 # U32: Target Energy (Dummy 0) REMOTE_CONTROL_TARGET_POWER_REG = 0x86 # S32: Target Charge/Discharge Power (Dummy 0) -REMOTE_CONTROL_TIMEOUT_REG = 0x88 # U16: Timeout in Sekunden +REMOTE_CONTROL_TIMEOUT_REG = 0x88 # U16: Timeout in Sekunden (0 = deaktiviert) MODE_1_DISABLED = 0 MODE_1_ENABLED_POWER_CONTROL = 1 SET_TYPE_SET = 1 MIN_REMOTE_CONTROL_DURATION = 20 -MIN_REMOTE_CONTROL_TIMEOUT = 60 +DURATION_SAFETY_BUFFER = 10 +MODE_1_TIMEOUT_DISABLED = 0 class KwargsDict(TypedDict): @@ -101,35 +102,42 @@ def _get_active_power_target(self, power_limit: int) -> int: cp_power = int(data.data.cp_all_data.data.get.power) house_load = max(0, home_consumption + cp_power) pv_generation = max(0, int(data.data.pv_all_data.data.get.power * -1)) - # Mode 1 / Enabled Battery Control: house_load wird inverter-intern bereits berücksichtigt. - ap_target = power_limit - pv_generation + bat_power = int(data.data.bat_all_data.data.get.power) + ap_target_raw = power_limit try: evu_counter = data.data.counter_all_data.get_evu_counter() + evu_power = int(evu_counter.data.get.power) import_limit = int(evu_counter.data.config.max_total_power) except Exception: + evu_power = 0 import_limit = 0 import_bound = None - if import_limit > 0 and ap_target > 0: - import_bound = import_limit - house_load - ap_target = min(ap_target, import_bound) + if power_limit == 0: + ap_target = 0 + elif power_limit > 0 and import_limit > 0: + import_bound = max(0, import_limit - house_load) + ap_target = min(ap_target_raw, import_bound) + else: + ap_target = ap_target_raw log.debug(( - f"QCells Mode1 target: power_limit={power_limit}W, home_consumption={home_consumption}W, " + f"QCells Mode1 target: power_limit={power_limit}W, bat_power={bat_power}W, evu_power={evu_power}W, " + f"home_consumption={home_consumption}W, " f"cp_power={cp_power}W, house_load={house_load}W, " f"pv_generation={pv_generation}W, import_limit={import_limit}W, " - f"import_bound={import_bound}W -> ap_target={ap_target}W" + f"import_bound={import_bound}W, ap_target_raw={ap_target_raw}W -> ap_target={ap_target}W" )) return int(ap_target) def _write_mode1(self, ap_target: int, unit: int) -> None: """Schreibt die Mode 1 Remote Control Register (0x7C-0x88).""" - duration, timeout = self._get_mode1_timing() + duration = self._get_mode1_duration() log.debug(( f"QCells Mode1 write: mode={MODE_1_ENABLED_POWER_CONTROL}, set_type={SET_TYPE_SET}, " f"active_power={ap_target}W, reactive_power=0var, duration={duration}s, " - f"target_soc=0, target_energy=0Wh, target_power=0W, timeout={timeout}s" + f"target_soc=0, target_energy=0Wh, target_power=0W, timeout={MODE_1_TIMEOUT_DISABLED}s" )) with self.client: self.client.write_register( @@ -157,18 +165,16 @@ def _write_mode1(self, ap_target: int, unit: int) -> None: REMOTE_CONTROL_TARGET_POWER_REG, 0, data_type=ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) self.client.write_register( - REMOTE_CONTROL_TIMEOUT_REG, timeout, + REMOTE_CONTROL_TIMEOUT_REG, MODE_1_TIMEOUT_DISABLED, data_type=ModbusDataType.UINT_16, unit=unit) - def _get_mode1_timing(self) -> tuple[int, int]: + def _get_mode1_duration(self) -> int: try: control_interval = int(data.data.general_data.data.control_interval) except Exception: control_interval = 10 - duration = max(MIN_REMOTE_CONTROL_DURATION, control_interval * 2) - timeout = max(MIN_REMOTE_CONTROL_TIMEOUT, control_interval * 3) - return duration, timeout + return max(MIN_REMOTE_CONTROL_DURATION, control_interval + DURATION_SAFETY_BUFFER) def power_limit_controllable(self) -> bool: return True diff --git a/packages/modules/devices/qcells/qcells/bat_test.py b/packages/modules/devices/qcells/qcells/bat_test.py new file mode 100644 index 0000000000..b1016810b1 --- /dev/null +++ b/packages/modules/devices/qcells/qcells/bat_test.py @@ -0,0 +1,109 @@ +from types import SimpleNamespace + +from modules.devices.qcells.qcells import bat +from modules.devices.qcells.qcells.config import QCellsBatSetup + + +def _fake_data( + home_consumption: int, + cp_power: int, + pv_power: int, + bat_power: int, + evu_power: int, + import_limit: int, +) -> SimpleNamespace: + evu_counter = SimpleNamespace( + data=SimpleNamespace( + get=SimpleNamespace(power=evu_power), + config=SimpleNamespace(max_total_power=import_limit), + ) + ) + return SimpleNamespace( + counter_all_data=SimpleNamespace( + data=SimpleNamespace(set=SimpleNamespace(home_consumption=home_consumption)), + get_evu_counter=lambda: evu_counter, + ), + cp_all_data=SimpleNamespace(data=SimpleNamespace(get=SimpleNamespace(power=cp_power))), + pv_all_data=SimpleNamespace(data=SimpleNamespace(get=SimpleNamespace(power=pv_power))), + bat_all_data=SimpleNamespace(data=SimpleNamespace(get=SimpleNamespace(power=bat_power))), + ) + + +def _create_qcells_bat() -> bat.QCellsBat: + return bat.QCellsBat(QCellsBatSetup(), modbus_id=1, client=SimpleNamespace()) + + +def test_get_active_power_target_stop_is_zero(monkeypatch) -> None: + qcells_bat = _create_qcells_bat() + monkeypatch.setattr( + bat.data, + "data", + _fake_data( + home_consumption=450, + cp_power=5500, + pv_power=-5600, + bat_power=-200, + evu_power=100, + import_limit=24000, + ), + raising=False, + ) + + assert qcells_bat._get_active_power_target(0) == 0 + + +def test_get_active_power_target_discharge_keeps_limit(monkeypatch) -> None: + qcells_bat = _create_qcells_bat() + monkeypatch.setattr( + bat.data, + "data", + _fake_data( + home_consumption=500, + cp_power=4800, + pv_power=-5200, + bat_power=-900, + evu_power=-300, + import_limit=24000, + ), + raising=False, + ) + + assert qcells_bat._get_active_power_target(-700) == -700 + + +def test_get_active_power_target_charge_clamped_by_import_limit(monkeypatch) -> None: + qcells_bat = _create_qcells_bat() + monkeypatch.setattr( + bat.data, + "data", + _fake_data( + home_consumption=600, + cp_power=5400, + pv_power=-4000, + bat_power=300, + evu_power=1800, + import_limit=6200, + ), + raising=False, + ) + + assert qcells_bat._get_active_power_target(1200) == 200 + + +def test_get_active_power_target_charge_clamped_to_zero_without_headroom(monkeypatch) -> None: + qcells_bat = _create_qcells_bat() + monkeypatch.setattr( + bat.data, + "data", + _fake_data( + home_consumption=800, + cp_power=5200, + pv_power=-4500, + bat_power=100, + evu_power=5800, + import_limit=5000, + ), + raising=False, + ) + + assert qcells_bat._get_active_power_target(1000) == 0 From 14592442efb8313ffae5c7308fd42c370cb75f71 Mon Sep 17 00:00:00 2001 From: Xoffroad <65235705+Xoffroad@users.noreply.github.com> Date: Fri, 24 Apr 2026 10:01:21 +0200 Subject: [PATCH 7/9] fix: switch QCells remote control to Enabled Battery Control (mode 12) (#3320) * adding active battery control for qcells and new field for overload security * remove field for max_power and use max_charge_power and max_discharge_power instead * fix: switch QCells remote control to Enabled Battery Control (mode 12) * fix: switch QCells battery control to SolaX mode 4 push-power with atomic Modbus block writes --- packages/modules/conftest.py | 1 + packages/modules/devices/qcells/qcells/bat.py | 202 +++++++----------- .../modules/devices/qcells/qcells/bat_test.py | 100 +-------- 3 files changed, 88 insertions(+), 215 deletions(-) diff --git a/packages/modules/conftest.py b/packages/modules/conftest.py index 9733696c81..481004bc61 100644 --- a/packages/modules/conftest.py +++ b/packages/modules/conftest.py @@ -31,6 +31,7 @@ sys.modules['pymodbus.constants'] = module module = type(sys)('pymodbus.payload') +module.BinaryPayloadBuilder = Mock() module.BinaryPayloadDecoder = Mock() sys.modules['pymodbus.payload'] = module diff --git a/packages/modules/devices/qcells/qcells/bat.py b/packages/modules/devices/qcells/qcells/bat.py index d40dcb69a9..822f0a24f1 100644 --- a/packages/modules/devices/qcells/qcells/bat.py +++ b/packages/modules/devices/qcells/qcells/bat.py @@ -1,39 +1,38 @@ #!/usr/bin/env python3 import logging -from typing import TypedDict, Any, Optional +from typing import Any, Optional, TypedDict + from pymodbus.constants import Endian +from pymodbus.payload import BinaryPayloadBuilder -from control import data from modules.common.abstract_device import AbstractBat from modules.common.component_state import BatState -from modules.common.component_type import ComponentDescriptor +from modules.common.component_type import ComponentDescriptor, ComponentType from modules.common.fault_state import ComponentInfo, FaultState from modules.common.modbus import ModbusDataType, ModbusTcpClient_ from modules.common.store import get_bat_value_store -from modules.devices.qcells.qcells.config import QCellsBatSetup from modules.common.utils.peak_filter import PeakFilter -from modules.common.component_type import ComponentType +from modules.devices.qcells.qcells.config import QCellsBatSetup log = logging.getLogger(__name__) -# Solax/QCells Mode 1 Remote Control Registers (Holding Registers) -# Speichersteuerung via Active Power Sollwert. -REMOTE_CONTROL_MODE_REG = 0x7C # U16: 0=Disabled, 1=Enabled Power Control -REMOTE_CONTROL_SET_TYPE_REG = 0x7D # U16: 1=Set -REMOTE_CONTROL_ACTIVE_POWER_REG = 0x7E # S32: Active Power Sollwert in Watt -REMOTE_CONTROL_REACTIVE_POWER_REG = 0x80 # S32: Reactive Power Sollwert (0) -REMOTE_CONTROL_DURATION_REG = 0x82 # U16: Dauer in Sekunden -REMOTE_CONTROL_TARGET_SOC_REG = 0x83 # U16: Target SoC (Dummy 0) -REMOTE_CONTROL_TARGET_ENERGY_REG = 0x84 # U32: Target Energy (Dummy 0) -REMOTE_CONTROL_TARGET_POWER_REG = 0x86 # S32: Target Charge/Discharge Power (Dummy 0) -REMOTE_CONTROL_TIMEOUT_REG = 0x88 # U16: Timeout in Sekunden (0 = deaktiviert) - -MODE_1_DISABLED = 0 -MODE_1_ENABLED_POWER_CONTROL = 1 +# Solax/QCells Remote Control Registers (Holding Registers) +REMOTE_CONTROL_MODE_REG = 0x7C +REMOTE_CONTROL_SET_TYPE_REG = 0x7D +REMOTE_CONTROL_ACTIVE_POWER_REG = 0x7E +REMOTE_CONTROL_REACTIVE_POWER_REG = 0x80 +REMOTE_CONTROL_DURATION_REG = 0x82 +REMOTE_CONTROL_TARGET_SOC_REG = 0x83 +REMOTE_CONTROL_TARGET_ENERGY_REG = 0x84 +REMOTE_CONTROL_TARGET_POWER_REG = 0x86 +REMOTE_CONTROL_TIMEOUT_REG = 0x88 +REMOTE_CONTROL_PUSH_POWER_MODE4_REG = 0x89 + +MODE_DISABLED = 0 +MODE_4_PUSH_POWER = 4 SET_TYPE_SET = 1 -MIN_REMOTE_CONTROL_DURATION = 20 -DURATION_SAFETY_BUFFER = 10 -MODE_1_TIMEOUT_DISABLED = 0 +MODE_4_TIMEOUT_DISABLED = 0 +MODE4_BLOCK_REG_COUNT = 15 class KwargsDict(TypedDict): @@ -47,134 +46,91 @@ def __init__(self, component_config: QCellsBatSetup, **kwargs: Any) -> None: self.kwargs: KwargsDict = kwargs def initialize(self) -> None: - self.__modbus_id: int = self.kwargs['modbus_id'] - self.client: ModbusTcpClient_ = self.kwargs['client'] + self.__modbus_id: int = self.kwargs["modbus_id"] + self.client: ModbusTcpClient_ = self.kwargs["client"] self.store = get_bat_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) self.peak_filter = PeakFilter(ComponentType.BAT, self.component_config.id, self.fault_state) - self.last_mode: Optional[str] = 'Undefined' + self.last_mode: Optional[str] = "Undefined" def update(self) -> None: power = self.client.read_input_registers(0x0016, ModbusDataType.INT_16, unit=self.__modbus_id) soc = self.client.read_input_registers(0x001C, ModbusDataType.UINT_16, unit=self.__modbus_id) - imported = self.client.read_input_registers( - 0x0021, ModbusDataType.UINT_16, unit=self.__modbus_id) * 100 - exported = self.client.read_input_registers( - 0x001D, ModbusDataType.UINT_16, unit=self.__modbus_id) * 100 + imported = self.client.read_input_registers(0x0021, ModbusDataType.UINT_16, unit=self.__modbus_id) * 100 + exported = self.client.read_input_registers(0x001D, ModbusDataType.UINT_16, unit=self.__modbus_id) * 100 imported, exported = self.peak_filter.check_values(power, imported, exported) bat_state = BatState( power=power, soc=soc, imported=imported, - exported=exported + exported=exported, ) self.store.set(bat_state) def set_power_limit(self, power_limit: Optional[int]) -> None: unit = self.__modbus_id - log.debug(f"QCells set_power_limit: power_limit={power_limit}, " - f"last_mode={self.last_mode}") + log.debug(f"QCells set_power_limit: power_limit={power_limit}, last_mode={self.last_mode}") if power_limit is None: log.debug("Keine Batteriesteuerung, Selbstregelung durch Wechselrichter") if self.last_mode is not None: with self.client: self.client.write_register( - REMOTE_CONTROL_MODE_REG, MODE_1_DISABLED, - data_type=ModbusDataType.UINT_16, unit=unit) + REMOTE_CONTROL_MODE_REG, + MODE_DISABLED, + data_type=ModbusDataType.UINT_16, + unit=unit, + ) self.last_mode = None + return + + if power_limit < 0: + self.last_mode = "discharge" + elif power_limit > 0: + self.last_mode = "charge" else: - if power_limit < 0: - self.last_mode = 'discharge' - elif power_limit > 0: - self.last_mode = 'charge' - else: - self.last_mode = 'stop' - - ap_target = self._get_active_power_target(int(power_limit)) - self._write_mode1(ap_target, unit=unit) - - def _get_active_power_target(self, power_limit: int) -> int: - # openWB-Werte verwenden (nicht WR-Berechnungen): - # power_limit < 0 = Entladen, 0 = Stop, > 0 = Laden - home_consumption = int(data.data.counter_all_data.data.set.home_consumption) - cp_power = int(data.data.cp_all_data.data.get.power) - house_load = max(0, home_consumption + cp_power) - pv_generation = max(0, int(data.data.pv_all_data.data.get.power * -1)) - bat_power = int(data.data.bat_all_data.data.get.power) - ap_target_raw = power_limit - - try: - evu_counter = data.data.counter_all_data.get_evu_counter() - evu_power = int(evu_counter.data.get.power) - import_limit = int(evu_counter.data.config.max_total_power) - except Exception: - evu_power = 0 - import_limit = 0 - - import_bound = None - if power_limit == 0: - ap_target = 0 - elif power_limit > 0 and import_limit > 0: - import_bound = max(0, import_limit - house_load) - ap_target = min(ap_target_raw, import_bound) - else: - ap_target = ap_target_raw - - log.debug(( - f"QCells Mode1 target: power_limit={power_limit}W, bat_power={bat_power}W, evu_power={evu_power}W, " - f"home_consumption={home_consumption}W, " - f"cp_power={cp_power}W, house_load={house_load}W, " - f"pv_generation={pv_generation}W, import_limit={import_limit}W, " - f"import_bound={import_bound}W, ap_target_raw={ap_target_raw}W -> ap_target={ap_target}W" - )) - return int(ap_target) - - def _write_mode1(self, ap_target: int, unit: int) -> None: - """Schreibt die Mode 1 Remote Control Register (0x7C-0x88).""" - duration = self._get_mode1_duration() - log.debug(( - f"QCells Mode1 write: mode={MODE_1_ENABLED_POWER_CONTROL}, set_type={SET_TYPE_SET}, " - f"active_power={ap_target}W, reactive_power=0var, duration={duration}s, " - f"target_soc=0, target_energy=0Wh, target_power=0W, timeout={MODE_1_TIMEOUT_DISABLED}s" - )) + self.last_mode = "stop" + + push_power = self._get_mode4_push_power(int(power_limit)) + self._write_mode4(push_power, unit) + + def _get_mode4_push_power(self, power_limit: int) -> int: + # openWB power_limit semantics: + # <0 discharge, 0 stop, >0 charge + # Mode 4 push_power semantics: + # >0 discharge, 0 stop, <0 charge + push_power = int(power_limit * -1) + log.debug(f"QCells Mode4 target: power_limit={power_limit}W -> push_power={push_power}W") + return push_power + + def _write_mode4(self, push_power: int, unit: int) -> None: + log.debug( + ( + f"QCells Mode4 write: mode={MODE_4_PUSH_POWER}, set_type={SET_TYPE_SET}, " + f"timeout={MODE_4_TIMEOUT_DISABLED}s, push_power={push_power}W" + ) + ) + builder = BinaryPayloadBuilder(byteorder=Endian.Big, wordorder=Endian.Little) + builder.add_16bit_uint(MODE_4_PUSH_POWER) + builder.add_16bit_uint(SET_TYPE_SET) + builder.add_32bit_int(0) + builder.add_32bit_int(0) + builder.add_16bit_uint(0) + builder.add_16bit_uint(0) + builder.add_32bit_uint(0) + builder.add_32bit_int(0) + builder.add_16bit_uint(MODE_4_TIMEOUT_DISABLED) + builder.add_32bit_int(push_power) + payload = builder.to_registers() + if len(payload) != MODE4_BLOCK_REG_COUNT: + raise RuntimeError( + f"Unexpected mode4 payload size {len(payload)}, expected {MODE4_BLOCK_REG_COUNT}" + ) + with self.client: - self.client.write_register( - REMOTE_CONTROL_MODE_REG, MODE_1_ENABLED_POWER_CONTROL, - data_type=ModbusDataType.UINT_16, unit=unit) - self.client.write_register( - REMOTE_CONTROL_SET_TYPE_REG, SET_TYPE_SET, - data_type=ModbusDataType.UINT_16, unit=unit) - self.client.write_register( - REMOTE_CONTROL_ACTIVE_POWER_REG, ap_target, - data_type=ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) - self.client.write_register( - REMOTE_CONTROL_REACTIVE_POWER_REG, 0, - data_type=ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) - self.client.write_register( - REMOTE_CONTROL_DURATION_REG, duration, - data_type=ModbusDataType.UINT_16, unit=unit) - self.client.write_register( - REMOTE_CONTROL_TARGET_SOC_REG, 0, - data_type=ModbusDataType.UINT_16, unit=unit) - self.client.write_register( - REMOTE_CONTROL_TARGET_ENERGY_REG, 0, - data_type=ModbusDataType.UINT_32, wordorder=Endian.Little, unit=unit) - self.client.write_register( - REMOTE_CONTROL_TARGET_POWER_REG, 0, - data_type=ModbusDataType.INT_32, wordorder=Endian.Little, unit=unit) - self.client.write_register( - REMOTE_CONTROL_TIMEOUT_REG, MODE_1_TIMEOUT_DISABLED, - data_type=ModbusDataType.UINT_16, unit=unit) - - def _get_mode1_duration(self) -> int: - try: - control_interval = int(data.data.general_data.data.control_interval) - except Exception: - control_interval = 10 - - return max(MIN_REMOTE_CONTROL_DURATION, control_interval + DURATION_SAFETY_BUFFER) + # data_type=None with list payload writes a contiguous FC16 block. + self.client.write_register(REMOTE_CONTROL_MODE_REG, payload, unit=unit) def power_limit_controllable(self) -> bool: return True diff --git a/packages/modules/devices/qcells/qcells/bat_test.py b/packages/modules/devices/qcells/qcells/bat_test.py index b1016810b1..8563c4b399 100644 --- a/packages/modules/devices/qcells/qcells/bat_test.py +++ b/packages/modules/devices/qcells/qcells/bat_test.py @@ -4,106 +4,22 @@ from modules.devices.qcells.qcells.config import QCellsBatSetup -def _fake_data( - home_consumption: int, - cp_power: int, - pv_power: int, - bat_power: int, - evu_power: int, - import_limit: int, -) -> SimpleNamespace: - evu_counter = SimpleNamespace( - data=SimpleNamespace( - get=SimpleNamespace(power=evu_power), - config=SimpleNamespace(max_total_power=import_limit), - ) - ) - return SimpleNamespace( - counter_all_data=SimpleNamespace( - data=SimpleNamespace(set=SimpleNamespace(home_consumption=home_consumption)), - get_evu_counter=lambda: evu_counter, - ), - cp_all_data=SimpleNamespace(data=SimpleNamespace(get=SimpleNamespace(power=cp_power))), - pv_all_data=SimpleNamespace(data=SimpleNamespace(get=SimpleNamespace(power=pv_power))), - bat_all_data=SimpleNamespace(data=SimpleNamespace(get=SimpleNamespace(power=bat_power))), - ) - - def _create_qcells_bat() -> bat.QCellsBat: return bat.QCellsBat(QCellsBatSetup(), modbus_id=1, client=SimpleNamespace()) -def test_get_active_power_target_stop_is_zero(monkeypatch) -> None: +def test_get_mode4_push_power_stop_is_zero() -> None: qcells_bat = _create_qcells_bat() - monkeypatch.setattr( - bat.data, - "data", - _fake_data( - home_consumption=450, - cp_power=5500, - pv_power=-5600, - bat_power=-200, - evu_power=100, - import_limit=24000, - ), - raising=False, - ) - - assert qcells_bat._get_active_power_target(0) == 0 + assert qcells_bat._get_mode4_push_power(0) == 0 -def test_get_active_power_target_discharge_keeps_limit(monkeypatch) -> None: +def test_get_mode4_push_power_discharge_is_positive() -> None: qcells_bat = _create_qcells_bat() - monkeypatch.setattr( - bat.data, - "data", - _fake_data( - home_consumption=500, - cp_power=4800, - pv_power=-5200, - bat_power=-900, - evu_power=-300, - import_limit=24000, - ), - raising=False, - ) + # openWB discharge limit is negative -> mode4 push power must be positive + assert qcells_bat._get_mode4_push_power(-700) == 700 - assert qcells_bat._get_active_power_target(-700) == -700 - -def test_get_active_power_target_charge_clamped_by_import_limit(monkeypatch) -> None: +def test_get_mode4_push_power_charge_is_negative() -> None: qcells_bat = _create_qcells_bat() - monkeypatch.setattr( - bat.data, - "data", - _fake_data( - home_consumption=600, - cp_power=5400, - pv_power=-4000, - bat_power=300, - evu_power=1800, - import_limit=6200, - ), - raising=False, - ) - - assert qcells_bat._get_active_power_target(1200) == 200 - - -def test_get_active_power_target_charge_clamped_to_zero_without_headroom(monkeypatch) -> None: - qcells_bat = _create_qcells_bat() - monkeypatch.setattr( - bat.data, - "data", - _fake_data( - home_consumption=800, - cp_power=5200, - pv_power=-4500, - bat_power=100, - evu_power=5800, - import_limit=5000, - ), - raising=False, - ) - - assert qcells_bat._get_active_power_target(1000) == 0 + # openWB charge limit is positive -> mode4 push power must be negative + assert qcells_bat._get_mode4_push_power(1000) == -1000 From 7d9ff866c64e4710b4fce462a315da72f3e94c5a Mon Sep 17 00:00:00 2001 From: LKuemmel Date: Tue, 5 May 2026 11:16:07 +0200 Subject: [PATCH 8/9] build UI --- ...-DyGDJFQ0.js => ActiveBatControlConfiguration-DHcxvCYP.js} | 2 +- .../assets/{ChargeLog-CZQ0QwMY.js => ChargeLog-DrRDhBzR.js} | 2 +- ...lation-BeNMkMOi.js => ChargePointInstallation-Cmc7sApi.js} | 4 ++-- web/settings/assets/{Chart-CR-tn1oB.js => Chart-CswxV9n9.js} | 2 +- ...nfiguration-DOLVcdWg.js => CloudConfiguration-CTXO9wZf.js} | 2 +- ...{DataManagement-C57poL-r.js => DataManagement-lM5_tcaR.js} | 4 ++-- ...nfiguration-C2vm4vM4.js => DebugConfiguration-FJkDknEv.js} | 2 +- ...iguration-h7XEuoXV.js => DisplayConfiguration-C9arPcQK.js} | 4 ++-- ...ion-kMS02s2g.js => GeneralChargeConfiguration-BMEAxDhB.js} | 4 ++-- ...iguration-b09cPY_w.js => GeneralConfiguration-d2XsWBRc.js} | 4 ++-- ...tallation-DrK-NlWu.js => HardwareInstallation-DW5TYu17.js} | 4 ++-- ...on-BN_nskUK.js => IdentificationConfiguration-D2_DUB2l.js} | 2 +- ...tallAssistant-C4J4yr5X.js => InstallAssistant-DLIY5fno.js} | 4 ++-- ...antStep0-CdrgO-v9.js => InstallAssistantStep0-DBvPI_yM.js} | 2 +- ...antStep1-CsFGL7lM.js => InstallAssistantStep1-CUcCAaDn.js} | 2 +- ...tStep10-BlCtHrWc.js => InstallAssistantStep10-CnvGxjV6.js} | 2 +- ...antStep2-DEKmkA7t.js => InstallAssistantStep2-BimXLSB-.js} | 2 +- ...tStep20-7rhZVz9G.js => InstallAssistantStep20-Bl6LbGVo.js} | 2 +- ...antStep3-aOTEH1Z9.js => InstallAssistantStep3-DN9k42g8.js} | 2 +- ...antStep4-Ct4UOsV9.js => InstallAssistantStep4-DKMqhBf-.js} | 2 +- ...antStep5-DEDexAYx.js => InstallAssistantStep5-Cv6-_Kq3.js} | 2 +- ...antStep6-ODuKRKj5.js => InstallAssistantStep6-DJNqrH3b.js} | 2 +- ...antStep7--rx4TlHA.js => InstallAssistantStep7-1vUjaedx.js} | 2 +- ...antStep8-5_UXcXLV.js => InstallAssistantStep8-CRhJhWLx.js} | 2 +- ...antStep9-HIXLScoE.js => InstallAssistantStep9-DRxmVHSA.js} | 2 +- ...e-DXqdRjEv.js => InstallAssistantStepTemplate-D7oyrk_N.js} | 2 +- ...oConfiguration-hMQZDwaS.js => IoConfiguration-CuIvy4Hb.js} | 4 ++-- .../{LegalSettings-DvE2H9Xw.js => LegalSettings-DqdcFet8.js} | 2 +- ...on-DKZ9eznX.js => LoadManagementConfiguration-DkVfCmRF.js} | 2 +- ...ration-DpHaWJdF.js => MqttBridgeConfiguration-CDPcpDOw.js} | 2 +- ...ortableList-CSUuyi79.js => OpenwbSortableList-B4YWn8p9.js} | 2 +- ...guration-Ckkg6YKx.js => SecurityConfiguration-Dlmaxpov.js} | 2 +- .../assets/{Status-bV6B6bv6.js => Status-C2MPQY7c.js} | 2 +- .../assets/{Support-DMhdXgqE.js => Support--2N_8ACr.js} | 2 +- ...ion-i4C8x6Va.js => SurplusChargeConfiguration-Cu9BnO0I.js} | 2 +- ...figuration-BN4gvHU6.js => SystemConfiguration-C-kqn4RK.js} | 2 +- .../{TestingStore-pmOfDSbe.js => TestingStore-DRd3kTjd.js} | 2 +- ...iguration-B3d9qly5.js => VehicleConfiguration-DZuJgE9z.js} | 4 ++-- .../{backup_cloud-CXDQV4ep.js => backup_cloud-CgD5zQhQ.js} | 2 +- .../{backup_cloud-CPUdKiBb.js => backup_cloud-D9cn7cL6.js} | 2 +- .../{backup_cloud-CzI98uku.js => backup_cloud-DoxyAX26.js} | 2 +- .../{backup_cloud-CDlXI8NQ.js => backup_cloud-z1NXuBiy.js} | 2 +- web/settings/assets/{bat-BO99Yxvy.js => bat-0iJT-x8M.js} | 2 +- web/settings/assets/{bat-DYO-TJpZ.js => bat-4cfgum-E.js} | 2 +- web/settings/assets/{bat-DfC3LldK.js => bat-Ax30Gent.js} | 2 +- web/settings/assets/{bat-DpnEphe_.js => bat-BGnhimEI.js} | 2 +- web/settings/assets/{bat-BtNiOzPi.js => bat-BQtAwRjv.js} | 2 +- web/settings/assets/{bat-BFJihL5b.js => bat-BYye6D44.js} | 2 +- web/settings/assets/{bat-ChvTGfrS.js => bat-Bkdbtauz.js} | 2 +- web/settings/assets/{bat-LvnuQvaR.js => bat-BodHor1L.js} | 2 +- web/settings/assets/{bat-Ikmja4Vs.js => bat-BrzTqk8M.js} | 2 +- web/settings/assets/{bat-DjyCL_fH.js => bat-CCSl-PUx.js} | 2 +- web/settings/assets/{bat-ClqXmjbq.js => bat-CFqnjfN0.js} | 2 +- web/settings/assets/{bat-Cso_FjAB.js => bat-CdX7Dsq8.js} | 2 +- web/settings/assets/{bat-C-8Z5eMd.js => bat-Cg0kUFxT.js} | 2 +- web/settings/assets/{bat-CW5lqe8H.js => bat-Cn1BvUsy.js} | 2 +- web/settings/assets/bat-CrV_lSyl.js | 1 - web/settings/assets/{bat-g5CpLXKe.js => bat-D1f46Np3.js} | 2 +- web/settings/assets/{bat-DM6pfv3v.js => bat-D6j0cSWQ.js} | 2 +- web/settings/assets/{bat-CjexnhY1.js => bat-DFNKb3el.js} | 2 +- web/settings/assets/{bat-Cjlfvz8n.js => bat-DJLzkMEi.js} | 2 +- web/settings/assets/{bat-DGxxvF09.js => bat-DZyRWMSA.js} | 2 +- web/settings/assets/{bat-P6JfJZmF.js => bat-DcL07sVl.js} | 2 +- web/settings/assets/{bat-CcOi7qeq.js => bat-DgH1cQZt.js} | 2 +- web/settings/assets/{bat-C_Uav9BA.js => bat-Np9R5pTH.js} | 2 +- web/settings/assets/{bat-CWWcSN5h.js => bat-QqXQiyrh.js} | 2 +- web/settings/assets/bat-VZSm2USJ.js | 1 + web/settings/assets/{bat-BLn3ChiW.js => bat-W2j8bFF3.js} | 2 +- web/settings/assets/{bat-DM7fO5hq.js => bat-Y4Bo2-xr.js} | 2 +- web/settings/assets/{bat-BAPssBwn.js => bat-fTz5eqR6.js} | 2 +- web/settings/assets/{bat-CA1pDpyc.js => bat-nFWbkTuH.js} | 2 +- web/settings/assets/{bat-C5vCaakP.js => bat-nQylh6hI.js} | 2 +- ..._smart_energy-Czb4GYtP.js => bat_smart_energy-Bc52yzFg.js} | 2 +- .../{chargePoint-Bd2Kp2l0.js => chargePoint-B5VvdkvH.js} | 2 +- .../{chargePoint-Dedwz5Jy.js => chargePoint-C5jB_bOz.js} | 2 +- .../{chargePoint-UK4SBHnE.js => chargePoint-CYTSaRoE.js} | 2 +- .../{chargePoint-CIyU28Hf.js => chargePoint-CuYVViGz.js} | 2 +- .../{chargePoint-DWLMU56i.js => chargePoint-UefwMnyD.js} | 2 +- .../{chargePoint-sYavUqxv.js => chargePoint-XTkGOmLT.js} | 2 +- .../{chargePoint-CZkD_QGG.js => chargePoint-hTZAsZ1C.js} | 2 +- .../assets/{commands-DVXr5SHv.js => commands-DbPIi_R7.js} | 2 +- .../assets/{commands-WVGU9z4_.js => commands-DzcJU8K3.js} | 2 +- ...on_counter-s9tb-xVk.js => consumption_counter-CF8sdq_V.js} | 2 +- .../assets/{counter-CAioz9cY.js => counter-A_Eha_ow.js} | 2 +- .../assets/{counter-B08rzQq5.js => counter-B6FDPfsT.js} | 2 +- .../assets/{counter-DbRhyf8N.js => counter-B7nJSb8E.js} | 2 +- .../assets/{counter-CNaWH3hH.js => counter-B8QJAgEt.js} | 2 +- .../assets/{counter-5nvynE8p.js => counter-BDr0k9oC.js} | 2 +- .../assets/{counter-D_yHfG7M.js => counter-BVtC0OIn.js} | 2 +- .../assets/{counter-CqYIUc0x.js => counter-BbIUpB6g.js} | 2 +- .../assets/{counter-CDmfO7fm.js => counter-Bg6xqQnQ.js} | 2 +- .../assets/{counter-Bq_4dQ6X.js => counter-BoOPFIeZ.js} | 2 +- .../assets/{counter-BWI3WRrg.js => counter-BtazrY2B.js} | 2 +- .../assets/{counter-B2RD41ZG.js => counter-C1tkl5FT.js} | 2 +- .../assets/{counter-DlTwNWk_.js => counter-C51HlNOs.js} | 2 +- .../assets/{counter-DoLu61P3.js => counter-CBhLJ0HX.js} | 2 +- .../assets/{counter-C4Bc-LFa.js => counter-CDUqz_Aw.js} | 2 +- .../assets/{counter-DqUnAcpd.js => counter-CQa_tIvk.js} | 2 +- .../assets/{counter-C7jGbtjK.js => counter-CZ5K8g8Z.js} | 2 +- .../assets/{counter-C_KHyjgh.js => counter-ClRUzEkm.js} | 2 +- .../assets/{counter-CG8UPJNQ.js => counter-Cm6ek-bl.js} | 2 +- .../assets/{counter-PiIXsMjs.js => counter-CpadszTy.js} | 2 +- .../assets/{counter-C68GXHgb.js => counter-CuNF0eOV.js} | 2 +- .../assets/{counter-JDvJyDSb.js => counter-Cv4G8Tsg.js} | 2 +- .../assets/{counter-BLEEk5vk.js => counter-D-70g2Df.js} | 2 +- .../assets/{counter-D8dbm9sC.js => counter-D0mmwP6N.js} | 2 +- .../assets/{counter-xlfblTPy.js => counter-D7FnqAtd.js} | 2 +- .../assets/{counter-CdY4HvNb.js => counter-DKjZaavu.js} | 2 +- .../assets/{counter-BmG9nVGY.js => counter-DOSXCjzW.js} | 2 +- .../assets/{counter-C3j9bCHZ.js => counter-DV-WMkEG.js} | 2 +- .../assets/{counter-CcBkZQq0.js => counter-DeNkZ-pw.js} | 2 +- .../assets/{counter-D2NORLkt.js => counter-DefcYDVn.js} | 2 +- .../assets/{counter-C7uERgGk.js => counter-DfOLZ8wG.js} | 2 +- .../assets/{counter-CALcAyno.js => counter-Dm87iMnq.js} | 2 +- .../assets/{counter-CFHdp5Rg.js => counter-DnGmCaut.js} | 2 +- .../assets/{counter-CBsxLQUz.js => counter-DqdzrzXR.js} | 2 +- .../assets/{counter-N5EbHNfB.js => counter-Drr6VJPX.js} | 2 +- .../assets/{counter-CWRQi4AZ.js => counter-SFsLwkGI.js} | 2 +- .../assets/{counter-BLIDMuvJ.js => counter-YlkeS6Em.js} | 2 +- .../assets/{counter-C9TFKAZS.js => counter-c-gM0svN.js} | 2 +- .../assets/{counter-C5lMgFh-.js => counter-tDR8t7cN.js} | 2 +- ...onsumption-DMUt0xYl.js => counter_consumption-Ds8Se4iG.js} | 2 +- ..._maxstorage-BPEg9Ghm.js => counter_maxstorage-CTGozg4B.js} | 2 +- .../assets/{counter_sm-CDb5bKKk.js => counter_sm-pNrELGGt.js} | 2 +- .../assets/{device-NkTYsz5d.js => device-1i0aaNC5.js} | 2 +- .../assets/{device-Akr-Eknl.js => device-B25qse-T.js} | 2 +- .../assets/{device-iH7FSbYH.js => device-B2nna1eX.js} | 2 +- .../assets/{device-DrU2EIBQ.js => device-B6C66MkE.js} | 2 +- .../assets/{device-CkLXsAHJ.js => device-B8YHisMb.js} | 2 +- .../assets/{device-D6aGb8Ub.js => device-B8aJ_v6z.js} | 2 +- .../assets/{device-D89U0LFt.js => device-B9NfuMek.js} | 2 +- .../assets/{device-jAbWqT5Y.js => device-BIqpmcKH.js} | 2 +- .../assets/{device-DqksrJOB.js => device-BLQIpNFk.js} | 2 +- .../assets/{device-CFpXw0Yl.js => device-BLcj2_F_.js} | 2 +- .../assets/{device-CUOUt23w.js => device-BQJszAHJ.js} | 2 +- .../assets/{device-JZQCuW65.js => device-BTX_U2ze.js} | 2 +- .../assets/{device-zXBzry27.js => device-BTaZLgZX.js} | 2 +- .../assets/{device-nVYvqlQr.js => device-BTcCLzsp.js} | 2 +- .../assets/{device-DgWAC9VW.js => device-BVBeJeaC.js} | 2 +- .../assets/{device-f9fnP_KM.js => device-Bb5dj_A8.js} | 2 +- .../assets/{device-Djudo4I7.js => device-BgwGgK4V.js} | 2 +- .../assets/{device-B--mch3K.js => device-BhtRgBIo.js} | 2 +- .../assets/{device-fRG5_uqe.js => device-BleyPfYn.js} | 2 +- .../assets/{device-I28jsbnC.js => device-BnbWTLTe.js} | 2 +- .../assets/{device-B5RB3kWv.js => device-BnuAgz8z.js} | 2 +- .../assets/{device-BuyzFtIE.js => device-BoRz-h9D.js} | 2 +- .../assets/{device-BUqTyqae.js => device-BzspTrpe.js} | 2 +- .../assets/{device-BKXFo9ZM.js => device-C-2I3miB.js} | 2 +- .../assets/{device-MN8XeDgn.js => device-C3Gr4pTS.js} | 2 +- .../assets/{device-D03RaIUC.js => device-CBCwFYPC.js} | 2 +- .../assets/{device-t3OGij3M.js => device-CBmIgevJ.js} | 2 +- .../assets/{device-DW4k7y4-.js => device-CGFCc-6g.js} | 2 +- .../assets/{device-DriAiQTh.js => device-CJ46HRTm.js} | 2 +- .../assets/{device-Fu4__SF-.js => device-CM1a3210.js} | 2 +- .../assets/{device-CX454zoq.js => device-CMefLAy2.js} | 2 +- .../assets/{device-Ge0sqbOD.js => device-CPQ3ylFo.js} | 2 +- .../assets/{device-BcaNUjQJ.js => device-CQUgLNbO.js} | 2 +- .../assets/{device-3lw2SJGr.js => device-CSpwX2A7.js} | 2 +- .../assets/{device-CsogXwrs.js => device-CUpyrxDg.js} | 2 +- .../assets/{device-CTvTEy9o.js => device-CbAHx9k5.js} | 2 +- .../assets/{device-BqKfOrDp.js => device-ChIotMSG.js} | 2 +- .../assets/{device-BdzJGZry.js => device-CkIrFtXj.js} | 2 +- .../assets/{device-AZcRdq4E.js => device-ClJMpktq.js} | 2 +- .../assets/{device-ZglIRb13.js => device-Cm2E-XJI.js} | 2 +- .../assets/{device-DwiBUt_R.js => device-Co7SQh-h.js} | 2 +- .../assets/{device-DLe5rJBe.js => device-CoDgAiu7.js} | 2 +- .../assets/{device-D7cbEhiT.js => device-Com-9Ezv.js} | 2 +- .../assets/{device-B5V0NVAx.js => device-CpwwCHau.js} | 2 +- .../assets/{device-Cww7LhK6.js => device-CrCdeJXU.js} | 2 +- .../assets/{device-BnxlY63G.js => device-CrgeMplj.js} | 2 +- .../assets/{device-BzBPeuLF.js => device-CsoeSeMr.js} | 2 +- .../assets/{device-C2Py-T5Y.js => device-CtUghXi3.js} | 2 +- .../assets/{device-CZhiiWs3.js => device-CzcTMovl.js} | 2 +- .../assets/{device-DsVqYSqX.js => device-D13_BqWq.js} | 2 +- .../assets/{device-CrT-Q_nn.js => device-D2x0p5db.js} | 2 +- .../assets/{device-CkVVX1eZ.js => device-D40Fwpnf.js} | 2 +- .../assets/{device-DBsitINB.js => device-D5MbNowE.js} | 2 +- .../assets/{device-C5UrZly-.js => device-D6o18n_v.js} | 2 +- .../assets/{device-DjFgC3FH.js => device-D9AUjwae.js} | 2 +- .../assets/{device-DiQe2xTf.js => device-DDpMd1e0.js} | 2 +- .../assets/{device-C7Bv2cYw.js => device-DHl3UXR-.js} | 2 +- .../assets/{device-DteT1ftK.js => device-DOt-8MOg.js} | 2 +- .../assets/{device-B3JnKzHE.js => device-DRKX4yJQ.js} | 2 +- .../assets/{device-BwzMCkFy.js => device-DcBHTsLN.js} | 2 +- .../assets/{device-Bkj5ye31.js => device-Dlv7ykwm.js} | 2 +- .../assets/{device-DwFvJqbg.js => device-DoaiL166.js} | 2 +- .../assets/{device-D2Tob0bp.js => device-Dompx4E-.js} | 2 +- .../assets/{device-D86kZoMv.js => device-DprB4FVH.js} | 2 +- .../assets/{device-B-wUAE96.js => device-DsQ4isEF.js} | 2 +- .../assets/{device-DZbbGgNj.js => device-JaS8E22E.js} | 2 +- .../assets/{device-DntiDAu1.js => device-MHdIpW0v.js} | 2 +- .../assets/{device-ByU2v5ON.js => device-ZJQLxXJQ.js} | 2 +- .../assets/{device-NDckeTVc.js => device-azgVVgJz.js} | 2 +- .../assets/{device-QTYXfo_2.js => device-bwNUNyPA.js} | 2 +- .../assets/{device-CnqEvKdN.js => device-fOYVFPuS.js} | 2 +- .../assets/{device-BIKPUvlF.js => device-fle-hzCB.js} | 2 +- .../assets/{device-jjyvBZq_.js => device-gBv6mP6a.js} | 2 +- .../assets/{device-Cu_Afhxv.js => device-hpmNmTOM.js} | 2 +- .../assets/{device-BJXiIXwb.js => device-i8-KJ-Ws.js} | 2 +- .../assets/{device-CT8s8OAc.js => device-lj_s42gJ.js} | 2 +- .../assets/{device-BqQNuquo.js => device-m9d0bD8m.js} | 2 +- .../assets/{device--YYhIuOQ.js => device-o47QZlML.js} | 2 +- .../assets/{device-DBTWS1zk.js => device-qKrSKUqA.js} | 2 +- .../assets/{device-DJRFYW8u.js => device-qj1Qycjk.js} | 2 +- .../assets/{device-DvHqZZk9.js => device-sNas_qg7.js} | 2 +- .../assets/{device-DuOQfDmg.js => device-xbfmehz1.js} | 2 +- .../assets/{device-BquvfqB_.js => device-ytrtPsOb.js} | 2 +- .../assets/{device-uMAcYGWD.js => device-zmmS4Msf.js} | 2 +- .../assets/{device-i-cc32LZ.js => device-zuKsJodY.js} | 2 +- .../{displayTheme-TNZXyuYb.js => displayTheme-8rnKVIQ-.js} | 2 +- .../{displayTheme-BlhJueVr.js => displayTheme-Ci9Iypgk.js} | 2 +- ...nal_inverter-v9N8YFy_.js => external_inverter-YjGYqVNZ.js} | 2 +- ...lexible_tariff-Cm72-IRP.js => flexible_tariff-B5DgZTcN.js} | 2 +- ...lexible_tariff-CiZLGcR6.js => flexible_tariff-BxUfQCPe.js} | 2 +- ...lexible_tariff-DDPKc8IS.js => flexible_tariff-C7Zs9PG4.js} | 2 +- ...lexible_tariff-Cwtdxcdq.js => flexible_tariff-CToQtY_I.js} | 2 +- ...lexible_tariff-DNlNO1mw.js => flexible_tariff-CZz477CJ.js} | 2 +- ...lexible_tariff-BsviT0dT.js => flexible_tariff-Cbf1PwIN.js} | 2 +- ...lexible_tariff-DJxxQB8n.js => flexible_tariff-Cf2nnN_M.js} | 2 +- ...lexible_tariff-B5Q9TiRz.js => flexible_tariff-D0DTSvQT.js} | 2 +- ...lexible_tariff-DAlfbB0X.js => flexible_tariff-DRHxWWnZ.js} | 2 +- ...lexible_tariff-DUAjEH5H.js => flexible_tariff-Df7JtFhH.js} | 2 +- ...lexible_tariff-D1CoTmby.js => flexible_tariff-SnZ0ndPZ.js} | 2 +- .../assets/{grid_fee-vdJ6pKGQ.js => grid_fee-CGe3xbmI.js} | 2 +- web/settings/assets/{index-D_eD74fL.js => index-MVrRMMo2.js} | 4 ++-- .../assets/{inverter-CTZt8kgW.js => inverter-3I2lkK_L.js} | 2 +- .../assets/{inverter-DXCXYnzH.js => inverter-6IxocKCd.js} | 2 +- .../assets/{inverter-DgFOEAbi.js => inverter-B4d2P0BT.js} | 2 +- .../assets/{inverter-D8I4F0kA.js => inverter-BBOKdY28.js} | 2 +- .../assets/{inverter-BjdsHouB.js => inverter-BFfNvObM.js} | 2 +- .../assets/{inverter-AYViTSOI.js => inverter-BL7QHUdu.js} | 2 +- .../assets/{inverter-oQ0jJI7j.js => inverter-BZuKTY7H.js} | 2 +- .../assets/{inverter-CzPXa6it.js => inverter-BaXH_Y9w.js} | 2 +- .../assets/{inverter-9vdoOv_r.js => inverter-BmdI7f5U.js} | 2 +- .../assets/{inverter-CbPKaOUd.js => inverter-BmkLYd0W.js} | 2 +- .../assets/{inverter-CDYkCixE.js => inverter-BseXGzyq.js} | 2 +- .../assets/{inverter-DMLtmP39.js => inverter-C0TqYVpJ.js} | 2 +- .../assets/{inverter-DSMmU0bk.js => inverter-C7XZ_DaO.js} | 2 +- .../assets/{inverter-D8ojL_BV.js => inverter-C9IbTuw1.js} | 2 +- .../assets/{inverter-ChBLwrbt.js => inverter-CBpmmUE2.js} | 2 +- .../assets/{inverter-9SjCnF3G.js => inverter-CF16Zlup.js} | 2 +- .../assets/{inverter-Ci3SfwIV.js => inverter-CJF4atrW.js} | 2 +- .../assets/{inverter-B8AbK5LS.js => inverter-CZL0apch.js} | 2 +- .../assets/{inverter-D0gOX-_P.js => inverter-C_8-RWzk.js} | 2 +- .../assets/{inverter-DBFgbhVo.js => inverter-CiPvqfmh.js} | 2 +- .../assets/{inverter-D8K2CFDi.js => inverter-CmIS6Rxf.js} | 2 +- .../assets/{inverter-D9Thnvbs.js => inverter-DBEU38Ze.js} | 2 +- .../assets/{inverter-8vpAsJFV.js => inverter-DJMrcxw5.js} | 2 +- .../assets/{inverter-ACq6R7xB.js => inverter-DQZrmUb6.js} | 2 +- .../assets/{inverter-0RghKIsx.js => inverter-Ddd-hTPo.js} | 2 +- .../assets/{inverter-DJnr53ar.js => inverter-DnZJ8VZ2.js} | 2 +- .../assets/{inverter-Dt-0cVGJ.js => inverter-DvXw3D7a.js} | 2 +- .../assets/{inverter-CbwWOoTg.js => inverter-JBoSg5MK.js} | 2 +- .../assets/{inverter-DIStW2Xn.js => inverter-Nqq-ojGV.js} | 2 +- .../assets/{inverter-YRLdoDau.js => inverter-Tudrcp8A.js} | 2 +- .../assets/{inverter-CQscUjQi.js => inverter-ecQY2yVW.js} | 2 +- .../assets/{inverter-B-NdAxCX.js => inverter-iIz-rAKJ.js} | 2 +- .../assets/{inverter-hdDYm9Uf.js => inverter-nJJk1YCc.js} | 2 +- .../assets/{inverter-BbajKr0y.js => inverter-pZ3BL9gj.js} | 2 +- ...maxstorage-DeCO1HV-.js => inverter_maxstorage-21D0TjaH.js} | 2 +- ...eter-Coy7d4cu.js => inverter_production_meter-CuurhLpB.js} | 2 +- ...r_secondary-D3yQDLVg.js => inverter_secondary-D81T0iKO.js} | 2 +- .../assets/{io_action-B9LeEnBs.js => io_action-B4e-bIRM.js} | 2 +- .../assets/{io_action-JT1W0Hwl.js => io_action-CMnVuT9A.js} | 2 +- .../assets/{io_action-Des8D82O.js => io_action-Cfwq0HWR.js} | 2 +- .../assets/{io_action-BWKUJ45t.js => io_action-iOBI7on-.js} | 2 +- .../assets/{io_device-ByQHLYHY.js => io_device-CUm9h4iq.js} | 2 +- .../assets/{io_device-BBOT5GiC.js => io_device-DCk4IaIJ.js} | 2 +- .../assets/{io_device-mvR1tJtP.js => io_device-Df6mTI7P.js} | 2 +- .../assets/{monitoring-oAy7LKTI.js => monitoring-CKhMIifd.js} | 2 +- .../assets/{vehicle-BV1RfRrF.js => vehicle-50Jll49o.js} | 2 +- .../assets/{vehicle-ClSMB-k7.js => vehicle-B202xWbb.js} | 2 +- .../assets/{vehicle-ADVayxu-.js => vehicle-BAqmA1wd.js} | 2 +- .../assets/{vehicle-TpGqMVx6.js => vehicle-BGNpvKRV.js} | 2 +- .../assets/{vehicle-Br3C3ndJ.js => vehicle-BNaGIvQj.js} | 2 +- .../assets/{vehicle-BtE1rfvQ.js => vehicle-BcbXWLFP.js} | 2 +- .../assets/{vehicle-CUR0E3wk.js => vehicle-Bi2svxY9.js} | 2 +- .../assets/{vehicle-DT7Lg5C4.js => vehicle-Bwbyv3mH.js} | 2 +- .../assets/{vehicle-D363Q7cB.js => vehicle-BzXDEPgk.js} | 2 +- .../assets/{vehicle-DTOXQ3ag.js => vehicle-CFiyg2u6.js} | 2 +- .../assets/{vehicle-uZMeCx8f.js => vehicle-CHu8UU7R.js} | 2 +- .../assets/{vehicle-lU7Zuadi.js => vehicle-CMvQ9Clb.js} | 2 +- .../assets/{vehicle-uRvyo-2W.js => vehicle-CWdezBG4.js} | 2 +- .../assets/{vehicle-7kCruC46.js => vehicle-Cz4gTSeZ.js} | 2 +- .../assets/{vehicle-XMzQc45d.js => vehicle-Dafx24UN.js} | 2 +- .../assets/{vehicle-BBQyN4nf.js => vehicle-Dciyc5Tc.js} | 2 +- .../assets/{vehicle-CH_9CnU6.js => vehicle-DoLMhCj3.js} | 2 +- .../assets/{vehicle-DDs9o72d.js => vehicle-Dy-1WneA.js} | 2 +- .../assets/{vehicle-DjrtYuS-.js => vehicle-QEOZLyuW.js} | 2 +- .../assets/{vehicle-CO6j-SQn.js => vehicle-QRfiUykG.js} | 2 +- .../assets/{vehicle-Bzw0t3uD.js => vehicle-o-3CCJWH.js} | 2 +- .../assets/{webTheme-CY7Mp7o_.js => webTheme-C6_Ayx15.js} | 2 +- .../assets/{webTheme-CHG5h5Rr.js => webTheme-CU5jN01o.js} | 2 +- .../assets/{webTheme-BZXitWVh.js => webTheme-Ckx7MxLF.js} | 2 +- web/settings/index.html | 2 +- 295 files changed, 304 insertions(+), 304 deletions(-) rename web/settings/assets/{ActiveBatControlConfiguration-DyGDJFQ0.js => ActiveBatControlConfiguration-DHcxvCYP.js} (99%) rename web/settings/assets/{ChargeLog-CZQ0QwMY.js => ChargeLog-DrRDhBzR.js} (99%) rename web/settings/assets/{ChargePointInstallation-BeNMkMOi.js => ChargePointInstallation-Cmc7sApi.js} (96%) rename web/settings/assets/{Chart-CR-tn1oB.js => Chart-CswxV9n9.js} (99%) rename web/settings/assets/{CloudConfiguration-DOLVcdWg.js => CloudConfiguration-CTXO9wZf.js} (99%) rename web/settings/assets/{DataManagement-C57poL-r.js => DataManagement-lM5_tcaR.js} (97%) rename web/settings/assets/{DebugConfiguration-C2vm4vM4.js => DebugConfiguration-FJkDknEv.js} (99%) rename web/settings/assets/{DisplayConfiguration-h7XEuoXV.js => DisplayConfiguration-C9arPcQK.js} (97%) rename web/settings/assets/{GeneralChargeConfiguration-kMS02s2g.js => GeneralChargeConfiguration-BMEAxDhB.js} (93%) rename web/settings/assets/{GeneralConfiguration-b09cPY_w.js => GeneralConfiguration-d2XsWBRc.js} (97%) rename web/settings/assets/{HardwareInstallation-DrK-NlWu.js => HardwareInstallation-DW5TYu17.js} (53%) rename web/settings/assets/{IdentificationConfiguration-BN_nskUK.js => IdentificationConfiguration-D2_DUB2l.js} (99%) rename web/settings/assets/{InstallAssistant-C4J4yr5X.js => InstallAssistant-DLIY5fno.js} (64%) rename web/settings/assets/{InstallAssistantStep0-CdrgO-v9.js => InstallAssistantStep0-DBvPI_yM.js} (95%) rename web/settings/assets/{InstallAssistantStep1-CsFGL7lM.js => InstallAssistantStep1-CUcCAaDn.js} (89%) rename web/settings/assets/{InstallAssistantStep10-BlCtHrWc.js => InstallAssistantStep10-CnvGxjV6.js} (91%) rename web/settings/assets/{InstallAssistantStep2-DEKmkA7t.js => InstallAssistantStep2-BimXLSB-.js} (89%) rename web/settings/assets/{InstallAssistantStep20-7rhZVz9G.js => InstallAssistantStep20-Bl6LbGVo.js} (91%) rename web/settings/assets/{InstallAssistantStep3-aOTEH1Z9.js => InstallAssistantStep3-DN9k42g8.js} (91%) rename web/settings/assets/{InstallAssistantStep4-Ct4UOsV9.js => InstallAssistantStep4-DKMqhBf-.js} (91%) rename web/settings/assets/{InstallAssistantStep5-DEDexAYx.js => InstallAssistantStep5-Cv6-_Kq3.js} (92%) rename web/settings/assets/{InstallAssistantStep6-ODuKRKj5.js => InstallAssistantStep6-DJNqrH3b.js} (94%) rename web/settings/assets/{InstallAssistantStep7--rx4TlHA.js => InstallAssistantStep7-1vUjaedx.js} (91%) rename web/settings/assets/{InstallAssistantStep8-5_UXcXLV.js => InstallAssistantStep8-CRhJhWLx.js} (93%) rename web/settings/assets/{InstallAssistantStep9-HIXLScoE.js => InstallAssistantStep9-DRxmVHSA.js} (90%) rename web/settings/assets/{InstallAssistantStepTemplate-DXqdRjEv.js => InstallAssistantStepTemplate-D7oyrk_N.js} (97%) rename web/settings/assets/{IoConfiguration-hMQZDwaS.js => IoConfiguration-CuIvy4Hb.js} (94%) rename web/settings/assets/{LegalSettings-DvE2H9Xw.js => LegalSettings-DqdcFet8.js} (98%) rename web/settings/assets/{LoadManagementConfiguration-DKZ9eznX.js => LoadManagementConfiguration-DkVfCmRF.js} (99%) rename web/settings/assets/{MqttBridgeConfiguration-DpHaWJdF.js => MqttBridgeConfiguration-CDPcpDOw.js} (99%) rename web/settings/assets/{OpenwbSortableList-CSUuyi79.js => OpenwbSortableList-B4YWn8p9.js} (97%) rename web/settings/assets/{SecurityConfiguration-Ckkg6YKx.js => SecurityConfiguration-Dlmaxpov.js} (99%) rename web/settings/assets/{Status-bV6B6bv6.js => Status-C2MPQY7c.js} (99%) rename web/settings/assets/{Support-DMhdXgqE.js => Support--2N_8ACr.js} (99%) rename web/settings/assets/{SurplusChargeConfiguration-i4C8x6Va.js => SurplusChargeConfiguration-Cu9BnO0I.js} (99%) rename web/settings/assets/{SystemConfiguration-BN4gvHU6.js => SystemConfiguration-C-kqn4RK.js} (99%) rename web/settings/assets/{TestingStore-pmOfDSbe.js => TestingStore-DRd3kTjd.js} (98%) rename web/settings/assets/{VehicleConfiguration-B3d9qly5.js => VehicleConfiguration-DZuJgE9z.js} (96%) rename web/settings/assets/{backup_cloud-CXDQV4ep.js => backup_cloud-CgD5zQhQ.js} (89%) rename web/settings/assets/{backup_cloud-CPUdKiBb.js => backup_cloud-D9cn7cL6.js} (96%) rename web/settings/assets/{backup_cloud-CzI98uku.js => backup_cloud-DoxyAX26.js} (94%) rename web/settings/assets/{backup_cloud-CDlXI8NQ.js => backup_cloud-z1NXuBiy.js} (90%) rename web/settings/assets/{bat-BO99Yxvy.js => bat-0iJT-x8M.js} (88%) rename web/settings/assets/{bat-DYO-TJpZ.js => bat-4cfgum-E.js} (87%) rename web/settings/assets/{bat-DfC3LldK.js => bat-Ax30Gent.js} (89%) rename web/settings/assets/{bat-DpnEphe_.js => bat-BGnhimEI.js} (87%) rename web/settings/assets/{bat-BtNiOzPi.js => bat-BQtAwRjv.js} (97%) rename web/settings/assets/{bat-BFJihL5b.js => bat-BYye6D44.js} (87%) rename web/settings/assets/{bat-ChvTGfrS.js => bat-Bkdbtauz.js} (91%) rename web/settings/assets/{bat-LvnuQvaR.js => bat-BodHor1L.js} (89%) rename web/settings/assets/{bat-Ikmja4Vs.js => bat-BrzTqk8M.js} (87%) rename web/settings/assets/{bat-DjyCL_fH.js => bat-CCSl-PUx.js} (87%) rename web/settings/assets/{bat-ClqXmjbq.js => bat-CFqnjfN0.js} (87%) rename web/settings/assets/{bat-Cso_FjAB.js => bat-CdX7Dsq8.js} (87%) rename web/settings/assets/{bat-C-8Z5eMd.js => bat-Cg0kUFxT.js} (95%) rename web/settings/assets/{bat-CW5lqe8H.js => bat-Cn1BvUsy.js} (87%) delete mode 100644 web/settings/assets/bat-CrV_lSyl.js rename web/settings/assets/{bat-g5CpLXKe.js => bat-D1f46Np3.js} (87%) rename web/settings/assets/{bat-DM6pfv3v.js => bat-D6j0cSWQ.js} (87%) rename web/settings/assets/{bat-CjexnhY1.js => bat-DFNKb3el.js} (87%) rename web/settings/assets/{bat-Cjlfvz8n.js => bat-DJLzkMEi.js} (91%) rename web/settings/assets/{bat-DGxxvF09.js => bat-DZyRWMSA.js} (87%) rename web/settings/assets/{bat-P6JfJZmF.js => bat-DcL07sVl.js} (89%) rename web/settings/assets/{bat-CcOi7qeq.js => bat-DgH1cQZt.js} (87%) rename web/settings/assets/{bat-C_Uav9BA.js => bat-Np9R5pTH.js} (88%) rename web/settings/assets/{bat-CWWcSN5h.js => bat-QqXQiyrh.js} (86%) create mode 100644 web/settings/assets/bat-VZSm2USJ.js rename web/settings/assets/{bat-BLn3ChiW.js => bat-W2j8bFF3.js} (90%) rename web/settings/assets/{bat-DM7fO5hq.js => bat-Y4Bo2-xr.js} (90%) rename web/settings/assets/{bat-BAPssBwn.js => bat-fTz5eqR6.js} (86%) rename web/settings/assets/{bat-CA1pDpyc.js => bat-nFWbkTuH.js} (92%) rename web/settings/assets/{bat-C5vCaakP.js => bat-nQylh6hI.js} (97%) rename web/settings/assets/{bat_smart_energy-Czb4GYtP.js => bat_smart_energy-Bc52yzFg.js} (88%) rename web/settings/assets/{chargePoint-Bd2Kp2l0.js => chargePoint-B5VvdkvH.js} (90%) rename web/settings/assets/{chargePoint-Dedwz5Jy.js => chargePoint-C5jB_bOz.js} (90%) rename web/settings/assets/{chargePoint-UK4SBHnE.js => chargePoint-CYTSaRoE.js} (90%) rename web/settings/assets/{chargePoint-CIyU28Hf.js => chargePoint-CuYVViGz.js} (90%) rename web/settings/assets/{chargePoint-DWLMU56i.js => chargePoint-UefwMnyD.js} (86%) rename web/settings/assets/{chargePoint-sYavUqxv.js => chargePoint-XTkGOmLT.js} (93%) rename web/settings/assets/{chargePoint-CZkD_QGG.js => chargePoint-hTZAsZ1C.js} (98%) rename web/settings/assets/{commands-DVXr5SHv.js => commands-DbPIi_R7.js} (95%) rename web/settings/assets/{commands-WVGU9z4_.js => commands-DzcJU8K3.js} (94%) rename web/settings/assets/{consumption_counter-s9tb-xVk.js => consumption_counter-CF8sdq_V.js} (93%) rename web/settings/assets/{counter-CAioz9cY.js => counter-A_Eha_ow.js} (85%) rename web/settings/assets/{counter-B08rzQq5.js => counter-B6FDPfsT.js} (87%) rename web/settings/assets/{counter-DbRhyf8N.js => counter-B7nJSb8E.js} (89%) rename web/settings/assets/{counter-CNaWH3hH.js => counter-B8QJAgEt.js} (87%) rename web/settings/assets/{counter-5nvynE8p.js => counter-BDr0k9oC.js} (97%) rename web/settings/assets/{counter-D_yHfG7M.js => counter-BVtC0OIn.js} (88%) rename web/settings/assets/{counter-CqYIUc0x.js => counter-BbIUpB6g.js} (87%) rename web/settings/assets/{counter-CDmfO7fm.js => counter-Bg6xqQnQ.js} (87%) rename web/settings/assets/{counter-Bq_4dQ6X.js => counter-BoOPFIeZ.js} (90%) rename web/settings/assets/{counter-BWI3WRrg.js => counter-BtazrY2B.js} (85%) rename web/settings/assets/{counter-B2RD41ZG.js => counter-C1tkl5FT.js} (88%) rename web/settings/assets/{counter-DlTwNWk_.js => counter-C51HlNOs.js} (89%) rename web/settings/assets/{counter-DoLu61P3.js => counter-CBhLJ0HX.js} (90%) rename web/settings/assets/{counter-C4Bc-LFa.js => counter-CDUqz_Aw.js} (88%) rename web/settings/assets/{counter-DqUnAcpd.js => counter-CQa_tIvk.js} (92%) rename web/settings/assets/{counter-C7jGbtjK.js => counter-CZ5K8g8Z.js} (97%) rename web/settings/assets/{counter-C_KHyjgh.js => counter-ClRUzEkm.js} (87%) rename web/settings/assets/{counter-CG8UPJNQ.js => counter-Cm6ek-bl.js} (90%) rename web/settings/assets/{counter-PiIXsMjs.js => counter-CpadszTy.js} (87%) rename web/settings/assets/{counter-C68GXHgb.js => counter-CuNF0eOV.js} (84%) rename web/settings/assets/{counter-JDvJyDSb.js => counter-Cv4G8Tsg.js} (87%) rename web/settings/assets/{counter-BLEEk5vk.js => counter-D-70g2Df.js} (85%) rename web/settings/assets/{counter-D8dbm9sC.js => counter-D0mmwP6N.js} (91%) rename web/settings/assets/{counter-xlfblTPy.js => counter-D7FnqAtd.js} (87%) rename web/settings/assets/{counter-CdY4HvNb.js => counter-DKjZaavu.js} (87%) rename web/settings/assets/{counter-BmG9nVGY.js => counter-DOSXCjzW.js} (87%) rename web/settings/assets/{counter-C3j9bCHZ.js => counter-DV-WMkEG.js} (90%) rename web/settings/assets/{counter-CcBkZQq0.js => counter-DeNkZ-pw.js} (83%) rename web/settings/assets/{counter-D2NORLkt.js => counter-DefcYDVn.js} (92%) rename web/settings/assets/{counter-C7uERgGk.js => counter-DfOLZ8wG.js} (88%) rename web/settings/assets/{counter-CALcAyno.js => counter-Dm87iMnq.js} (88%) rename web/settings/assets/{counter-CFHdp5Rg.js => counter-DnGmCaut.js} (85%) rename web/settings/assets/{counter-CBsxLQUz.js => counter-DqdzrzXR.js} (87%) rename web/settings/assets/{counter-N5EbHNfB.js => counter-Drr6VJPX.js} (89%) rename web/settings/assets/{counter-CWRQi4AZ.js => counter-SFsLwkGI.js} (88%) rename web/settings/assets/{counter-BLIDMuvJ.js => counter-YlkeS6Em.js} (97%) rename web/settings/assets/{counter-C9TFKAZS.js => counter-c-gM0svN.js} (92%) rename web/settings/assets/{counter-C5lMgFh-.js => counter-tDR8t7cN.js} (84%) rename web/settings/assets/{counter_consumption-DMUt0xYl.js => counter_consumption-Ds8Se4iG.js} (90%) rename web/settings/assets/{counter_maxstorage-BPEg9Ghm.js => counter_maxstorage-CTGozg4B.js} (90%) rename web/settings/assets/{counter_sm-CDb5bKKk.js => counter_sm-pNrELGGt.js} (95%) rename web/settings/assets/{device-NkTYsz5d.js => device-1i0aaNC5.js} (91%) rename web/settings/assets/{device-Akr-Eknl.js => device-B25qse-T.js} (89%) rename web/settings/assets/{device-iH7FSbYH.js => device-B2nna1eX.js} (92%) rename web/settings/assets/{device-DrU2EIBQ.js => device-B6C66MkE.js} (87%) rename web/settings/assets/{device-CkLXsAHJ.js => device-B8YHisMb.js} (91%) rename web/settings/assets/{device-D6aGb8Ub.js => device-B8aJ_v6z.js} (90%) rename web/settings/assets/{device-D89U0LFt.js => device-B9NfuMek.js} (91%) rename web/settings/assets/{device-jAbWqT5Y.js => device-BIqpmcKH.js} (94%) rename web/settings/assets/{device-DqksrJOB.js => device-BLQIpNFk.js} (89%) rename web/settings/assets/{device-CFpXw0Yl.js => device-BLcj2_F_.js} (91%) rename web/settings/assets/{device-CUOUt23w.js => device-BQJszAHJ.js} (92%) rename web/settings/assets/{device-JZQCuW65.js => device-BTX_U2ze.js} (92%) rename web/settings/assets/{device-zXBzry27.js => device-BTaZLgZX.js} (93%) rename web/settings/assets/{device-nVYvqlQr.js => device-BTcCLzsp.js} (91%) rename web/settings/assets/{device-DgWAC9VW.js => device-BVBeJeaC.js} (89%) rename web/settings/assets/{device-f9fnP_KM.js => device-Bb5dj_A8.js} (95%) rename web/settings/assets/{device-Djudo4I7.js => device-BgwGgK4V.js} (93%) rename web/settings/assets/{device-B--mch3K.js => device-BhtRgBIo.js} (87%) rename web/settings/assets/{device-fRG5_uqe.js => device-BleyPfYn.js} (89%) rename web/settings/assets/{device-I28jsbnC.js => device-BnbWTLTe.js} (92%) rename web/settings/assets/{device-B5RB3kWv.js => device-BnuAgz8z.js} (91%) rename web/settings/assets/{device-BuyzFtIE.js => device-BoRz-h9D.js} (87%) rename web/settings/assets/{device-BUqTyqae.js => device-BzspTrpe.js} (87%) rename web/settings/assets/{device-BKXFo9ZM.js => device-C-2I3miB.js} (89%) rename web/settings/assets/{device-MN8XeDgn.js => device-C3Gr4pTS.js} (89%) rename web/settings/assets/{device-D03RaIUC.js => device-CBCwFYPC.js} (86%) rename web/settings/assets/{device-t3OGij3M.js => device-CBmIgevJ.js} (90%) rename web/settings/assets/{device-DW4k7y4-.js => device-CGFCc-6g.js} (87%) rename web/settings/assets/{device-DriAiQTh.js => device-CJ46HRTm.js} (89%) rename web/settings/assets/{device-Fu4__SF-.js => device-CM1a3210.js} (92%) rename web/settings/assets/{device-CX454zoq.js => device-CMefLAy2.js} (92%) rename web/settings/assets/{device-Ge0sqbOD.js => device-CPQ3ylFo.js} (91%) rename web/settings/assets/{device-BcaNUjQJ.js => device-CQUgLNbO.js} (96%) rename web/settings/assets/{device-3lw2SJGr.js => device-CSpwX2A7.js} (87%) rename web/settings/assets/{device-CsogXwrs.js => device-CUpyrxDg.js} (92%) rename web/settings/assets/{device-CTvTEy9o.js => device-CbAHx9k5.js} (90%) rename web/settings/assets/{device-BqKfOrDp.js => device-ChIotMSG.js} (90%) rename web/settings/assets/{device-BdzJGZry.js => device-CkIrFtXj.js} (90%) rename web/settings/assets/{device-AZcRdq4E.js => device-ClJMpktq.js} (89%) rename web/settings/assets/{device-ZglIRb13.js => device-Cm2E-XJI.js} (91%) rename web/settings/assets/{device-DwiBUt_R.js => device-Co7SQh-h.js} (86%) rename web/settings/assets/{device-DLe5rJBe.js => device-CoDgAiu7.js} (89%) rename web/settings/assets/{device-D7cbEhiT.js => device-Com-9Ezv.js} (91%) rename web/settings/assets/{device-B5V0NVAx.js => device-CpwwCHau.js} (90%) rename web/settings/assets/{device-Cww7LhK6.js => device-CrCdeJXU.js} (94%) rename web/settings/assets/{device-BnxlY63G.js => device-CrgeMplj.js} (95%) rename web/settings/assets/{device-BzBPeuLF.js => device-CsoeSeMr.js} (89%) rename web/settings/assets/{device-C2Py-T5Y.js => device-CtUghXi3.js} (89%) rename web/settings/assets/{device-CZhiiWs3.js => device-CzcTMovl.js} (96%) rename web/settings/assets/{device-DsVqYSqX.js => device-D13_BqWq.js} (90%) rename web/settings/assets/{device-CrT-Q_nn.js => device-D2x0p5db.js} (89%) rename web/settings/assets/{device-CkVVX1eZ.js => device-D40Fwpnf.js} (92%) rename web/settings/assets/{device-DBsitINB.js => device-D5MbNowE.js} (89%) rename web/settings/assets/{device-C5UrZly-.js => device-D6o18n_v.js} (89%) rename web/settings/assets/{device-DjFgC3FH.js => device-D9AUjwae.js} (91%) rename web/settings/assets/{device-DiQe2xTf.js => device-DDpMd1e0.js} (89%) rename web/settings/assets/{device-C7Bv2cYw.js => device-DHl3UXR-.js} (91%) rename web/settings/assets/{device-DteT1ftK.js => device-DOt-8MOg.js} (91%) rename web/settings/assets/{device-B3JnKzHE.js => device-DRKX4yJQ.js} (91%) rename web/settings/assets/{device-BwzMCkFy.js => device-DcBHTsLN.js} (89%) rename web/settings/assets/{device-Bkj5ye31.js => device-Dlv7ykwm.js} (87%) rename web/settings/assets/{device-DwFvJqbg.js => device-DoaiL166.js} (94%) rename web/settings/assets/{device-D2Tob0bp.js => device-Dompx4E-.js} (91%) rename web/settings/assets/{device-D86kZoMv.js => device-DprB4FVH.js} (91%) rename web/settings/assets/{device-B-wUAE96.js => device-DsQ4isEF.js} (91%) rename web/settings/assets/{device-DZbbGgNj.js => device-JaS8E22E.js} (91%) rename web/settings/assets/{device-DntiDAu1.js => device-MHdIpW0v.js} (89%) rename web/settings/assets/{device-ByU2v5ON.js => device-ZJQLxXJQ.js} (91%) rename web/settings/assets/{device-NDckeTVc.js => device-azgVVgJz.js} (93%) rename web/settings/assets/{device-QTYXfo_2.js => device-bwNUNyPA.js} (92%) rename web/settings/assets/{device-CnqEvKdN.js => device-fOYVFPuS.js} (91%) rename web/settings/assets/{device-BIKPUvlF.js => device-fle-hzCB.js} (87%) rename web/settings/assets/{device-jjyvBZq_.js => device-gBv6mP6a.js} (90%) rename web/settings/assets/{device-Cu_Afhxv.js => device-hpmNmTOM.js} (91%) rename web/settings/assets/{device-BJXiIXwb.js => device-i8-KJ-Ws.js} (91%) rename web/settings/assets/{device-CT8s8OAc.js => device-lj_s42gJ.js} (92%) rename web/settings/assets/{device-BqQNuquo.js => device-m9d0bD8m.js} (89%) rename web/settings/assets/{device--YYhIuOQ.js => device-o47QZlML.js} (89%) rename web/settings/assets/{device-DBTWS1zk.js => device-qKrSKUqA.js} (88%) rename web/settings/assets/{device-DJRFYW8u.js => device-qj1Qycjk.js} (86%) rename web/settings/assets/{device-DvHqZZk9.js => device-sNas_qg7.js} (91%) rename web/settings/assets/{device-DuOQfDmg.js => device-xbfmehz1.js} (91%) rename web/settings/assets/{device-BquvfqB_.js => device-ytrtPsOb.js} (91%) rename web/settings/assets/{device-uMAcYGWD.js => device-zmmS4Msf.js} (89%) rename web/settings/assets/{device-i-cc32LZ.js => device-zuKsJodY.js} (94%) rename web/settings/assets/{displayTheme-TNZXyuYb.js => displayTheme-8rnKVIQ-.js} (92%) rename web/settings/assets/{displayTheme-BlhJueVr.js => displayTheme-Ci9Iypgk.js} (98%) rename web/settings/assets/{external_inverter-v9N8YFy_.js => external_inverter-YjGYqVNZ.js} (94%) rename web/settings/assets/{flexible_tariff-Cm72-IRP.js => flexible_tariff-B5DgZTcN.js} (98%) rename web/settings/assets/{flexible_tariff-CiZLGcR6.js => flexible_tariff-BxUfQCPe.js} (91%) rename web/settings/assets/{flexible_tariff-DDPKc8IS.js => flexible_tariff-C7Zs9PG4.js} (94%) rename web/settings/assets/{flexible_tariff-Cwtdxcdq.js => flexible_tariff-CToQtY_I.js} (93%) rename web/settings/assets/{flexible_tariff-DNlNO1mw.js => flexible_tariff-CZz477CJ.js} (88%) rename web/settings/assets/{flexible_tariff-BsviT0dT.js => flexible_tariff-Cbf1PwIN.js} (91%) rename web/settings/assets/{flexible_tariff-DJxxQB8n.js => flexible_tariff-Cf2nnN_M.js} (96%) rename web/settings/assets/{flexible_tariff-B5Q9TiRz.js => flexible_tariff-D0DTSvQT.js} (89%) rename web/settings/assets/{flexible_tariff-DAlfbB0X.js => flexible_tariff-DRHxWWnZ.js} (96%) rename web/settings/assets/{flexible_tariff-DUAjEH5H.js => flexible_tariff-Df7JtFhH.js} (97%) rename web/settings/assets/{flexible_tariff-D1CoTmby.js => flexible_tariff-SnZ0ndPZ.js} (90%) rename web/settings/assets/{grid_fee-vdJ6pKGQ.js => grid_fee-CGe3xbmI.js} (98%) rename web/settings/assets/{index-D_eD74fL.js => index-MVrRMMo2.js} (96%) rename web/settings/assets/{inverter-CTZt8kgW.js => inverter-3I2lkK_L.js} (96%) rename web/settings/assets/{inverter-DXCXYnzH.js => inverter-6IxocKCd.js} (89%) rename web/settings/assets/{inverter-DgFOEAbi.js => inverter-B4d2P0BT.js} (87%) rename web/settings/assets/{inverter-D8I4F0kA.js => inverter-BBOKdY28.js} (90%) rename web/settings/assets/{inverter-BjdsHouB.js => inverter-BFfNvObM.js} (88%) rename web/settings/assets/{inverter-AYViTSOI.js => inverter-BL7QHUdu.js} (88%) rename web/settings/assets/{inverter-oQ0jJI7j.js => inverter-BZuKTY7H.js} (88%) rename web/settings/assets/{inverter-CzPXa6it.js => inverter-BaXH_Y9w.js} (92%) rename web/settings/assets/{inverter-9vdoOv_r.js => inverter-BmdI7f5U.js} (87%) rename web/settings/assets/{inverter-CbPKaOUd.js => inverter-BmkLYd0W.js} (88%) rename web/settings/assets/{inverter-CDYkCixE.js => inverter-BseXGzyq.js} (79%) rename web/settings/assets/{inverter-DMLtmP39.js => inverter-C0TqYVpJ.js} (88%) rename web/settings/assets/{inverter-DSMmU0bk.js => inverter-C7XZ_DaO.js} (90%) rename web/settings/assets/{inverter-D8ojL_BV.js => inverter-C9IbTuw1.js} (90%) rename web/settings/assets/{inverter-ChBLwrbt.js => inverter-CBpmmUE2.js} (91%) rename web/settings/assets/{inverter-9SjCnF3G.js => inverter-CF16Zlup.js} (88%) rename web/settings/assets/{inverter-Ci3SfwIV.js => inverter-CJF4atrW.js} (87%) rename web/settings/assets/{inverter-B8AbK5LS.js => inverter-CZL0apch.js} (88%) rename web/settings/assets/{inverter-D0gOX-_P.js => inverter-C_8-RWzk.js} (90%) rename web/settings/assets/{inverter-DBFgbhVo.js => inverter-CiPvqfmh.js} (89%) rename web/settings/assets/{inverter-D8K2CFDi.js => inverter-CmIS6Rxf.js} (87%) rename web/settings/assets/{inverter-D9Thnvbs.js => inverter-DBEU38Ze.js} (87%) rename web/settings/assets/{inverter-8vpAsJFV.js => inverter-DJMrcxw5.js} (87%) rename web/settings/assets/{inverter-ACq6R7xB.js => inverter-DQZrmUb6.js} (88%) rename web/settings/assets/{inverter-0RghKIsx.js => inverter-Ddd-hTPo.js} (87%) rename web/settings/assets/{inverter-DJnr53ar.js => inverter-DnZJ8VZ2.js} (95%) rename web/settings/assets/{inverter-Dt-0cVGJ.js => inverter-DvXw3D7a.js} (79%) rename web/settings/assets/{inverter-CbwWOoTg.js => inverter-JBoSg5MK.js} (94%) rename web/settings/assets/{inverter-DIStW2Xn.js => inverter-Nqq-ojGV.js} (93%) rename web/settings/assets/{inverter-YRLdoDau.js => inverter-Tudrcp8A.js} (86%) rename web/settings/assets/{inverter-CQscUjQi.js => inverter-ecQY2yVW.js} (91%) rename web/settings/assets/{inverter-B-NdAxCX.js => inverter-iIz-rAKJ.js} (88%) rename web/settings/assets/{inverter-hdDYm9Uf.js => inverter-nJJk1YCc.js} (87%) rename web/settings/assets/{inverter-BbajKr0y.js => inverter-pZ3BL9gj.js} (87%) rename web/settings/assets/{inverter_maxstorage-DeCO1HV-.js => inverter_maxstorage-21D0TjaH.js} (88%) rename web/settings/assets/{inverter_production_meter-Coy7d4cu.js => inverter_production_meter-CuurhLpB.js} (95%) rename web/settings/assets/{inverter_secondary-D3yQDLVg.js => inverter_secondary-D81T0iKO.js} (92%) rename web/settings/assets/{io_action-B9LeEnBs.js => io_action-B4e-bIRM.js} (96%) rename web/settings/assets/{io_action-JT1W0Hwl.js => io_action-CMnVuT9A.js} (93%) rename web/settings/assets/{io_action-Des8D82O.js => io_action-Cfwq0HWR.js} (96%) rename web/settings/assets/{io_action-BWKUJ45t.js => io_action-iOBI7on-.js} (92%) rename web/settings/assets/{io_device-ByQHLYHY.js => io_device-CUm9h4iq.js} (95%) rename web/settings/assets/{io_device-BBOT5GiC.js => io_device-DCk4IaIJ.js} (92%) rename web/settings/assets/{io_device-mvR1tJtP.js => io_device-Df6mTI7P.js} (90%) rename web/settings/assets/{monitoring-oAy7LKTI.js => monitoring-CKhMIifd.js} (93%) rename web/settings/assets/{vehicle-BV1RfRrF.js => vehicle-50Jll49o.js} (97%) rename web/settings/assets/{vehicle-ClSMB-k7.js => vehicle-B202xWbb.js} (91%) rename web/settings/assets/{vehicle-ADVayxu-.js => vehicle-BAqmA1wd.js} (94%) rename web/settings/assets/{vehicle-TpGqMVx6.js => vehicle-BGNpvKRV.js} (96%) rename web/settings/assets/{vehicle-Br3C3ndJ.js => vehicle-BNaGIvQj.js} (93%) rename web/settings/assets/{vehicle-BtE1rfvQ.js => vehicle-BcbXWLFP.js} (89%) rename web/settings/assets/{vehicle-CUR0E3wk.js => vehicle-Bi2svxY9.js} (89%) rename web/settings/assets/{vehicle-DT7Lg5C4.js => vehicle-Bwbyv3mH.js} (92%) rename web/settings/assets/{vehicle-D363Q7cB.js => vehicle-BzXDEPgk.js} (97%) rename web/settings/assets/{vehicle-DTOXQ3ag.js => vehicle-CFiyg2u6.js} (93%) rename web/settings/assets/{vehicle-uZMeCx8f.js => vehicle-CHu8UU7R.js} (94%) rename web/settings/assets/{vehicle-lU7Zuadi.js => vehicle-CMvQ9Clb.js} (93%) rename web/settings/assets/{vehicle-uRvyo-2W.js => vehicle-CWdezBG4.js} (94%) rename web/settings/assets/{vehicle-7kCruC46.js => vehicle-Cz4gTSeZ.js} (94%) rename web/settings/assets/{vehicle-XMzQc45d.js => vehicle-Dafx24UN.js} (94%) rename web/settings/assets/{vehicle-BBQyN4nf.js => vehicle-Dciyc5Tc.js} (96%) rename web/settings/assets/{vehicle-CH_9CnU6.js => vehicle-DoLMhCj3.js} (93%) rename web/settings/assets/{vehicle-DDs9o72d.js => vehicle-Dy-1WneA.js} (96%) rename web/settings/assets/{vehicle-DjrtYuS-.js => vehicle-QEOZLyuW.js} (93%) rename web/settings/assets/{vehicle-CO6j-SQn.js => vehicle-QRfiUykG.js} (87%) rename web/settings/assets/{vehicle-Bzw0t3uD.js => vehicle-o-3CCJWH.js} (95%) rename web/settings/assets/{webTheme-CY7Mp7o_.js => webTheme-C6_Ayx15.js} (88%) rename web/settings/assets/{webTheme-CHG5h5Rr.js => webTheme-CU5jN01o.js} (94%) rename web/settings/assets/{webTheme-BZXitWVh.js => webTheme-Ckx7MxLF.js} (98%) diff --git a/web/settings/assets/ActiveBatControlConfiguration-DyGDJFQ0.js b/web/settings/assets/ActiveBatControlConfiguration-DHcxvCYP.js similarity index 99% rename from web/settings/assets/ActiveBatControlConfiguration-DyGDJFQ0.js rename to web/settings/assets/ActiveBatControlConfiguration-DHcxvCYP.js index cf4b3a27bc..b9ad2b64f3 100644 --- a/web/settings/assets/ActiveBatControlConfiguration-DyGDJFQ0.js +++ b/web/settings/assets/ActiveBatControlConfiguration-DHcxvCYP.js @@ -1 +1 @@ -import{C as z}from"./index-D_eD74fL.js";import{F as V,l as $,a4 as C,ag as E,ah as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as N,l as m,k as o,e as l,x as c,m as i,q as r,A as a,u as s,y as b,D as k,K as M,L as U,J as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";$.add(C,E,F);const D={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:V},mixins:[z],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/get/max_charge_power",writeable:!0},{topic:"openWB/bat/+/get/max_discharge_power",writeable:!0},{topic:"openWB/bat/+/get/power_limit_controllable",writeable:!1},{topic:"openWB/bat/config/bat_control_activated",writeable:!0},{topic:"openWB/bat/config/bat_control_max_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_min_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_permitted",writeable:!0},{topic:"openWB/bat/config/charge_limit",writeable:!0},{topic:"openWB/bat/config/manual_mode",writeable:!0},{topic:"openWB/bat/config/power_limit_condition",writeable:!0},{topic:"openWB/bat/config/power_limit_mode",writeable:!0},{topic:"openWB/bat/config/price_charge_activated",writeable:!0},{topic:"openWB/bat/config/price_limit",writeable:!0},{topic:"openWB/bat/config/price_limit_activated",writeable:!0},{topic:"openWB/bat/get/power_limit_controllable",writeable:!1},{topic:"openWB/general/chargemode_config/pv_charging/bat_mode",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/max_bat_soc",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/min_bat_soc",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(t){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",t)}},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")}},controllableBatteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterControllableBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))}},containsNormalBatteries:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?!1:Object.keys(this.filterNormalBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))).length>0}}},methods:{getLimitControllable(t){return this.$store.state.mqtt["openWB/bat/"+t+"/get/power_limit_controllable"]},filterComponentsByType(t,e){return Object.keys(t).filter(d=>t[d].type.includes(e)).reduce((d,S)=>({...d,[S]:t[S]}),{})},filterControllableBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&t[e].configuration.power_limit_controllable===!0).reduce((e,d)=>({...e,[d]:t[d]}),{})},filterNormalBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&this.getLimitControllable(t[e].id)===!1).reduce((e,d)=>({...e,[d]:t[d]}),{})}}},L={class:"batteryConfig"},P={name:"batteryConfigForm"},A={key:0},R={key:1},H={key:0},T={key:1},O={key:2},I={key:0},J={key:0},j={key:1},G={key:0},K={key:0},Q={key:0},X={key:1},Y={key:2},Z={key:0},x={key:1},ee={key:2},te={key:0},ne={key:0},re={key:1},ie={key:2},ae={key:1},oe={key:2},le={key:1};function se(t,e,d,S,de,p){const u=m("openwb-base-alert"),f=m("font-awesome-icon"),g=m("openwb-base-button-group-input"),v=m("openwb-base-range-input"),h=m("openwb-base-heading"),_=m("openwb-base-number-input"),w=m("openwb-base-card"),y=m("openwb-base-submit-buttons");return o(),l("div",L,[c("form",P,[i(w,{title:"Passive Speicherbeachtung (PV)"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",A,[i(u,{subtype:"info"},{default:r(()=>[...e[21]||(e[21]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",R,[i(u,{subtype:"info"},{default:r(()=>[...e[22]||(e[22]=[a(' Die Regelmodi der Speicherbeachtung erfolgen "passiv" durch Anpassung der Fahrzeug-Ladeleistung. PV-Überschuss wird, je nach Konfiguration, entweder dem Fahrzeug zugeteilt oder dem Speicher überlassen. Netz- und Speicherbezug wird, sofern nicht anders konfiguriert, vermieden. ',-1)])]),_:1}),i(g,{modelValue:p.batMode,"onUpdate:modelValue":e[0]||(e[0]=n=>p.batMode=n),title:"Ladepriorität",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","car-side"]}),e[23]||(e[23]=a(" Fahrzeuge ",-1))]),"label-bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-car-battery"]}),e[24]||(e[24]=a(" Speicher ",-1))]),"label-min_soc_bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-battery-half"]}),e[25]||(e[25]=a(" Nach SoC des Speichers ",-1))]),help:r(()=>[p.batMode==="ev_mode"?(o(),l("div",H," Der gesamte Überschuss wird in das EV geladen. Wird mehr Überschuss erzeugt als die Fahrzeuge abnehmen, findet auch eine Speicherladung statt. ")):s("",!0),p.batMode==="bat_mode"?(o(),l("div",T," Der gesamte Überschuss wird 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. ")):s("",!0),p.batMode==="min_soc_bat_mode"?(o(),l("div",O,' Verhält sich bis zum Erreichen des Mindest-SoC wie "Ladepriorität Speicher" und oberhalb des Mindest-SoC wie "Ladepriorität Fahrzeuge". Die maximale Leistung der Speicherbe- und entladung lässt sich hier festlegen. ')):s("",!0)]),_:1},8,["modelValue"]),p.batMode==="min_soc_bat_mode"?(o(),l("div",I,[i(v,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[1]||(e[1]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"][...e[26]||(e[26]=[a(" Unterhalb des Mindest-SoC wird vorhandener PV-Überschuss bevorzugt in den Speicher geladen. Oberhalb des Mindest-SoC hat die Fahrzeugladung Priorität. ",-1)])]),_:1},8,["model-value"]),i(v,{title:"Maximal-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"],"onUpdate:modelValue":e[2]||(e[2]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]>t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]?t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]:n)))},{help:r(()=>[...e[27]||(e[27]=[a(" Wird der Maximal-SoC überschritten, darf der Speicher bis zum Erreichen des Mindest-SoC zur Fahrzeugladung mitbenutzt werden. ",-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]==t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]?(o(),b(u,{key:0,subtype:"info"},{default:r(()=>[...e[28]||(e[28]=[a(" Bei identischen SoC Angaben findet keine Speicherhysterese statt. ",-1)])]),_:1})):s("",!0),i(h,null,{default:r(()=>[...e[29]||(e[29]=[a(" Speicher-Ladeleistung unterhalb Mindest-SoC ",-1)])]),_:1}),i(g,{title:"Nur eine bestimmte Ladeleistung reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?{name:"help",fn:r(()=>[e[30]||(e[30]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten!",-1)),e[31]||(e[31]=c("br",null,null,-1)),e[32]||(e[32]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er mit der hier eingestellten Speicherladeleistung geladen. Verbleibender Überschuss wird in die Fahrzeuge geladen. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[33]||(e[33]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er priorisiert geladen. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(o(),b(_,{key:1,title:"Reservierte Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",n*1e3))},null,8,["model-value"])):s("",!0),i(h,null,{default:r(()=>[...e[34]||(e[34]=[a(" Speicher-SoC oberhalb Maximal-SoC ",-1)])]),_:1}),i(g,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?{name:"help",fn:r(()=>[e[35]||(e[35]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Entladeleistung des Speichers nicht überschreiten! Wird der Maximal-SoC überschritten, wird die PV-Ladung mit der hier eingestellten Speicherentladeleistung unterstützt. Der Speicher darf bis zum Mindest-SoC entladen werden. Die erlaubte Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[36]||(e[36]=a(" Oberhalb des Maximal-SoC wird der Speicher nicht für die Fahrzeugladung mitgenutzt. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(o(),b(_,{key:2,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",n*1e3))},null,8,["model-value"])):s("",!0)])):s("",!0)]))]),_:1}),i(w,{title:"Aktive Speichersteuerung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",J,[i(u,{subtype:"info"},{default:r(()=>[...e[37]||(e[37]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",j,[i(u,{subtype:"info",class:"mb-3"},{default:r(()=>[e[38]||(e[38]=c("p",null,[a(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht vom Hersteller freigegebene Informationen beinhalten."),c("br"),a(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),i(g,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateState("openWB/bat/config/bat_control_permitted",n))},null,8,["model-value"])]),_:1}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(o(),l("div",G,[i(h,{class:"mt-0"},{default:r(()=>[...e[39]||(e[39]=[a(" Regelmodi der aktiven Speichersteuerung ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[40]||(e[40]=[a(" Die aktive Speichersteuerung kann Speicherentladung begrenzen oder den Speicher zur Ladung zwingen. Die erlaubte Entladeleistung des Speichers (Speicherbeachtung PV) wird bei aktiver Speichersteuerung überschrieben, da Speicherentladung unter Umständen aktiv begrenzt wird. ",-1)])]),_:1}),i(g,{title:"Speicher aktiv Steuern",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_activated"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/bat/config/bat_control_activated",n))},k({_:2},[t.$store.state.mqtt["openWB/bat/config/bat_control_activated"]?{name:"help",fn:r(()=>[e[41]||(e[41]=a(" Speicher wird aktiv gesteuert. Grundlage ist die nachfolgende Konfiguration. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[42]||(e[42]=a(" Speicher wird nicht aktiv gesteuert, sondern regelt eigenständig.",-1)),e[43]||(e[43]=c("br",null,null,-1)),e[44]||(e[44]=a(" Es greifen die Regelparameter der Speicherbeachtung. ",-1))]),key:"1"}]),1032,["model-value"]),i(w,{title:"Aktiv steuerbare Speicher"},{default:r(()=>[p.containsNormalBatteries?(o(),b(u,{key:0,subtype:"danger"},{default:r(()=>[...e[45]||(e[45]=[a(" Es sind weitere, nicht steuerbare Speicher im System vorhanden. Solche Speicher führen gewöhnlich eigenständig eine Nullpunktausregelung durch, versuchen also Überschuss zu speichern (Einspeisung zu verhindern) und Netzbezug durch eigene Entladung zu vermeiden.",-1),c("br",null,null,-1),a(" Ein solcher Speicher versucht ebenso aktiv gesteuerte Speicher auszugleichen. ",-1)])]),_:1})):s("",!0),(o(!0),l(M,null,U(p.batteryConfigs,(n,B)=>(o(),l("div",{key:B},[t.$store.state.mqtt["openWB/bat/"+n.id+"/get/power_limit_controllable"]===!0?(o(),b(w,{key:B,title:n.name+" (ID: "+n.id+")",collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[i(f,{icon:["fas","fa-car-battery"]}),a(" "+q(n.name)+" (ID: "+q(n.id)+") ",1)]),default:r(()=>[(o(),b(_,{key:B,title:"Maximale Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_discharge_power"]/-1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_discharge_power",W*-1e3)},null,8,["model-value","onUpdate:modelValue"])),(o(),b(_,{key:B,title:"Maximale Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_charge_power"]/1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_charge_power",W*1e3)},null,8,["model-value","onUpdate:modelValue"]))]),_:2},1032,["title"])):s("",!0)]))),128))]),_:1}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(o(),l("div",K,[i(v,{title:"Untere Entladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"],"onUpdate:modelValue":e[9]||(e[9]=n=>(t.updateState("openWB/bat/config/bat_control_min_soc",n),t.updateState("openWB/bat/config/bat_control_max_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"][...e[46]||(e[46]=[a(' Speicher, welche durch die aktive Steuerung entladen werden, schalten unterhalb des eingestellten SoC auf "Eigenregelung", um mögliche Tiefentladung zu verhindern. Die aktive Ladung ist weiterhin möglich. ',-1)])]),_:1},8,["model-value"]),i(v,{title:"Obere Ladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"],"onUpdate:modelValue":e[10]||(e[10]=n=>(t.updateState("openWB/bat/config/bat_control_max_soc",n),t.updateState("openWB/bat/config/bat_control_min_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"]>t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]?t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]:n)))},{help:r(()=>[...e[47]||(e[47]=[a(" Speicher, welche aktiv geladen werden, sperren oberhalb des eingestellten SoC die Entladung oder schalten auf Eigenregelung des Speichers. ",-1)])]),_:1},8,["model-value"]),i(g,{title:"Regellimit",buttons:[{buttonValue:"mode_no_discharge",text:"volle Entladesperre"},{buttonValue:"mode_discharge_home_consumption",text:"Nur Hausverbrauch entladen"},{buttonValue:"mode_charge_pv_production",text:"PV-Ertrag speichern"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateState("openWB/bat/config/power_limit_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_no_discharge"?(o(),l("div",Q," Die Speicherentladung wird komplett gesperrt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom und ggfs. vorhandenen PV-Überschuss versorgt. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_discharge_home_consumption"?(o(),l("div",X,' Es wird nur der Hausverbrauch durch den Speicher ausgeglichen. Die Speicherentladung in Fahrzeuge wird komplett gesperrt! Fahrzeugladung, die nicht durch PV-Überschuss gedeckt werden kann, erzeugt Netzbezug statt Speicherentladung. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_charge_pv_production"?(o(),l("div",Y," PV-Ertrag wird vorrangig in den Speicher geladen (aktive Ladung)! Weiterer Verbrauch (Hausverbrauch/ Fahrzeugladung) erzeugt Netzbezug. ")):s("",!0)]),_:1},8,["model-value"]),i(g,{title:"Regelbedingung",buttons:[{buttonValue:"manual",text:"Manuell"},{buttonValue:"vehicle_charging",text:"Fahrzeugladung aktiv"},{buttonValue:"price_limit",text:"Preisgrenze"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_condition"],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateState("openWB/bat/config/power_limit_condition",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",Z," Der Speicher regelt direkt entsprechend der manuellen Einstellung. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",x," Das oben eingestellte Regellimit wird angewendet, sobald ein oder mehrere Fahrzeuge Laden. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",ee," Regelung nach Preisgrenze bei variablen Strompreisen. ")):s("",!0)]),_:1},8,["model-value"]),e[55]||(e[55]=c("hr",null,null,-1)),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",te,[i(h,{class:"mt-0"},{default:r(()=>[...e[48]||(e[48]=[a(" Manuell ",-1)])]),_:1}),i(g,{title:"Speichersteuerung",buttons:[{buttonValue:"manual_disable",text:"Aus"},{buttonValue:"manual_limit",text:"Regellimit anwenden"},{buttonValue:"manual_charge",text:"Speicher laden"}],"model-value":t.$store.state.mqtt["openWB/bat/config/manual_mode"],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateState("openWB/bat/config/manual_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_disable"?(o(),l("div",ne," Aktive Speichersteuerung deaktivieren (Eigenregelung des Speichers). ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_limit"?(o(),l("div",re," Es wird das weiter oben konfigurierte Regellimit angewendet. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_charge"?(o(),l("div",ie," Alle Speicher werden mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ")):s("",!0)]),_:1},8,["model-value"])])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",ae,[i(h,{class:"mt-0"},{default:r(()=>[...e[49]||(e[49]=[a(" Fahrzeugladung aktiv ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[50]||(e[50]=[a(" Dieser Modus bietet keine weiteren Einstellungen. Sobald mindestens ein Fahrzeug lädt greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1})])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",oe,[i(h,{class:"mt-0"},{default:r(()=>[...e[51]||(e[51]=[a(" Preisgrenze (Variable Strompreise) ",-1)])]),_:1}),!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(o(),b(u,{key:0,subtype:"warning"},{default:r(()=>[...e[52]||(e[52]=[a(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter schaltet der Speicher auf Eigenregelung. ",-1)])]),_:1})):s("",!0),i(g,{title:"Preisgrenze für Netzbezug statt Speicherentladung",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_limit_activated"],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateState("openWB/bat/config/price_limit_activated",n))},{help:r(()=>[...e[53]||(e[53]=[a(" Fällt der variable Strompreis unter diesen Wert, greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/price_limit"]*1e5,"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/bat/config/price_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"]),i(g,{title:"Preisgrenze für Speicherladung mit Netzbezug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_charge_activated"],"onUpdate:modelValue":e[16]||(e[16]=n=>t.updateState("openWB/bat/config/price_charge_activated",n))},{help:r(()=>[...e[54]||(e[54]=[a(" Fällt der variable Strompreis unter diesen Wert werden alle Speicher mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Speicherladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/charge_limit"]*1e5,"onUpdate:modelValue":e[17]||(e[17]=n=>t.updateState("openWB/bat/config/charge_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"])])):s("",!0)])):(o(),l("div",le,[i(u,{subtype:"info"},{default:r(()=>[...e[56]||(e[56]=[a(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])]),_:1})]))])):s("",!0)]))]),_:1}),i(y,{"form-name":"batteryConfigForm",onSave:e[18]||(e[18]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[19]||(e[19]=n=>t.$emit("reset")),onDefaults:e[20]||(e[20]=n=>t.$emit("defaults"))})])])}const he=N(D,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ActiveBatControlConfiguration.vue"]]);export{he as default}; +import{C as z}from"./index-MVrRMMo2.js";import{F as V,l as $,a4 as C,ag as E,ah as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as N,l as m,k as o,e as l,x as c,m as i,q as r,A as a,u as s,y as b,D as k,K as M,L as U,J as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";$.add(C,E,F);const D={name:"OpenwbPVChargeConfigView",components:{FontAwesomeIcon:V},mixins:[z],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/get/max_charge_power",writeable:!0},{topic:"openWB/bat/+/get/max_discharge_power",writeable:!0},{topic:"openWB/bat/+/get/power_limit_controllable",writeable:!1},{topic:"openWB/bat/config/bat_control_activated",writeable:!0},{topic:"openWB/bat/config/bat_control_max_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_min_soc",writeable:!0},{topic:"openWB/bat/config/bat_control_permitted",writeable:!0},{topic:"openWB/bat/config/charge_limit",writeable:!0},{topic:"openWB/bat/config/manual_mode",writeable:!0},{topic:"openWB/bat/config/power_limit_condition",writeable:!0},{topic:"openWB/bat/config/power_limit_mode",writeable:!0},{topic:"openWB/bat/config/price_charge_activated",writeable:!0},{topic:"openWB/bat/config/price_limit",writeable:!0},{topic:"openWB/bat/config/price_limit_activated",writeable:!0},{topic:"openWB/bat/get/power_limit_controllable",writeable:!1},{topic:"openWB/general/chargemode_config/pv_charging/bat_mode",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/max_bat_soc",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/min_bat_soc",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{batMode:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_mode"]},set(t){this.updateState("openWB/general/chargemode_config/pv_charging/bat_mode",t)}},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")}},controllableBatteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterControllableBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))}},containsNormalBatteries:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?!1:Object.keys(this.filterNormalBatteries(this.getWildcardTopics("openWB/system/device/+/component/+/config"))).length>0}}},methods:{getLimitControllable(t){return this.$store.state.mqtt["openWB/bat/"+t+"/get/power_limit_controllable"]},filterComponentsByType(t,e){return Object.keys(t).filter(d=>t[d].type.includes(e)).reduce((d,S)=>({...d,[S]:t[S]}),{})},filterControllableBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&t[e].configuration.power_limit_controllable===!0).reduce((e,d)=>({...e,[d]:t[d]}),{})},filterNormalBatteries(t){return Object.keys(t).filter(e=>t[e].type.includes("bat")&&this.getLimitControllable(t[e].id)===!1).reduce((e,d)=>({...e,[d]:t[d]}),{})}}},L={class:"batteryConfig"},P={name:"batteryConfigForm"},A={key:0},R={key:1},H={key:0},T={key:1},O={key:2},I={key:0},J={key:0},j={key:1},G={key:0},K={key:0},Q={key:0},X={key:1},Y={key:2},Z={key:0},x={key:1},ee={key:2},te={key:0},ne={key:0},re={key:1},ie={key:2},ae={key:1},oe={key:2},le={key:1};function se(t,e,d,S,de,p){const u=m("openwb-base-alert"),f=m("font-awesome-icon"),g=m("openwb-base-button-group-input"),v=m("openwb-base-range-input"),h=m("openwb-base-heading"),_=m("openwb-base-number-input"),w=m("openwb-base-card"),y=m("openwb-base-submit-buttons");return o(),l("div",L,[c("form",P,[i(w,{title:"Passive Speicherbeachtung (PV)"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",A,[i(u,{subtype:"info"},{default:r(()=>[...e[21]||(e[21]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",R,[i(u,{subtype:"info"},{default:r(()=>[...e[22]||(e[22]=[a(' Die Regelmodi der Speicherbeachtung erfolgen "passiv" durch Anpassung der Fahrzeug-Ladeleistung. PV-Überschuss wird, je nach Konfiguration, entweder dem Fahrzeug zugeteilt oder dem Speicher überlassen. Netz- und Speicherbezug wird, sofern nicht anders konfiguriert, vermieden. ',-1)])]),_:1}),i(g,{modelValue:p.batMode,"onUpdate:modelValue":e[0]||(e[0]=n=>p.batMode=n),title:"Ladepriorität",buttons:[{buttonValue:"ev_mode"},{buttonValue:"bat_mode"},{buttonValue:"min_soc_bat_mode"}]},{"label-ev_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","car-side"]}),e[23]||(e[23]=a(" Fahrzeuge ",-1))]),"label-bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-car-battery"]}),e[24]||(e[24]=a(" Speicher ",-1))]),"label-min_soc_bat_mode":r(()=>[i(f,{"fixed-width":"",icon:["fas","fa-battery-half"]}),e[25]||(e[25]=a(" Nach SoC des Speichers ",-1))]),help:r(()=>[p.batMode==="ev_mode"?(o(),l("div",H," Der gesamte Überschuss wird in das EV geladen. Wird mehr Überschuss erzeugt als die Fahrzeuge abnehmen, findet auch eine Speicherladung statt. ")):s("",!0),p.batMode==="bat_mode"?(o(),l("div",T," Der gesamte Überschuss wird 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. ")):s("",!0),p.batMode==="min_soc_bat_mode"?(o(),l("div",O,' Verhält sich bis zum Erreichen des Mindest-SoC wie "Ladepriorität Speicher" und oberhalb des Mindest-SoC wie "Ladepriorität Fahrzeuge". Die maximale Leistung der Speicherbe- und entladung lässt sich hier festlegen. ')):s("",!0)]),_:1},8,["modelValue"]),p.batMode==="min_soc_bat_mode"?(o(),l("div",I,[i(v,{title:"Mindest-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"],"onUpdate:modelValue":e[1]||(e[1]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"][...e[26]||(e[26]=[a(" Unterhalb des Mindest-SoC wird vorhandener PV-Überschuss bevorzugt in den Speicher geladen. Oberhalb des Mindest-SoC hat die Fahrzeugladung Priorität. ",-1)])]),_:1},8,["model-value"]),i(v,{title:"Maximal-SoC des Speichers",min:0,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"],"onUpdate:modelValue":e[2]||(e[2]=n=>(t.updateState("openWB/general/chargemode_config/pv_charging/max_bat_soc",n),t.updateState("openWB/general/chargemode_config/pv_charging/min_bat_soc",t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]>t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]?t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]:n)))},{help:r(()=>[...e[27]||(e[27]=[a(" Wird der Maximal-SoC überschritten, darf der Speicher bis zum Erreichen des Mindest-SoC zur Fahrzeugladung mitbenutzt werden. ",-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/min_bat_soc"]==t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/max_bat_soc"]?(o(),b(u,{key:0,subtype:"info"},{default:r(()=>[...e[28]||(e[28]=[a(" Bei identischen SoC Angaben findet keine Speicherhysterese statt. ",-1)])]),_:1})):s("",!0),i(h,null,{default:r(()=>[...e[29]||(e[29]=[a(" Speicher-Ladeleistung unterhalb Mindest-SoC ",-1)])]),_:1}),i(g,{title:"Nur eine bestimmte Ladeleistung reservieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?{name:"help",fn:r(()=>[e[30]||(e[30]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Ladeleistung des Speichers nicht überschreiten!",-1)),e[31]||(e[31]=c("br",null,null,-1)),e[32]||(e[32]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er mit der hier eingestellten Speicherladeleistung geladen. Verbleibender Überschuss wird in die Fahrzeuge geladen. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[33]||(e[33]=a(" Befindet sich der Speicher unterhalb des Mindest-SoC, wird er priorisiert geladen. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve_active"]?(o(),b(_,{key:1,title:"Reservierte Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_reserve"]/1e3,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_reserve",n*1e3))},null,8,["model-value"])):s("",!0),i(h,null,{default:r(()=>[...e[34]||(e[34]=[a(" Speicher-SoC oberhalb Maximal-SoC ",-1)])]),_:1}),i(g,{title:"Entladung des Speichers erlauben",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge_active",n))},k({_:2},[t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?{name:"help",fn:r(()=>[e[35]||(e[35]=a(" ACHTUNG: Der hier eingestellte Wert darf die maximale Entladeleistung des Speichers nicht überschreiten! Wird der Maximal-SoC überschritten, wird die PV-Ladung mit der hier eingestellten Speicherentladeleistung unterstützt. Der Speicher darf bis zum Mindest-SoC entladen werden. Die erlaubte Entladeleistung des Speichers wird dem Überschuss zum Erreichen der Einschaltschwelle hinzugerechnet. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[36]||(e[36]=a(" Oberhalb des Maximal-SoC wird der Speicher nicht für die Fahrzeugladung mitgenutzt. ",-1))]),key:"1"}]),1032,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge_active"]?(o(),b(_,{key:2,title:"Erlaubte Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/bat_power_discharge"]/1e3,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateState("openWB/general/chargemode_config/pv_charging/bat_power_discharge",n*1e3))},null,8,["model-value"])):s("",!0)])):s("",!0)]))]),_:1}),i(w,{title:"Aktive Speichersteuerung"},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),l("div",J,[i(u,{subtype:"info"},{default:r(()=>[...e[37]||(e[37]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(o(),l("div",j,[i(u,{subtype:"info",class:"mb-3"},{default:r(()=>[e[38]||(e[38]=c("p",null,[a(" Die aktive Speichersteuerung durch openWB basiert auf öffentlich zugänglichen Informationen zu den verschiedenen Speichersystemen. Diese können auch nicht vom Hersteller freigegebene Informationen beinhalten."),c("br"),a(' Fragen bezüglich der Gewährleistung und Hardwarekompatibilität sind vor der Nutzung mit dem Hersteller zu klären. openWB übernimmt keine Haftung für Schäden, welche aus der Nutzung der "aktiven Speichersteuerung" entstehen. ')],-1)),i(g,{title:"Hinweise zur aktiven Speichersteuerung gelesen und akzeptiert",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateState("openWB/bat/config/bat_control_permitted",n))},null,8,["model-value"])]),_:1}),t.$store.state.mqtt["openWB/bat/config/bat_control_permitted"]===!0?(o(),l("div",G,[i(h,{class:"mt-0"},{default:r(()=>[...e[39]||(e[39]=[a(" Regelmodi der aktiven Speichersteuerung ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[40]||(e[40]=[a(" Die aktive Speichersteuerung kann Speicherentladung begrenzen oder den Speicher zur Ladung zwingen. Die erlaubte Entladeleistung des Speichers (Speicherbeachtung PV) wird bei aktiver Speichersteuerung überschrieben, da Speicherentladung unter Umständen aktiv begrenzt wird. ",-1)])]),_:1}),i(g,{title:"Speicher aktiv Steuern",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_activated"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/bat/config/bat_control_activated",n))},k({_:2},[t.$store.state.mqtt["openWB/bat/config/bat_control_activated"]?{name:"help",fn:r(()=>[e[41]||(e[41]=a(" Speicher wird aktiv gesteuert. Grundlage ist die nachfolgende Konfiguration. ",-1))]),key:"0"}:{name:"help",fn:r(()=>[e[42]||(e[42]=a(" Speicher wird nicht aktiv gesteuert, sondern regelt eigenständig.",-1)),e[43]||(e[43]=c("br",null,null,-1)),e[44]||(e[44]=a(" Es greifen die Regelparameter der Speicherbeachtung. ",-1))]),key:"1"}]),1032,["model-value"]),i(w,{title:"Aktiv steuerbare Speicher"},{default:r(()=>[p.containsNormalBatteries?(o(),b(u,{key:0,subtype:"danger"},{default:r(()=>[...e[45]||(e[45]=[a(" Es sind weitere, nicht steuerbare Speicher im System vorhanden. Solche Speicher führen gewöhnlich eigenständig eine Nullpunktausregelung durch, versuchen also Überschuss zu speichern (Einspeisung zu verhindern) und Netzbezug durch eigene Entladung zu vermeiden.",-1),c("br",null,null,-1),a(" Ein solcher Speicher versucht ebenso aktiv gesteuerte Speicher auszugleichen. ",-1)])]),_:1})):s("",!0),(o(!0),l(M,null,U(p.batteryConfigs,(n,B)=>(o(),l("div",{key:B},[t.$store.state.mqtt["openWB/bat/"+n.id+"/get/power_limit_controllable"]===!0?(o(),b(w,{key:B,title:n.name+" (ID: "+n.id+")",collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[i(f,{icon:["fas","fa-car-battery"]}),a(" "+q(n.name)+" (ID: "+q(n.id)+") ",1)]),default:r(()=>[(o(),b(_,{key:B,title:"Maximale Entladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_discharge_power"]/-1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_discharge_power",W*-1e3)},null,8,["model-value","onUpdate:modelValue"])),(o(),b(_,{key:B,title:"Maximale Ladeleistung",min:.1,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/get/max_charge_power"]/1e3,"onUpdate:modelValue":W=>t.updateState("openWB/bat/"+n.id+"/get/max_charge_power",W*1e3)},null,8,["model-value","onUpdate:modelValue"]))]),_:2},1032,["title"])):s("",!0)]))),128))]),_:1}),t.$store.state.mqtt["openWB/bat/get/power_limit_controllable"]===!0?(o(),l("div",K,[i(v,{title:"Untere Entladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"],"onUpdate:modelValue":e[9]||(e[9]=n=>(t.updateState("openWB/bat/config/bat_control_min_soc",n),t.updateState("openWB/bat/config/bat_control_max_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"][...e[46]||(e[46]=[a(' Speicher, welche durch die aktive Steuerung entladen werden, schalten unterhalb des eingestellten SoC auf "Eigenregelung", um mögliche Tiefentladung zu verhindern. Die aktive Ladung ist weiterhin möglich. ',-1)])]),_:1},8,["model-value"]),i(v,{title:"Obere Ladeschranke",min:5,max:100,step:1,unit:"%",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"],"onUpdate:modelValue":e[10]||(e[10]=n=>(t.updateState("openWB/bat/config/bat_control_max_soc",n),t.updateState("openWB/bat/config/bat_control_min_soc",t.$store.state.mqtt["openWB/bat/config/bat_control_max_soc"]>t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]?t.$store.state.mqtt["openWB/bat/config/bat_control_min_soc"]:n)))},{help:r(()=>[...e[47]||(e[47]=[a(" Speicher, welche aktiv geladen werden, sperren oberhalb des eingestellten SoC die Entladung oder schalten auf Eigenregelung des Speichers. ",-1)])]),_:1},8,["model-value"]),i(g,{title:"Regellimit",buttons:[{buttonValue:"mode_no_discharge",text:"volle Entladesperre"},{buttonValue:"mode_discharge_home_consumption",text:"Nur Hausverbrauch entladen"},{buttonValue:"mode_charge_pv_production",text:"PV-Ertrag speichern"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_mode"],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateState("openWB/bat/config/power_limit_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_no_discharge"?(o(),l("div",Q," Die Speicherentladung wird komplett gesperrt! Alle Verbraucher (Fahrzeuge, Hausverbrauch) werden durch Netzstrom und ggfs. vorhandenen PV-Überschuss versorgt. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_discharge_home_consumption"?(o(),l("div",X,' Es wird nur der Hausverbrauch durch den Speicher ausgeglichen. Die Speicherentladung in Fahrzeuge wird komplett gesperrt! Fahrzeugladung, die nicht durch PV-Überschuss gedeckt werden kann, erzeugt Netzbezug statt Speicherentladung. Kann die Entladung am Speicher nur komplett gesperrt werden, verhält sich diese Einstellung wie "volle Entladesperre". ')):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_mode"]==="mode_charge_pv_production"?(o(),l("div",Y," PV-Ertrag wird vorrangig in den Speicher geladen (aktive Ladung)! Weiterer Verbrauch (Hausverbrauch/ Fahrzeugladung) erzeugt Netzbezug. ")):s("",!0)]),_:1},8,["model-value"]),i(g,{title:"Regelbedingung",buttons:[{buttonValue:"manual",text:"Manuell"},{buttonValue:"vehicle_charging",text:"Fahrzeugladung aktiv"},{buttonValue:"price_limit",text:"Preisgrenze"}],"model-value":t.$store.state.mqtt["openWB/bat/config/power_limit_condition"],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateState("openWB/bat/config/power_limit_condition",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",Z," Der Speicher regelt direkt entsprechend der manuellen Einstellung. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",x," Das oben eingestellte Regellimit wird angewendet, sobald ein oder mehrere Fahrzeuge Laden. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",ee," Regelung nach Preisgrenze bei variablen Strompreisen. ")):s("",!0)]),_:1},8,["model-value"]),e[55]||(e[55]=c("hr",null,null,-1)),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="manual"?(o(),l("div",te,[i(h,{class:"mt-0"},{default:r(()=>[...e[48]||(e[48]=[a(" Manuell ",-1)])]),_:1}),i(g,{title:"Speichersteuerung",buttons:[{buttonValue:"manual_disable",text:"Aus"},{buttonValue:"manual_limit",text:"Regellimit anwenden"},{buttonValue:"manual_charge",text:"Speicher laden"}],"model-value":t.$store.state.mqtt["openWB/bat/config/manual_mode"],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateState("openWB/bat/config/manual_mode",n))},{help:r(()=>[t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_disable"?(o(),l("div",ne," Aktive Speichersteuerung deaktivieren (Eigenregelung des Speichers). ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_limit"?(o(),l("div",re," Es wird das weiter oben konfigurierte Regellimit angewendet. ")):s("",!0),t.$store.state.mqtt["openWB/bat/config/manual_mode"]==="manual_charge"?(o(),l("div",ie," Alle Speicher werden mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ")):s("",!0)]),_:1},8,["model-value"])])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="vehicle_charging"?(o(),l("div",ae,[i(h,{class:"mt-0"},{default:r(()=>[...e[49]||(e[49]=[a(" Fahrzeugladung aktiv ",-1)])]),_:1}),i(u,{subtype:"info"},{default:r(()=>[...e[50]||(e[50]=[a(" Dieser Modus bietet keine weiteren Einstellungen. Sobald mindestens ein Fahrzeug lädt greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1})])):s("",!0),t.$store.state.mqtt["openWB/bat/config/power_limit_condition"]==="price_limit"?(o(),l("div",oe,[i(h,{class:"mt-0"},{default:r(()=>[...e[51]||(e[51]=[a(" Preisgrenze (Variable Strompreise) ",-1)])]),_:1}),!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(o(),b(u,{key:0,subtype:"warning"},{default:r(()=>[...e[52]||(e[52]=[a(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter schaltet der Speicher auf Eigenregelung. ",-1)])]),_:1})):s("",!0),i(g,{title:"Preisgrenze für Netzbezug statt Speicherentladung",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_limit_activated"],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateState("openWB/bat/config/price_limit_activated",n))},{help:r(()=>[...e[53]||(e[53]=[a(" Fällt der variable Strompreis unter diesen Wert, greift das weiter oben konfigurierte Regellimit. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Netzbezug",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/price_limit"]*1e5,"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/bat/config/price_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"]),i(g,{title:"Preisgrenze für Speicherladung mit Netzbezug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/bat/config/price_charge_activated"],"onUpdate:modelValue":e[16]||(e[16]=n=>t.updateState("openWB/bat/config/price_charge_activated",n))},{help:r(()=>[...e[54]||(e[54]=[a(" Fällt der variable Strompreis unter diesen Wert werden alle Speicher mit ihrer eingestellten maximalen Ladeleistung beladen. Befinden sich die Speicher über der oberen Ladeschranke wird der SoC gehalten. ",-1)])]),_:1},8,["model-value"]),i(_,{title:"Preisgrenze für Speicherladung",step:.001,precision:3,unit:"ct/kWh",required:"","model-value":t.$store.state.mqtt["openWB/bat/config/charge_limit"]*1e5,"onUpdate:modelValue":e[17]||(e[17]=n=>t.updateState("openWB/bat/config/charge_limit",parseFloat((n/1e5).toFixed(7))))},null,8,["model-value"])])):s("",!0)])):(o(),l("div",le,[i(u,{subtype:"info"},{default:r(()=>[...e[56]||(e[56]=[a(" Die Speicher-Entladung ins Fahrzeug kann nicht gesteuert werden, da die Entladeleistung nicht an den/die konfigurierten Speicher übergeben werden kann. ",-1)])]),_:1})]))])):s("",!0)]))]),_:1}),i(y,{"form-name":"batteryConfigForm",onSave:e[18]||(e[18]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[19]||(e[19]=n=>t.$emit("reset")),onDefaults:e[20]||(e[20]=n=>t.$emit("defaults"))})])])}const he=N(D,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ActiveBatControlConfiguration.vue"]]);export{he as default}; diff --git a/web/settings/assets/ChargeLog-CZQ0QwMY.js b/web/settings/assets/ChargeLog-DrRDhBzR.js similarity index 99% rename from web/settings/assets/ChargeLog-CZQ0QwMY.js rename to web/settings/assets/ChargeLog-DrRDhBzR.js index 4226c03459..65036efc5c 100644 --- a/web/settings/assets/ChargeLog-CZQ0QwMY.js +++ b/web/settings/assets/ChargeLog-DrRDhBzR.js @@ -1,3 +1,3 @@ -import{F as N,l as k,a8 as E,a9 as R}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,a0 as S,l as h,k as _,e as u,m as c,q as o,A as d,x as s,J as n,y as W,j as w,O as m,u as V}from"./vendor-Bo8v-nQD.js";import{C as y}from"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";k.add(E,R);const I={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:N},mixins:[y],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"Kilometerstand",field:"vehicle_odometer",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 Laden Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Laden Ende",field:"chargepoint_imported_at_end",sortable:!0},{label:"Entladene Energie",field:"data_exported_since_mode_switch",sortable:!0},{label:"Zähler Entladen Beginn",field:"chargepoint_exported_at_start",sortable:!0},{label:"Zähler Entladen Ende",field:"chargepoint_exported_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:"Entladene Energie",field:"exported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?null:`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:null},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),r=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_exported_at_start:t.chargepoint.exported_at_start,chargepoint_exported_at_end:t.chargepoint.exported_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_odometer:t.vehicle.odometer,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:r/1e3,time_end:isNaN(r)?null:this.dateTimeFormat.format(new Date(r)),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,data_exported_since_plugged:t.data.exported_since_plugged,data_exported_since_mode_switch:t.data.exported_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"','"Kilometerstand"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Geladene Energie"','"Entladene Energie"','"Reichweite"','"Zählerstand Laden Beginn"','"Zählerstand Laden Ende"','"Zählerstand Entladen Beginn"','"Zählerstand Entladen Ende"','"Energie seit Anstecken"','"Entladene 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_odometer==null?"":'"'+e.vehicle_odometer+'"',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_exported_since_mode_switch||0)/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.chargepoint_exported_at_start||0)/1e3,2),this.formatNumber((e.chargepoint_exported_at_end||0)/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2),this.formatNumber((e.data_exported_since_plugged||0)/1e3,2)])].map(e=>e.join(";")).join(` +import{F as N,l as k,a8 as E,a9 as R}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,a0 as S,l as h,k as _,e as u,m as c,q as o,A as d,x as s,J as n,y as W,j as w,O as m,u as V}from"./vendor-Bo8v-nQD.js";import{C as y}from"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";k.add(E,R);const I={name:"OpenwbChargeLogView",components:{Vue3TableLite:S,FontAwesomeIcon:N},mixins:[y],emits:["sendCommand"],data(){return{dateTimeFormat:new Intl.DateTimeFormat(void 0,{year:"numeric",month:"2-digit",day:"2-digit",hour:"2-digit",minute:"2-digit",second:"2-digit"}),mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentMonth:"",chargeLogRequestData:{month:"",year:"",filter:{chargepoint:{id:[]},vehicle:{id:[],tag:[],chargemode:[],prio:void 0}}},downloadFile:null,table:{messages:{pagingInfo:"Einträge {0}-{1} von {2}",pageSizeChangeLabel:"Einträge:",gotoPageLabel:" Gehe zu:",noDataAvailable:"Keine Einträge gefunden."},pageOptions:[{value:5,text:"5"},{value:10,text:"10"},{value:25,text:"25"},{value:50,text:"50"},{value:100,text:"100"}],columns:[{label:"Beginn",field:"time_begin",sortable:!0},{label:"Ende",field:"time_end",sortable:!0},{label:"Dauer",field:"time_time_charged",sortable:!0},{label:"Kosten",field:"data_costs",sortable:!0},{label:"Energieaufteilung",field:"data_power_source",sortable:!1},{label:"Fahrzeug",field:"vehicle_name",sortable:!0},{label:"Lademodus",field:"vehicle_chargemode",sortable:!0},{label:"Priorität",field:"vehicle_prio",sortable:!0},{label:"ID-Tag",field:"vehicle_rfid",sortable:!0},{label:"Kilometerstand",field:"vehicle_odometer",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 Laden Beginn",field:"chargepoint_imported_at_start",sortable:!0},{label:"Zähler Laden Ende",field:"chargepoint_imported_at_end",sortable:!0},{label:"Entladene Energie",field:"data_exported_since_mode_switch",sortable:!0},{label:"Zähler Entladen Beginn",field:"chargepoint_exported_at_start",sortable:!0},{label:"Zähler Entladen Ende",field:"chargepoint_exported_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:"Entladene Energie",field:"exported_since_mode_switch",sortable:!1},{label:"Reichweite",field:"range_charged",sortable:!1},{label:"Kosten",field:"costs",sortable:!1}]}}},computed:{mqttClientId(){return this.$root.mqttClientId},baseUrl(){const t=parseInt(location.port)||(location.protocol==="https:"?443:80);return`${location.protocol}//${location.hostname}:${t}/openWB/web/settings/downloadChargeLog.php`},downloadUrlMonth(){return!this.chargeLogRequestData.year||!this.chargeLogRequestData.month?null:`${this.baseUrl}?year=${this.chargeLogRequestData.year}&month=${this.chargeLogRequestData.month}`},downloadUrlYear(){return this.chargeLogRequestData.year?`${this.baseUrl}?year=${this.chargeLogRequestData.year}`:null},chargeLogDate:{get(){return this.chargeLogRequestData.year+"-"+this.chargeLogRequestData.month},set(t){let e=t.split("-");this.chargeLogRequestData.year=e[0],this.chargeLogRequestData.month=e[1]}},chargeLogTotals(){return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]?[this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].totals]:[]},chargeLogColumns(){return this.table.columns.map(t=>({...t,headerClasses:this.addClasses(t.field),columnClasses:this.addClasses(t.field)}))},chargeLogDataset:{get(){if(this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"]==null)return[];try{return this.$store.state.mqtt["openWB/log/"+this.mqttClientId+"/data"].entries.map(t=>{var e=Date.parse(t.time.begin),r=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_exported_at_start:t.chargepoint.exported_at_start,chargepoint_exported_at_end:t.chargepoint.exported_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_odometer:t.vehicle.odometer,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:r/1e3,time_end:isNaN(r)?null:this.dateTimeFormat.format(new Date(r)),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,data_exported_since_plugged:t.data.exported_since_plugged,data_exported_since_mode_switch:t.data.exported_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"','"Kilometerstand"','"SoC Beginn"','"SoC Ende"','"Reichweite Beginn"','"Reichweite Ende"','"Ladepunkt"','"Ladepunkt-ID"','"Zähler Seriennummer"','"Geladene Energie"','"Entladene Energie"','"Reichweite"','"Zählerstand Laden Beginn"','"Zählerstand Laden Ende"','"Zählerstand Entladen Beginn"','"Zählerstand Entladen Ende"','"Energie seit Anstecken"','"Entladene 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_odometer==null?"":'"'+e.vehicle_odometer+'"',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_exported_since_mode_switch||0)/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.chargepoint_exported_at_start||0)/1e3,2),this.formatNumber((e.chargepoint_exported_at_end||0)/1e3,2),this.formatNumber(e.data_imported_since_plugged/1e3,2),this.formatNumber((e.data_exported_since_plugged||0)/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(r=>({value:r,text:this.translateChargeMode(r)}));const e=t.map(r=>r.value);return t.unshift({value:e,text:"Alle"}),t},chargePointList(){let t=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const[,r]of Object.entries(t))e.push({value:r.id,text:r.name});if(e.length>1){const r=e.map(g=>g.value);e.unshift({value:r,text:"Alle"})}return e},vehicleList(){let t=this.getWildcardTopics("openWB/vehicle/+/info");var e=[];for(const r of Object.keys(t)){let g=parseInt(r.match(/\/([0-9]+)\/info$/)[1]);const l=this.$store.state.mqtt["openWB/vehicle/"+g+"/name"];e.push({value:g,text:l||`Fahrzeug ${g}`})}if(e.length>1){const r=e.map(g=>g.value);e.unshift({value:r,text:"Alle"})}return e}},beforeMount(){this.mqttTopics.push({topic:"openWB/log/"+this.mqttClientId+"/data",writeable:!1});const t=new Date;this.currentMonth=this.chargeLogDate=t.getFullYear()+"-"+String(t.getMonth()+1).padStart(2,"0")},mounted(){window.setTimeout(()=>{console.debug("initial charge log request"),console.debug("vehicle List on init:",JSON.stringify(this.vehicleList)),console.debug("charge Point List on init:",JSON.stringify(this.chargePointList)),this.requestChargeLog()},500)},methods:{cleanRequestData(){const t=r=>r==null?[]:Array.isArray(r)?r.length===1&&Array.isArray(r[0])?r[0]:r:[r],e=this.chargeLogRequestData.filter;if(e.vehicle.id=t(e.vehicle.id).filter(r=>r!==void 0),e.vehicle.chargemode=t(e.vehicle.chargemode).filter(r=>r!==void 0),e.chargepoint.id=t(e.chargepoint.id).filter(r=>r!==void 0),e.vehicle.id.length===0&&this.vehicleList.length>0){const r=this.vehicleList[0].value;e.vehicle.id=Array.isArray(r)?r:[r]}if(e.chargepoint.id.length===0&&this.chargePointList.length>0){const r=this.chargePointList[0].value;e.chargepoint.id=Array.isArray(r)?r:[r]}e.vehicle.prio===null&&(e.vehicle.prio=void 0),console.debug("cleaned request data",JSON.stringify(this.chargeLogRequestData))},requestChargeLog(){if(console.debug("requesting charge log with data:",JSON.stringify(this.chargeLogRequestData)),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 r=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?r+"kW":r},formatWh(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t/1e3,2));return e?r+"kWh":r},formatRange(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,0));return e?r+"km":r},formatOdometer(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,0));return e?r+"km":r},formatSoc(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,0));return e?r+"%":r},formatCosts(t,e=!0){let r=this.dashIfNotSet(this.formatNumber(t,2));return e?r+"€":r},dashIfNotSet(t){return t==null||t==""||t==null?"-":t},getChargeModeClass(t){switch(t){case"Sofort":return"bg-danger";case"PV":return"bg-success";case"Zielladen":return"bg-primary";case"Zeitladen":return"bg-warning";case"Eco":case"Standby":return"bg-secondary";case"Stop":return"bg-dark";default:return console.warn("unknown charge mode:",t),"bg-light"}}}},F={class:"chargeLog"},T={key:0},U={key:1},A={name:"chargeLogForm"},M=["href"],O=["href"],P={key:1},Z={class:"td-end"},z={class:"td-end"},j=["title"],J=["aria-valuenow"],K=["aria-valuenow"],Y=["aria-valuenow"],G=["aria-valuenow"],H={key:1,class:"td-center"},Q={class:"td-end"},X={class:"no-wrap"},$={class:"no-wrap"},ee={class:"td-end"},te={class:"no-wrap"},ae={class:"no-wrap"},re={class:"td-end"},ie={class:"no-wrap"},se={class:"no-wrap"},oe={class:"td-end"},ne={class:"no-wrap"},le={class:"td-end"},de={class:"td-end"},ce={class:"td-end"},he={class:"td-end"},ge={key:0},_e={class:"row justify-content-center"},ue={ref:"downloadChargeLogLink",class:"hide"},me={class:"td-end"},pe={class:"td-end"},fe={class:"td-end"},be={class:"td-end"},ve={class:"td-end"};function Le(t,e,r,g,l,i){const p=h("openwb-base-alert"),C=h("openwb-base-text-input"),b=h("font-awesome-icon"),D=h("openwb-base-button-group-input"),f=h("openwb-base-select-input"),x=h("openwb-base-array-input"),v=h("openwb-base-card"),L=h("vue3-table-lite"),q=h("openwb-base-click-button");return _(),u("div",F,[t.$store.state.mqtt["openWB/general/extern"]===!0?(_(),u("div",T,[c(p,{subtype:"info"},{default:o(()=>[...e[13]||(e[13]=[d(' Das Ladeprotokoll ist nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Ladevorgänge in der openWB, die sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(_(),u("div",U,[s("form",A,[c(v,{title:"Filter"},{default:o(()=>[c(C,{modelValue:i.chargeLogDate,"onUpdate:modelValue":[e[0]||(e[0]=a=>i.chargeLogDate=a),e[1]||(e[1]=a=>i.requestChargeLog())],title:"Zeitraum",subtype:"month",min:"2018-01","show-quick-buttons":!0,max:l.currentMonth},null,8,["modelValue","max"]),c(v,{title:"Erweiterte Optionen",collapsible:!0,collapsed:!0},{header:o(()=>[c(b,{icon:["fas","filter"]}),e[14]||(e[14]=d(" Erweiterte Optionen ",-1))]),default:o(()=>[c(D,{modelValue:l.chargeLogRequestData.filter.vehicle.prio,"onUpdate:modelValue":[e[2]||(e[2]=a=>l.chargeLogRequestData.filter.vehicle.prio=a),e[3]||(e[3]=a=>i.requestChargeLog())],title:"Priorität",buttons:[{buttonValue:null,text:"Alle",class:"btn-outline-info"},{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),c(f,{modelValue:l.chargeLogRequestData.filter.vehicle.chargemode,"onUpdate:modelValue":[e[4]||(e[4]=a=>l.chargeLogRequestData.filter.vehicle.chargemode=a),e[5]||(e[5]=a=>i.requestChargeLog())],title:"Lademodus",multiple:"",options:i.chargeModeList},{help:o(()=>[...e[15]||(e[15]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),c(f,{modelValue:l.chargeLogRequestData.filter.chargepoint.id,"onUpdate:modelValue":[e[6]||(e[6]=a=>l.chargeLogRequestData.filter.chargepoint.id=a),e[7]||(e[7]=a=>i.requestChargeLog())],title:"Ladepunkt",multiple:"",options:i.chargePointList},{help:o(()=>[...e[16]||(e[16]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),c(f,{modelValue:l.chargeLogRequestData.filter.vehicle.id,"onUpdate:modelValue":[e[8]||(e[8]=a=>l.chargeLogRequestData.filter.vehicle.id=a),e[9]||(e[9]=a=>i.requestChargeLog())],title:"Fahrzeug",multiple:"",options:i.vehicleList},{help:o(()=>[...e[17]||(e[17]=[d(" Es können mehrere Elemente ausgewählt werden. ",-1)])]),_:1},8,["modelValue","options"]),c(x,{modelValue:l.chargeLogRequestData.filter.vehicle.tag,"onUpdate:modelValue":[e[10]||(e[10]=a=>l.chargeLogRequestData.filter.vehicle.tag=a),e[11]||(e[11]=a=>i.requestChargeLog())],title:"ID-Tags"},{help:o(()=>[...e[18]||(e[18]=[d(" Es können mehrere Tags als Filter verwendet werden. ",-1)])]),_:1},8,["modelValue"])]),_:1})]),_:1}),c(p,{subtype:"info"},{default:o(()=>[e[19]||(e[19]=d(" Das Ladeprotokoll kann monatsweise automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:i.downloadUrlMonth},n(i.downloadUrlMonth),9,M),e[20]||(e[20]=d()),e[21]||(e[21]=s("br",null,null,-1)),e[22]||(e[22]=d(" Das komplette Ladeprotokoll für das gesamte Jahr kann automatisiert über folgende URL abgerufen werden: ",-1)),s("a",{href:i.downloadUrlYear},n(i.downloadUrlYear),9,O)]),_:1}),i.chargeLogRead?(_(),u("div",P,[c(L,{class:"charge-log-table","is-static-mode":!0,columns:i.chargeLogColumns,rows:i.chargeLogDataset,total:i.totalRecordCount,sortable:l.table.sortable,messages:l.table.messages,"page-options":l.table.pageOptions,limit:25,"is-slot-mode":!0},{time_begin:o(a=>[d(n(i.dashIfNotSet(a.value.time_begin)),1)]),time_end:o(a=>[d(n(i.dashIfNotSet(a.value.time_end)),1)]),time_time_charged:o(a=>[s("div",Z,n(a.value.time_time_charged),1)]),data_costs:o(a=>[s("div",z,n(i.formatCosts(a.value.data_costs)),1)]),data_power_source:o(a=>[a.value.data_power_source?(_(),u("div",{key:0,class:"progress td-center",title:i.getProgressTitle(a.value.data_power_source)},[s("div",{class:"progress-bar bg-danger",role:"progressbar",style:m({width:a.value.data_power_source.grid+"%"}),"aria-valuenow":a.value.data_power_source.grid,"aria-valuemin":"0","aria-valuemax":"100"},null,12,J),s("div",{class:"progress-bar bg-primary",role:"progressbar",style:m({width:a.value.data_power_source.cp+"%"}),"aria-valuenow":a.value.data_power_source.cp,"aria-valuemin":"0","aria-valuemax":"100"},null,12,K),s("div",{class:"progress-bar bg-warning",role:"progressbar",style:m({width:a.value.data_power_source.bat+"%"}),"aria-valuenow":a.value.data_power_source.bat,"aria-valuemin":"0","aria-valuemax":"100"},null,12,Y),s("div",{class:"progress-bar bg-success",role:"progressbar",style:m({width:a.value.data_power_source.pv+"%"}),"aria-valuenow":a.value.data_power_source.pv,"aria-valuemin":"0","aria-valuemax":"100"},null,12,G)],8,j)):(_(),u("div",H," - "))]),vehicle_chargemode:o(a=>[s("div",{class:w(["td-center tag",i.getChargeModeClass(a.value.vehicle_chargemode)])},n(a.value.vehicle_chargemode),3)]),vehicle_prio:o(a=>[s("div",{class:w(["td-center tag",a.value.vehicle_prio?"bg-success":"bg-danger"])},n(i.formatBool(a.value.vehicle_prio)),3)]),vehicle_rfid:o(a=>[d(n(i.dashIfNotSet(a.value.vehicle_rfid)),1)]),vehicle_odometer:o(a=>[d(n(i.formatOdometer(a.value.vehicle_odometer)),1)]),vehicle_soc_at_start:o(a=>[s("div",Q,[s("span",X,n(i.formatSoc(a.value.vehicle_soc_at_start)),1),s("span",$," ("+n(i.formatRange(a.value.vehicle_range_at_start))+") ",1)])]),vehicle_soc_at_end:o(a=>[s("div",ee,[s("span",te,n(i.formatSoc(a.value.vehicle_soc_at_end)),1),s("span",ae," ("+n(i.formatRange(a.value.vehicle_range_at_end))+") ",1)])]),chargepoint_name:o(a=>[d(n(i.dashIfNotSet(a.value.chargepoint_name)),1)]),chargepoint_serial_number:o(a=>[d(n(i.dashIfNotSet(a.value.chargepoint_serial_number)),1)]),data_imported_since_mode_switch:o(a=>[s("div",re,[s("span",ie,n(i.formatWh(a.value.data_imported_since_mode_switch)),1),s("span",se," ("+n(i.formatRange(a.value.data_range_charged))+") ",1)])]),data_exported_since_mode_switch:o(a=>[s("div",oe,[s("span",ne,n(i.formatWh(a.value.data_exported_since_mode_switch||0)),1)])]),chargepoint_imported_at_start:o(a=>[s("div",le,n(i.formatWh(a.value.chargepoint_imported_at_start)),1)]),chargepoint_imported_at_end:o(a=>[s("div",de,n(i.formatWh(a.value.chargepoint_imported_at_end)),1)]),chargepoint_exported_at_start:o(a=>[s("div",ce,n(i.formatWh(a.value.chargepoint_exported_at_start||0)),1)]),chargepoint_exported_at_end:o(a=>[s("div",he,n(i.formatWh(a.value.chargepoint_exported_at_end||0)),1)]),_:1},8,["columns","rows","total","sortable","messages","page-options"]),i.totalRecordCount>0?(_(),u("div",ge,[s("div",_e,[c(q,{class:"col-4 btn-success",onButtonClicked:e[12]||(e[12]=a=>i.downloadChargeLog())},{default:o(()=>[e[24]||(e[24]=d(" Als CSV exportieren ",-1)),c(b,{icon:["fas","download"]})]),_:1}),s("a",ue,null,512)]),e[25]||(e[25]=s("div",{class:"row"},[s("div",{class:"col"},[s("h2",null,"Summe")])],-1)),c(L,{class:"charge-log-totals","is-static-mode":!0,"is-hide-paging":!0,columns:l.totals.columns,rows:i.chargeLogTotals,total:1,"is-slot-mode":!0},{time_charged:o(a=>[s("div",me,n(a.value.time_charged),1)]),imported_since_mode_switch:o(a=>[s("div",pe,n(i.formatWh(a.value.imported_since_mode_switch)),1)]),exported_since_mode_switch:o(a=>[s("div",fe,n(i.formatWh(a.value.exported_since_mode_switch||0)),1)]),range_charged:o(a=>[s("div",be,n(i.formatRange(a.value.range_charged)),1)]),costs:o(a=>[s("div",ve,n(i.formatCosts(a.value.costs)),1)]),_:1},8,["columns","rows"])])):V("",!0)])):(_(),W(p,{key:0,subtype:"info"},{default:o(()=>[...e[23]||(e[23]=[d(" Es wurden noch keine Daten abgerufen. ",-1)])]),_:1}))])]))])}const ke=B(I,[["render",Le],["__scopeId","data-v-8607e7e7"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargeLog.vue"]]);export{ke as default}; diff --git a/web/settings/assets/ChargePointInstallation-BeNMkMOi.js b/web/settings/assets/ChargePointInstallation-Cmc7sApi.js similarity index 96% rename from web/settings/assets/ChargePointInstallation-BeNMkMOi.js rename to web/settings/assets/ChargePointInstallation-Cmc7sApi.js index b53f122125..bfdb118fb3 100644 --- a/web/settings/assets/ChargePointInstallation-BeNMkMOi.js +++ b/web/settings/assets/ChargePointInstallation-Cmc7sApi.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chargePoint-Dedwz5Jy.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/chargePoint-sYavUqxv.js","assets/chargePoint-CZkD_QGG.js","assets/chargePoint-UK4SBHnE.js","assets/chargePoint-DWLMU56i.js","assets/chargePoint-Bd2Kp2l0.js","assets/chargePoint-CIyU28Hf.js","assets/commands-DVXr5SHv.js","assets/commands-WVGU9z4_.js"])))=>i.map(i=>d[i]); -import{F as M,l as j,aj as R,av as N,H as Z,aw as $,ax as H,P as ee,d as te,X as ne,ay as ae}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as L,C as J}from"./index-D_eD74fL.js";import{S as oe}from"./SystemVersion-DQAfG1DR.js";import{_ as T}from"./dynamic-import-helper-BheWnx7M.js";import{_ as z,l as p,k as l,e as u,y as h,q as o,A as i,J as w,m as a,x as m,a1 as O,a2 as F,K as A,u as g,L as U,z as E,j as le,D as ie}from"./vendor-Bo8v-nQD.js";const se={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},re=z(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),ue={name:"ChargePointConfigFallback",mixins:[re]},de={class:"charge-point-config-fallback"},pe={key:1};function me(t,e,c,v,_,n){const y=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",de,[Object.keys(t.chargePoint.configuration).length==0?(l(),h(y,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+w(t.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",pe,[a(y,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+w(t.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":t.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=P=>t.updateConfiguration(P,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(y,{subtype:"info"},{default:o(()=>[m("pre",null,w(JSON.stringify(t.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const ge=z(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ce={props:{chargePoint:{type:Object,required:!0}}},be=z(ce,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),fe={name:"ChargePointCommandsFallback",mixins:[be]},he={class:"charge-point-commands-fallback"};function _e(t,e,c,v,_,n){return l(),u("div",he)}const ke=z(fe,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),we={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-Dedwz5Jy.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-sYavUqxv.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11])),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-CZkD_QGG.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-UK4SBHnE.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-DWLMU56i.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-Bd2Kp2l0.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11])),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-CIyU28Hf.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/chargePoint.vue`,3),errorComponent:ge})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-DVXr5SHv.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-WVGU9z4_.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/commands.vue`,3),errorComponent:ke})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ve(t,e,c,v,_,n){const y=p("openwb-base-heading");return l(),u(A,null,[a(y,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>n.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(y,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const ye=z(we,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);j.add(R,N,Z,$,H);const Ce={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:M},mixins:[J],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(t){this.$emit("update:modelValue",t)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(t){this.showRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Pe={key:0},Ve={key:1},Le={key:2},Be={key:1},We={key:2};function Ae(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-avatar"),C=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(y,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removePlan},{default:o(()=>[i(' Willst Du den Autolock Zeitplan "'+w(n.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:n.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:le(["pill clickable",n.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=E(k=>n.plan.active=!n.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+w(n.plan.time[0])+" - "+w(n.plan.time[1])+" ",1),n.plan.frequency.selected=="once"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-day"]}),i(" "+w(t.formatDate(n.plan.frequency.once[0])==t.formatDate(n.plan.frequency.once[1])?t.formatDate(n.plan.frequency.once[0]):t.formatDate(n.plan.frequency.once[0])+" - "+t.formatDate(n.plan.frequency.once[1])),1)])):g("",!0),n.plan.frequency.selected=="daily"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("span",Le,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Be,[a(P,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=E(k=>n.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(P,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=E(k=>n.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(C,{modelValue:n.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>n.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:n.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>n.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>n.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>n.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:n.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>n.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),n.plan.frequency.selected=="once"?(l(),h(C,{key:0,modelValue:n.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>n.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),n.plan.frequency.selected=="once"?(l(),h(C,{key:1,modelValue:n.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>n.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:n.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("div",We,[(l(!0),u(A,null,U(t.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:n.plan.frequency.weekly[k],"onUpdate:modelValue":V=>n.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const ze=z(Ce,[["render",Ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);j.add(te,R,N,Z,$,H,ne,ae);const Ie={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:M,FontAwesomeLayers:ee,OpenwbChargePointProxy:ye,TemplateAutoLockPlan:ze},mixins:[J,oe],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!0},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ocpp/config",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/chargepoints",writeable:!1},{topic:"openWB/system/configurable/chargepoints_internal",writeable:!1}],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,v]of Object.entries(t))(v&&typeof v=="object"&&v.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=v);return e}},chargePointTemplates(){const t=this.getWildcardTopics("openWB/chargepoint/template/+");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},chargePointTemplateList:{get(){let t=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),v=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;t.push({value:c,text:v})}),t}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(t,e){t.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(t,e){this.showChargePointModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(t){return this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"].name:"Ladepunkt "+t},getChargePointTemplateIndex(t){return parseInt(t.match(/([^/]+)$/)[0])},getChargePointTemplateName(t){return this.$store.state.mqtt["openWB/chargepoint/template/"+t]?this.$store.state.mqtt["openWB/chargepoint/template/"+t].name:"Profil "+t},addChargePointTemplate(t,e){t.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(t,e){t.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(t,e){this.showChargePointTemplateModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(t){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(t)}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},De={class:"chargePointInstallation"},Ue={name:"chargePointInstallationForm"},Ee=["href"],Se={key:0},xe={key:2},qe={key:0},Te={key:0,class:"border-secondary"},Oe={key:0},Fe={key:1},Me={key:1},je={key:0},Re={key:0},Ne={key:1},Ze={key:2},$e={key:1},He={key:0},Je={key:2},Ge={key:4};function Qe(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-alert"),C=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),D=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(y,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Willst Du den Ladepunkt "'+w(n.getChargePointName(_.modalChargePointIndex))+'" (ID: '+w(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(y,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Willst Du das Ladepunkt-Profil "'+w(n.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+w(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",De,[m("form",Ue,[a(D,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(P,{subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1)),m("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:konfiguration:ladepunkte:openwb`,target:"_blank",rel:"noopener noreferrer"},"Wiki",8,Ee),e[9]||(e[9]=i(" . ",-1))]),_:1}),(l(!0),u(A,null,U(n.installedChargePoints,(s,d)=>(l(),h(D,{key:d,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(C,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>n.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":r=>t.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[d].type},null,8,["model-value"]),s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Se,[a(I,{title:"Ladepunkt-Profil",options:n.chargePointTemplateList,"model-value":t.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>t.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s?.ocpp_chargebox_id,"onUpdate:modelValue":r=>t.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[10]||(e[10]=[i(" Bitte gib hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):g("",!0),e[16]||(e[16]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>n.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1)&&s?.charging_type!=="DC"?(l(),u("div",xe,[e[15]||(e[15]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[11]||(e[11]=[i(" Hardware-Optionen ",-1)])]),_:1}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.auto_phase_switch_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.control_pilot_interruption_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[12]||(e[12]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[13]||(e[13]=[i(" Elektrischer Anschluss ",-1)])]),_:1}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s?.connected_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s?.phase_1,"onUpdate:modelValue":r=>t.updateState(d,r,"phase_1")},{help:o(()=>[...e[14]||(e[14]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedChargePoints).length>0?(l(),u("hr",qe)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:n.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":n.addChargePoint},{help:o(()=>[...e[17]||(e[17]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),t.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",Te)):g("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(D,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[18]||(e[18]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:n.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",Oe,[a(P,{subtype:"info"},{default:o(()=>[...e[19]||(e[19]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),u("div",Fe,[(l(!0),u(A,null,U(n.chargePointTemplates,(s,d)=>(l(),h(D,{key:d,title:`${s.name} (ID: ${n.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>n.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1},8,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(C,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>n.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>t.updateState(d,r,"name")},ie({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[20]||(e[20]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),n.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>t.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[40]||(e[40]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Me,[a(k,null,{default:o(()=>[...e[21]||(e[21]=[i(" Zugangskontrolle ",-1)])]),_:1}),s.valid_tags.length>0?(l(),u("div",je,[a(P,{subtype:"info"},{default:o(()=>[e[23]||(e[23]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[22]||(e[22]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[24]||(e[24]=i(". ",-1)),t.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Re," Ladepunkte mit diesem Profil werden automatisch beim Abstecken eines Fahrzeugs gesperrt und müssen für den nächsten Ladevorgang mit einem ID-Tag entsperrt werden. ")):t.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(l(),u("div",Ne," Die Zugangskontrolle ist aktuell deaktiviert. ")):(l(),u("div",Ze," Die Zugangskontrolle ist aktiviert, jedoch werden Ladepunkte mit diesem Profil nicht automatisch nach dem Abstecken eines Fahrzeugs gesperrt. "))]),_:2},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":s.valid_tags},{help:o(()=>[...e[25]||(e[25]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Ladepunkt-Profil zugeordnet sind. Nur mit diesen ID-Tags können Ladepunkte, denen dieses Profil zugeordnet ist, entsperrt werden. ",-1)])]),_:1},8,["model-value"])])):(l(),u("div",$e,[a(P,{subtype:"info"},{default:o(()=>[e[27]||(e[27]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[26]||(e[26]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[28]||(e[28]=i(".",-1)),e[29]||(e[29]=m("br",null,null,-1)),e[30]||(e[30]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})]))])),e[41]||(e[41]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[31]||(e[31]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1}),a(P,{subtype:"info"},{default:o(()=>[e[32]||(e[32]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[33]||(e[33]=m("br",null,null,-1)),e[34]||(e[34]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",He," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2},1024),s.charging_type==="AC"||n.dcChargingEnabled!==!0?(l(),u("div",Je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":t.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>t.updateState(d,t.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Ge,[e[39]||(e[39]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[35]||(e[35]=[i(" Sperren nach Uhrzeit (Komplettsperrung - Freischaltung per Identifikation möglich) ",-1)])]),_:1}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.active")},{help:o(()=>[...e[36]||(e[36]=[i(" Wird Sperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist aber eine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich, wenn Identifikation aktiviert ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[37]||(e[37]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(C,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:E(r=>n.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:o(()=>[e[38]||(e[38]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2},1024)])),(l(!0),u(A,null,U(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":S=>t.updateState(d,S,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=S=>t.$emit("sendCommand",S))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[5]||(e[5]=s=>t.$emit("reset")),onDefaults:e[6]||(e[6]=s=>t.$emit("defaults"))})])])],64)}const Xe=z(Ie,[["render",Qe],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),at=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{re as C,be as a,Xe as b,at as c}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/chargePoint-C5jB_bOz.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-MVrRMMo2.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/chargePoint-XTkGOmLT.js","assets/chargePoint-hTZAsZ1C.js","assets/chargePoint-CYTSaRoE.js","assets/chargePoint-UefwMnyD.js","assets/chargePoint-B5VvdkvH.js","assets/chargePoint-CuYVViGz.js","assets/commands-DbPIi_R7.js","assets/commands-DzcJU8K3.js"])))=>i.map(i=>d[i]); +import{F as M,l as j,aj as R,av as N,H as Z,aw as $,ax as H,P as ee,d as te,X as ne,ay as ae}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as L,C as J}from"./index-MVrRMMo2.js";import{S as oe}from"./SystemVersion-DQAfG1DR.js";import{_ as T}from"./dynamic-import-helper-BheWnx7M.js";import{_ as z,l as p,k as l,e as u,y as h,q as o,A as i,J as w,m as a,x as m,a1 as O,a2 as F,K as A,u as g,L as U,z as E,j as le,D as ie}from"./vendor-Bo8v-nQD.js";const se={props:{chargePoint:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},re=z(se,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointConfigMixin.vue"]]),ue={name:"ChargePointConfigFallback",mixins:[re]},de={class:"charge-point-config-fallback"},pe={key:1};function me(t,e,c,v,_,n){const y=p("openwb-base-alert"),f=p("openwb-base-textarea");return l(),u("div",de,[Object.keys(t.chargePoint.configuration).length==0?(l(),h(y,{key:0,subtype:"info"},{default:o(()=>[i(' Der Ladepunkt-Typ "'+w(t.chargePoint.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(l(),u("div",pe,[a(y,{subtype:"warning"},{default:o(()=>[i(' Es wurde keine Konfigurationsseite für den Ladepunkt-Typ "'+w(t.chargePoint.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(f,{title:"Konfiguration",subtype:"json","model-value":t.chargePoint.configuration,"onUpdate:modelValue":e[0]||(e[0]=P=>t.updateConfiguration(P,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(y,{subtype:"info"},{default:o(()=>[m("pre",null,w(JSON.stringify(t.chargePoint.configuration,void 0,2)),1)]),_:1})]))])}const ge=z(ue,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointConfigFallback.vue"]]),ce={props:{chargePoint:{type:Object,required:!0}}},be=z(ce,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/ChargePointCommandsMixin.vue"]]),fe={name:"ChargePointCommandsFallback",mixins:[be]},he={class:"charge-point-commands-fallback"};function _e(t,e,c,v,_,n){return l(),u("div",he)}const ke=z(fe,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointCommandsFallback.vue"]]),we={name:"OpenwbChargePointProxy",props:{chargePoint:{required:!0,type:Object}},emits:["update:configuration"],methods:{getChargePointSettingsComponent(){return console.debug(`loading charge point settings: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./external_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-C5jB_bOz.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./internal_openwb/chargePoint.vue":()=>L(()=>import("./chargePoint-XTkGOmLT.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11])),"./mqtt/chargePoint.vue":()=>L(()=>import("./chargePoint-hTZAsZ1C.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_dc_adapter/chargePoint.vue":()=>L(()=>import("./chargePoint-CYTSaRoE.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/chargePoint.vue":()=>L(()=>import("./chargePoint-UefwMnyD.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_series2_satellit/chargePoint.vue":()=>L(()=>import("./chargePoint-B5VvdkvH.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11])),"./smartwb/chargePoint.vue":()=>L(()=>import("./chargePoint-CuYVViGz.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/chargePoint.vue`,3),errorComponent:ge})},getChargePointCommandsComponent(){return console.debug(`loading charge point commands: ${this.chargePoint.type}`),O({loader:()=>T(Object.assign({"./internal_openwb/commands.vue":()=>L(()=>import("./commands-DbPIi_R7.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10,11])),"./openwb_pro/commands.vue":()=>L(()=>import("./commands-DzcJU8K3.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.chargePoint.type}/commands.vue`,3),errorComponent:ke})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ve(t,e,c,v,_,n){const y=p("openwb-base-heading");return l(),u(A,null,[a(y,null,{default:o(()=>[i(' Einstellungen für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointSettingsComponent()),{"charge-point":c.chargePoint,"onUpdate:configuration":e[0]||(e[0]=f=>n.updateConfiguration(f))},null,40,["charge-point"])),e[1]||(e[1]=m("hr",null,null,-1)),a(y,null,{default:o(()=>[i(' Befehle für Ladepunkt Typ "'+w(c.chargePoint.type)+'" ',1)]),_:1}),(l(),h(F(n.getChargePointCommandsComponent()),{"charge-point":c.chargePoint},null,8,["charge-point"]))],64)}const ye=z(we,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/OpenwbChargePointProxy.vue"]]);j.add(R,N,Z,$,H);const Ce={name:"TemplateAutoLockPlan",components:{FontAwesomeIcon:M},mixins:[J],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0}},emits:["update:modelValue","sendCommand"],data(){return{showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(t){this.$emit("update:modelValue",t)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.templateId,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(t){this.showRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeAutolockPlan",data:{template:this.templateId,plan:this.modelValue.id}})}}},Pe={key:0},Ve={key:1},Le={key:2},Be={key:1},We={key:2};function Ae(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-avatar"),C=p("openwb-base-text-input"),B=p("openwb-base-button-group-input"),I=p("openwb-base-card");return l(),u(A,null,[a(y,{show:_.showRemoveModal,title:"Autolock Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:n.removePlan},{default:o(()=>[i(' Willst Du den Autolock Zeitplan "'+w(n.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),a(I,{title:n.plan.name,collapsible:!0,collapsed:!0},{actions:o(b=>[b.collapsed==!0?(l(),u("span",{key:0,class:le(["pill clickable",n.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=E(k=>n.plan.active=!n.plan.active,["stop"]))},[a(f,{icon:["fas","clock"]}),i(" "+w(n.plan.time[0])+" - "+w(n.plan.time[1])+" ",1),n.plan.frequency.selected=="once"?(l(),u("span",Pe,[a(f,{icon:["fas","calendar-day"]}),i(" "+w(t.formatDate(n.plan.frequency.once[0])==t.formatDate(n.plan.frequency.once[1])?t.formatDate(n.plan.frequency.once[0]):t.formatDate(n.plan.frequency.once[0])+" - "+t.formatDate(n.plan.frequency.once[1])),1)])):g("",!0),n.plan.frequency.selected=="daily"?(l(),u("span",Ve,[a(f,{icon:["fas","calendar-week"]})])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("span",Le,[a(f,{icon:["fas","calendar-alt"]})])):g("",!0)],2)):g("",!0),b.collapsed==!1?(l(),u("span",Be,[a(P,{class:"bg-success clickable",title:"Autolock Zeitplan duplizieren",onClick:e[1]||(e[1]=E(k=>n.copyPlan(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1}),a(P,{class:"bg-danger clickable ml-1",title:"Autolock Zeitplan löschen",onClick:e[2]||(e[2]=E(k=>n.removePlanModal(),["stop"]))},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1})])):g("",!0)]),default:o(()=>[a(C,{modelValue:n.plan.name,"onUpdate:modelValue":e[3]||(e[3]=b=>n.plan.name=b),title:"Bezeichnung"},null,8,["modelValue"]),a(B,{modelValue:n.plan.active,"onUpdate:modelValue":e[4]||(e[4]=b=>n.plan.active=b),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=b=>n.plan.time[0]=b),title:"Sperren um",subtype:"time"},null,8,["modelValue"]),a(C,{modelValue:n.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=b=>n.plan.time[1]=b),title:"Freigeben um",subtype:"time"},null,8,["modelValue"]),a(B,{modelValue:n.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=b=>n.plan.frequency.selected=b),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),n.plan.frequency.selected=="once"?(l(),h(C,{key:0,modelValue:n.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=b=>n.plan.frequency.once[0]=b),title:"Sperren ab ...",subtype:"date"},null,8,["modelValue"])):g("",!0),n.plan.frequency.selected=="once"?(l(),h(C,{key:1,modelValue:n.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=b=>n.plan.frequency.once[1]=b),title:"... bis",subtype:"date",min:n.plan.frequency.once[0]},null,8,["modelValue","min"])):g("",!0),n.plan.frequency.selected=="weekly"?(l(),u("div",We,[(l(!0),u(A,null,U(t.weekdays,(b,k)=>(l(),h(B,{key:k,modelValue:n.plan.frequency.weekly[k],"onUpdate:modelValue":V=>n.plan.frequency.weekly[k]=V,title:b,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):g("",!0)]),_:1},8,["title"])],64)}const ze=z(Ce,[["render",Ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/TemplateAutoLockPlan.vue"]]);j.add(te,R,N,Z,$,H,ne,ae);const Ie={name:"OpenwbChargePointInstallationView",components:{FontAwesomeIcon:M,FontAwesomeLayers:ee,OpenwbChargePointProxy:ye,TemplateAutoLockPlan:ze},mixins:[J,oe],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!0},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ocpp/config",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/chargepoints",writeable:!1},{topic:"openWB/system/configurable/chargepoints_internal",writeable:!1}],chargePointToAdd:void 0,showChargePointModal:!1,modalChargePointIndex:void 0,showChargePointTemplateModal:!1,modalChargePointTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},installedChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[c,v]of Object.entries(t))(v&&typeof v=="object"&&v.type==="internal_openwb"||this.$store.state.mqtt["openWB/general/extern"]===!1)&&(e[c]=v);return e}},chargePointTemplates(){const t=this.getWildcardTopics("openWB/chargepoint/template/+");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},chargePointTemplateList:{get(){let t=[];return Object.keys(this.chargePointTemplates).forEach(e=>{let c=parseInt(e.match(/([0-9]+)/g)[0]),v=this.$store.state.mqtt["openWB/chargepoint/template/"+c].name;t.push({value:c,text:v})}),t}}},methods:{addChargePoint(){this.$emit("sendCommand",{command:"addChargepoint",data:{type:this.chargePointToAdd}})},removeChargePointModal(t,e){t.stopPropagation(),this.modalChargePointIndex=parseInt(e.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showChargePointModal=!0},removeChargePoint(t,e){this.showChargePointModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepoint",data:{id:e}})},getChargePointList(){return this.$store.state.mqtt["openWB/general/extern"]===!1?this.$store.state.mqtt["openWB/system/configurable/chargepoints"]:this.$store.state.mqtt["openWB/system/configurable/chargepoints_internal"]},getChargePointName(t){return this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+t+"/config"].name:"Ladepunkt "+t},getChargePointTemplateIndex(t){return parseInt(t.match(/([^/]+)$/)[0])},getChargePointTemplateName(t){return this.$store.state.mqtt["openWB/chargepoint/template/"+t]?this.$store.state.mqtt["openWB/chargepoint/template/"+t].name:"Profil "+t},addChargePointTemplate(t,e){t.stopPropagation();let c={};e&&(c.copy=this.getChargePointTemplateIndex(e)),this.$emit("sendCommand",{command:"addChargepointTemplate",data:c})},removeChargePointTemplateModal(t,e){t.stopPropagation(),this.modalChargePointTemplateIndex=this.getChargePointTemplateIndex(e),this.showChargePointTemplateModal=!0},removeChargePointTemplate(t,e){this.showChargePointTemplateModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeChargepointTemplate",data:{id:e}})},addChargePointTemplateAutolockPlan(t){this.$emit("sendCommand",{command:"addAutolockPlan",data:{template:this.getChargePointTemplateIndex(t)}})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},De={class:"chargePointInstallation"},Ue={name:"chargePointInstallationForm"},Ee=["href"],Se={key:0},xe={key:2},qe={key:0},Te={key:0,class:"border-secondary"},Oe={key:0},Fe={key:1},Me={key:1},je={key:0},Re={key:0},Ne={key:1},Ze={key:2},$e={key:1},He={key:0},Je={key:2},Ge={key:4};function Qe(t,e,c,v,_,n){const y=p("openwb-base-modal-dialog"),f=p("font-awesome-icon"),P=p("openwb-base-alert"),C=p("openwb-base-avatar"),B=p("openwb-base-text-input"),I=p("openwb-base-select-input"),b=p("openwb-charge-point-proxy"),k=p("openwb-base-heading"),V=p("openwb-base-button-group-input"),D=p("openwb-base-card"),G=p("font-awesome-layers"),x=p("router-link"),Q=p("openwb-base-array-input"),q=p("openwb-base-range-input"),X=p("openwb-base-number-input"),Y=p("template-auto-lock-plan"),K=p("openwb-base-submit-buttons");return l(),u(A,null,[a(y,{show:_.showChargePointModal,title:"Ladepunkt löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeChargePoint(s,_.modalChargePointIndex))},{default:o(()=>[i(' Willst Du den Ladepunkt "'+w(n.getChargePointName(_.modalChargePointIndex))+'" (ID: '+w(_.modalChargePointIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(y,{show:_.showChargePointTemplateModal,title:"Ladepunkt-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeChargePointTemplate(s,_.modalChargePointTemplateIndex))},{default:o(()=>[i(' Willst Du das Ladepunkt-Profil "'+w(n.getChargePointTemplateName(_.modalChargePointTemplateIndex))+'" (ID: '+w(_.modalChargePointTemplateIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),m("div",De,[m("form",Ue,[a(D,{title:"Ladepunkte",subtype:"primary",collapsible:!0,collapsed:!c.installAssistantActive},{header:o(()=>[a(f,{icon:["fas","charging-station"]}),e[7]||(e[7]=i(" Ladepunkte ",-1))]),default:o(()=>[a(P,{subtype:"info"},{default:o(()=>[e[8]||(e[8]=i(" Eine detaillierte Anleitung zur Einrichtung der Ladepunkte findet sich in unserem ",-1)),m("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:konfiguration:ladepunkte:openwb`,target:"_blank",rel:"noopener noreferrer"},"Wiki",8,Ee),e[9]||(e[9]=i(" . ",-1))]),_:1}),(l(!0),u(A,null,U(n.installedChargePoints,(s,d)=>(l(),h(D,{key:d,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(r=>[r.collapsed?g("",!0):(l(),h(C,{key:0,class:"bg-danger clickable",title:"Ladepunkt löschen",onClick:W=>n.removeChargePointModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":r=>t.updateState(d,r,"name")},null,8,["model-value","onUpdate:modelValue"]),a(B,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[d].type},null,8,["model-value"]),s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),u("span",Se,[a(I,{title:"Ladepunkt-Profil",options:n.chargePointTemplateList,"model-value":t.$store.state.mqtt[d].template,"onUpdate:modelValue":r=>t.updateState(d,r,"template")},null,8,["options","model-value","onUpdate:modelValue"])])):g("",!0),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(l(),h(B,{key:1,title:"OCPP-Chargebox ID","model-value":s?.ocpp_chargebox_id,"onUpdate:modelValue":r=>t.updateState(d,r,"ocpp_chargebox_id")},{help:o(()=>[...e[10]||(e[10]=[i(" Bitte gib hier die Chargebox ID ein, die im OCPP-Backend für diesen Ladepunkt verwendet wird. Sollen die Daten dieses Ladepunktes nicht an ein OCPP-Backend übertragen werden, lasse dieses Feld leer. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):g("",!0),e[16]||(e[16]=m("hr",null,null,-1)),a(b,{"charge-point":s,"onUpdate:configuration":r=>n.updateConfiguration(d,r)},null,8,["charge-point","onUpdate:configuration"]),(s?.type!=="internal_openwb"||t.$store.state.mqtt["openWB/general/extern"]===!1)&&s?.charging_type!=="DC"?(l(),u("div",xe,[e[15]||(e[15]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[11]||(e[11]=[i(" Hardware-Optionen ",-1)])]),_:1}),a(V,{title:"automatische Phasenumschaltung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.auto_phase_switch_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"auto_phase_switch_hw")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Control-Pilot-Unterbrechung vorhanden",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s?.control_pilot_interruption_hw,"onUpdate:modelValue":r=>t.updateState(d,r,"control_pilot_interruption_hw")},{help:o(()=>[...e[12]||(e[12]=[i(' Die Control-Pilot-Leitung ist im Ladekabel integriert und dient der Steuerung der Fahrzeugladung (An/Aus/Stromvorgaben). Bei einigen Fahrzeugen können durch die Regelung erzwungene, längere Ladestopps (z.B. beim PV-Laden) zu unerwünschten "Einschlaf"-Effekten des Fahrzeuges führen. Mit diesem Feature, welches hardwareseitig verbaut sein muss, kann ein Abstecken des Ladesteckers simuliert werden, um ein Aufwecken des Fahrzeuges zu ermöglichen. Die Funktion hängt immer auch vom Fahrzeugtyp ab. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{default:o(()=>[...e[13]||(e[13]=[i(" Elektrischer Anschluss ",-1)])]),_:1}),a(V,{title:"Anzahl angeschlossener Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":s?.connected_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"connected_phases")},null,8,["model-value","onUpdate:modelValue"]),a(V,{title:"Phase 1 des Ladekabels",buttons:[{buttonValue:1,text:"EVU L1"},{buttonValue:2,text:"EVU L2"},{buttonValue:3,text:"EVU L3"}],"model-value":s?.phase_1,"onUpdate:modelValue":r=>t.updateState(d,r,"phase_1")},{help:o(()=>[...e[14]||(e[14]=[i(" Hier ist anzugeben, an welcher Phase des Hausanschlusses (EVU-Punkt) die Phase 1 dieses Ladepunktes angeschlossen ist. Diese Information wird für das Lastmanagement benötigt, um bei einer Schieflast gezielt einzelne Ladepunkte zu drosseln.",-1),m("br",null,null,-1),i(' Bei mehreren Ladepunkten macht es Sinn, die Phasen der LP rotierend anzuschließen, damit mehrere "nicht-dreiphasig" ladende Fahrzeuge mit optimaler Leistung laden können, bevor das Lastmanagement eingreift.',-1),m("br",null,null,-1),i(" Es wird vorausgesetzt, dass das Drehfeld innerhalb der Installation gleich bleibt. Wenn z.B. L1 des Ladepunktes auf EVU-L2 liegt, muss L2 des Ladepunktes auf EVU-L3 aufgelegt sein (und L3 des Ladepunktes auf EVU-L1).",-1),m("br",null,null,-1),i(" Eine Möglichkeit, die zur Ladepunktphase L1 zugehörige EVU-Phase zu ermitteln, ist eine einphasige Ladung zu starten und die Phasenströme am EVU-Zähler zu beobachten. Mit einem zweiphasig ladenden Fahrzeug kann danach auch der Anschluss von L2 ermittelt und so das Drehfeld kontrolliert werden.",-1),m("br",null,null,-1),i(" Im Zweifel bitte das Drehfeld von einer Fachkraft prüfen und korrigieren lassen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])):g("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedChargePoints).length>0?(l(),u("hr",qe)):g("",!0),a(I,{title:"Verfügbare Ladepunkte","not-selected":"Bitte auswählen",options:n.getChargePointList(),"model-value":_.chargePointToAdd,"add-button":!0,"onUpdate:modelValue":e[2]||(e[2]=s=>_.chargePointToAdd=s),"onInput:add":n.addChargePoint},{help:o(()=>[...e[17]||(e[17]=[i(" Bitte einen Ladepunkt auswählen, der der openWB-Regelung hinzugefügt werden soll.",-1),m("br",null,null,-1),m("ul",null,[m("li",null," Interne openWB - wenn diese openWB über einen verbauten Ladepunkt mit Regelcontroller verfügt (z.B. Standard(+), Custom, Duo, Buchse, NICHT Standalone); ansonsten immer anlegen, egal ob diese openWB steuert = primary oder ferngesteuert wird = secondary "),m("li",null," Secondary openWB - wenn diese openWB (primary) die Fernsteuerung von weiteren openWB (secondary) übernimmt "),m("li",null,"MQTT-Ladepunkt - nur zur Nutzung des openWB-Simulators zugelassen"),m("li",null,"openWB Pro - wenn diese openWB (primary) die Fernsteuerung einer openWB Pro (secondary) übernimmt"),m("li",null," openWB series2 Satellit/Satellit Duo - wenn diese openWB (primary) die Fernsteuerung einer openWB series2 Satellit/Satellit Duo (secondary) übernimmt "),m("li",null," smartWB/EVSE-Wifi - wenn diese openWB (primary) die Fernsteuerung einer smartWB/EVSE-Wifi übernimmt ")],-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1},8,["collapsed"]),t.$store.state.mqtt["openWB/general/extern"]==!1||!c.installAssistantActive?(l(),u("hr",Te)):g("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1||!c.installAssistantActive?(l(),h(D,{key:1,title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{header:o(()=>[a(G,{class:"fa-lg"},{default:o(()=>[a(f,{icon:["far","file"]}),a(f,{icon:["fas","charging-station"],transform:"shrink-8"})]),_:1}),e[18]||(e[18]=i(" Ladepunkt-Profile ",-1))]),actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Neues Ladepunkt-Profil anlegen",onClick:n.addChargePointTemplate},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),u("div",Oe,[a(P,{subtype:"info"},{default:o(()=>[...e[19]||(e[19]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),u("div",Fe,[(l(!0),u(A,null,U(n.chargePointTemplates,(s,d)=>(l(),h(D,{key:d,title:`${s.name} (ID: ${n.getChargePointTemplateIndex(d)})`,collapsible:!0,collapsed:!0},{actions:o(r=>[r.collapsed==!1?(l(),h(C,{key:0,class:"bg-success clickable",title:"Ladepunkt-Profil duplizieren",onClick:W=>n.addChargePointTemplate(W,d)},{default:o(()=>[a(f,{icon:["fas","copy"]})]),_:1},8,["onClick"])):g("",!0),r.collapsed==!1&&!d.endsWith("/0")?(l(),h(C,{key:1,class:"bg-danger clickable ml-1",title:"Ladepunkt-Profil löschen",onClick:W=>n.removeChargePointTemplateModal(W,d)},{default:o(()=>[a(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):g("",!0)]),default:o(()=>[a(B,{title:"Bezeichnung",subtype:"text","model-value":s.name,disabled:d.endsWith("/0"),"onUpdate:modelValue":r=>t.updateState(d,r,"name")},ie({_:2},[d.endsWith("/0")?{name:"help",fn:o(()=>[e[20]||(e[20]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),n.dcChargingEnabled===!0?(l(),h(V,{key:0,title:"Typ des Ladeprofils",buttons:[{buttonValue:"AC",text:"AC"},{buttonValue:"DC",text:"DC"}],"model-value":s.charging_type,"onUpdate:modelValue":r=>t.updateState(d,r,"charging_type")},null,8,["model-value","onUpdate:modelValue"])):g("",!0),e[40]||(e[40]=m("hr",null,null,-1)),c.installAssistantActive?g("",!0):(l(),u("div",Me,[a(k,null,{default:o(()=>[...e[21]||(e[21]=[i(" Zugangskontrolle ",-1)])]),_:1}),s.valid_tags.length>0?(l(),u("div",je,[a(P,{subtype:"info"},{default:o(()=>[e[23]||(e[23]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[22]||(e[22]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[24]||(e[24]=i(". ",-1)),t.$store.state.mqtt["openWB/optional/rfid/active"]===!0&&s.disable_after_unplug?(l(),u("div",Re," Ladepunkte mit diesem Profil werden automatisch beim Abstecken eines Fahrzeugs gesperrt und müssen für den nächsten Ladevorgang mit einem ID-Tag entsperrt werden. ")):t.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(l(),u("div",Ne," Die Zugangskontrolle ist aktuell deaktiviert. ")):(l(),u("div",Ze," Die Zugangskontrolle ist aktiviert, jedoch werden Ladepunkte mit diesem Profil nicht automatisch nach dem Abstecken eines Fahrzeugs gesperrt. "))]),_:2},1024),a(Q,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":s.valid_tags},{help:o(()=>[...e[25]||(e[25]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Ladepunkt-Profil zugeordnet sind. Nur mit diesen ID-Tags können Ladepunkte, denen dieses Profil zugeordnet ist, entsperrt werden. ",-1)])]),_:1},8,["model-value"])])):(l(),u("div",$e,[a(P,{subtype:"info"},{default:o(()=>[e[27]||(e[27]=i(" Einstellungen zur Zugangskontrolle finden sich unter ",-1)),a(x,{to:"/IdentificationConfiguration"},{default:o(()=>[...e[26]||(e[26]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[28]||(e[28]=i(".",-1)),e[29]||(e[29]=m("br",null,null,-1)),e[30]||(e[30]=i(" Dem Ladepunkt-Profil sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})]))])),e[41]||(e[41]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[31]||(e[31]=[i(" Angaben zum konfigurierten Ladestrom der openWB ",-1)])]),_:1}),a(P,{subtype:"info"},{default:o(()=>[e[32]||(e[32]=i(" Hier werden die maximalen Ladeströme entsprechend der in dem zugeordneten Ladepunkt genutzten Phasen eingestellt.",-1)),e[33]||(e[33]=m("br",null,null,-1)),e[34]||(e[34]=i(" Generell gilt, dass diese Werte in Übereinstimmung mit der Ausführung des Ladepunktes und des elektrischen Anschlusses bzw. der Absicherung zu wählen sind. ",-1)),s.charging_type==="AC"?(l(),u("span",He," Bei einer openWB mit 22kW Maximalleistung sind hier jeweils 32A einzustellen. Ist die openWB beispielsweise auf 11kW begrenzt (KfW-Förderung oder die Zuleitung ist mit 16A abgesichert), dann sind hier jeweils 16A einzustellen. ")):g("",!0)]),_:2},1024),s.charging_type==="AC"||n.dcChargingEnabled!==!0?(l(),u("div",Je,[a(q,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":s.max_current_single_phase,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),a(q,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":s.max_current_multi_phases,"onUpdate:modelValue":r=>t.updateState(d,r,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"])])):(l(),h(X,{key:3,title:"Maximalleistung",min:22,max:420,step:1,unit:"kW",precision:5,"model-value":t.ac_current2dc_power(s.dc_max_current),"onUpdate:modelValue":r=>t.updateState(d,t.dc_power2ac_current(r),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])),c.installAssistantActive?g("",!0):(l(),u("div",Ge,[e[39]||(e[39]=m("hr",null,null,-1)),a(k,null,{default:o(()=>[...e[35]||(e[35]=[i(" Sperren nach Uhrzeit (Komplettsperrung - Freischaltung per Identifikation möglich) ",-1)])]),_:1}),a(V,{title:"Sperren nach Uhrzeit aktiv",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.active,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.active")},{help:o(()=>[...e[36]||(e[36]=[i(" Wird Sperren nach Uhrzeit aktiviert, können Fahrzeugladungen mittels Zeitplan auf gewünschte Zeitbereiche eingeschränkt werden. Dies kann z.B. bei Zugänglichkeiten zu Ladepunkten in öffentlichen oder halb-öffentlichen Bereichen sinnvoll sein. In dieser Zeit ist aber eine Freischaltung per RFID, Fahrzeugerkennung oder Pin möglich, wenn Identifikation aktiviert ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(V,{title:"Erst nach Ladeende sperren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":s.autolock.wait_for_charging_end,"onUpdate:modelValue":r=>t.updateState(d,r,"autolock.wait_for_charging_end")},{help:o(()=>[...e[37]||(e[37]=[i(' Wenn ein Zeitplan Sperren nach Uhrzeit aktiviert, werden alle Ladepunkte direkt gesperrt und laufende Ladevorgänge beendet. Wird hier "Ja" ausgewählt, dann werden laufende Ladevorgänge NICHT beendet und diese Ladepunkte erst nach abgeschlossener Ladung gesperrt. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(k,null,{actions:o(()=>[a(C,{class:"bg-success clickable",title:"Neuen Autolock Zeitplan anlegen",onClick:E(r=>n.addChargePointTemplateAutolockPlan(d),["stop"])},{default:o(()=>[a(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:o(()=>[e[38]||(e[38]=i(" Zeitpläne für Sperren nach Uhrzeit ",-1))]),_:2},1024)])),(l(!0),u(A,null,U(s.autolock.plans,(r,W)=>(l(),h(Y,{key:W,"model-value":r,"template-id":s.id,"onUpdate:modelValue":S=>t.updateState(d,S,`autolock.plans.${W}`),onSendCommand:e[3]||(e[3]=S=>t.$emit("sendCommand",S))},null,8,["model-value","template-id","onUpdate:modelValue"]))),128))]),_:2},1032,["title"]))),128))]))]),_:1})):g("",!0),a(K,{"form-name":"chargePointInstallationForm",onSave:e[4]||(e[4]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[5]||(e[5]=s=>t.$emit("reset")),onDefaults:e[6]||(e[6]=s=>t.$emit("defaults"))})])])],64)}const Xe=z(Ie,[["render",Qe],["__scopeId","data-v-75fe5743"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/ChargePointInstallation.vue"]]),at=Object.freeze(Object.defineProperty({__proto__:null,default:Xe},Symbol.toStringTag,{value:"Module"}));export{re as C,be as a,Xe as b,at as c}; diff --git a/web/settings/assets/Chart-CR-tn1oB.js b/web/settings/assets/Chart-CswxV9n9.js similarity index 99% rename from web/settings/assets/Chart-CR-tn1oB.js rename to web/settings/assets/Chart-CswxV9n9.js index 699dca9e18..fb2698e165 100644 --- a/web/settings/assets/Chart-CR-tn1oB.js +++ b/web/settings/assets/Chart-CswxV9n9.js @@ -1 +1 @@ -import{F as H,l as B,X as V,a4 as z,a3 as M,a2 as O,aa as j,ab as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as E}from"./index-D_eD74fL.js";import{L as N,g as P,C as F,p as K,a as Z,b as J,c as X,B as G,f as U,P as Y,d as Q,T as ee,i as te,e as ae}from"./vendor-chartjs-0RUe1kvq.js";import{_ as D,k as s,e as l,K as f,L as _,j as w,x as g,J as v,l as d,y as b,m as p,q as h,A as x,u as A,n as re}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";const ne={name:"LegendStandard",props:{items:{type:Array,default:()=>[]}},emits:["toggle"]},ie={class:"custom-legend d-flex flex-wrap justify-content-center"},oe=["onClick"],se={width:"20",height:"6",class:"mr-1"},le=["stroke","stroke-dasharray"];function ce(e,t,a,n,i,r){return s(),l("div",ie,[(s(!0),l(f,null,_(a.items,o=>(s(),l("div",{key:o.label,class:w(["legend-item d-flex align-items-center m-1",{"legend-item-hidden":o.hidden}]),role:"button",onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",se,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,le)])),g("span",{class:w(["legend-label",{"text-line-through":o.hidden}])},v(o.label),3)],10,oe))),128))])}const de=D(ne,[["render",ce],["__scopeId","data-v-40ecb731"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendStandard.vue"]]),ue={name:"LegendCategory",props:{label:{type:String,default:""},items:{type:Array,default:()=>[]}},emits:["toggle"]},pe={class:"dropdown m-1"},he={class:"btn btn-secondary dropdown-toggle",type:"button","data-toggle":"dropdown","aria-expanded":"false"},ge={class:"dropdown-menu"},be=["onClick"],me={width:"20",height:"6",class:"mr-1"},ye=["stroke","stroke-dasharray"];function fe(e,t,a,n,i,r){return s(),l("div",pe,[g("button",he,v(a.label),1),g("ul",ge,[(s(!0),l(f,null,_(a.items,o=>(s(),l("li",{key:o.label,class:w(["dropdown-item",{"legend-item-hidden":o.hidden}]),onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",me,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,ye)])),g("span",{class:w({"text-line-through":o.hidden})},v(o.label),3)],10,be))),128))])])}const _e=D(ue,[["render",fe],["__scopeId","data-v-1ce49a26"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategory.vue"]]),ke={name:"LegendCategoriesGroup",components:{LegendCategory:_e},props:{categorizedItems:{type:Object,default:()=>({chargepoint:[],vehicle:[],component:[]})}},emits:["toggle"],data(){return{categoryLabels:{component:"Komponenten",chargepoint:"Ladepunkte",vehicle:"Fahrzeuge"}}}},xe={class:"d-flex flex-wrap justify-content-center"};function ve(e,t,a,n,i,r){const o=d("LegendCategory");return s(),l("div",xe,[(s(!0),l(f,null,_(a.categorizedItems,(c,k)=>(s(),b(o,{key:k,label:i.categoryLabels[k],items:c,onToggle:t[0]||(t[0]=y=>e.$emit("toggle",y))},null,8,["label","items"]))),128))])}const De=D(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategoriesGroup.vue"]]),Ce={name:"ChartLegend",components:{LegendCategoriesGroup:De,LegendStandard:de},props:{chart:{type:Object,default:()=>null},range:{type:String,default:"day"}},computed:{legendItems(){if(!this.chart||!this.chart.data)return[];const e=this.$store.state.chartLegend.hiddenDatasets;return this.chart.data.datasets.map((t,a)=>({label:t.label,index:a,category:t.category||"component",hidden:e.includes(t.label),borderColor:t.borderColor,borderDash:t.borderDash}))},categorizedLegendItems(){if(!this.chart)return{chargepoint:[],vehicle:[],component:[]};let e={};const t=this.$store.state.chartLegend.hiddenDatasets;return this.range==="day"?e={chargepoint:[],vehicle:[],component:[]}:e={chargepoint:[],component:[]},(this.chart?.data?.datasets||[]).forEach((n,i)=>{const r=n.category||"component";e[r]||(e[r]=[]),e[r].push({label:n.label,index:i,hidden:t.includes(n.label),borderColor:n.borderColor,borderDash:n.borderDash})}),e},showStandardLegend(){return this.legendItems.length<12}},watch:{chart(e){this.defaultHiddenDatasets(e)}},mounted(){this.defaultHiddenDatasets(this.chart)},methods:{toggleDataset(e){if(!this.chart)return;const t=this.chart.data.datasets.find(a=>a.label===e);t&&(this.$store.commit("chartLegend/toggleDataset",t.label),this.applyHiddenDatasetsToChart())},defaultHiddenDatasets(e){if(e&&e.data&&e.data.datasets.length){const t=e.data.datasets.filter(a=>a.hidden).map(a=>a.label);this.$store.commit("chartLegend/setHiddenDatasets",t),this.applyHiddenDatasetsToChart()}},applyHiddenDatasetsToChart(){if(!this.chart||!this.chart.data)return;const e=this.$store.state.chartLegend.hiddenDatasets;this.chart.data.datasets.forEach(t=>{t.hidden=e.includes(t.label)}),this.chart.update()}}};function we(e,t,a,n,i,r){const o=d("LegendStandard"),c=d("LegendCategoriesGroup");return r.showStandardLegend?(s(),b(o,{key:a.range,items:r.legendItems,onToggle:r.toggleDataset},null,8,["items","onToggle"])):(s(),b(c,{key:1,"categorized-items":r.categorizedLegendItems,onToggle:r.toggleDataset},null,8,["categorized-items","onToggle"]))}const Ae=D(Ce,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/ChartLegend.vue"]]);B.add(V,z,M,O,j,q);F.register(K,Z,J,X,G,U,Y,Q,ee,te,ae);const Se={name:"OpenwbChartView",components:{ChartjsLine:N,FontAwesomeIcon:H,ChartLegend:Ae},mixins:[E],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{chartInstance:null,mqttTopics:[{topic:"openWB/bat/+/get/power",writeable:!1},{topic:"openWB/bat/get/power",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1},{topic:"openWB/counter/+/get/power",writeable:!1},{topic:"openWB/counter/set/home_consumption",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/log/daily/#",writeable:!1},{topic:"openWB/log/monthly/#",writeable:!1},{topic:"openWB/log/yearly/#",writeable:!1},{topic:"openWB/pv/+/get/power",writeable:!1},{topic:"openWB/pv/get/power",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",category:"component",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",category:"component",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",category:"component",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"chargepoint",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",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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",category:"vehicle",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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)",category:"component",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)",category:"component",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)",category:"component",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:!1},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return Object.keys(e).forEach(t=>{Object.keys(e[t]).forEach(a=>{this.objectAccessible(t,a)||(console.debug(`Removing totals for ${t} - ${a} due to missing access rights.`),delete e[t][a])}),Object.keys(e[t]).length===0&&(console.debug(`Removing empty totals for ${t}.`),delete e[t])}),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);let t={};return JSON.parse(JSON.stringify(e)).forEach(a=>{a.timestamp=a.timestamp*1e3,t[a.timestamp]=a}),Object.values(t)}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}},objectAccessible(){return(e,t)=>{let a;const n=parseInt(t.match(/\d+$/)?.[0]||"");switch(e){case"hc":a="openWB/counter/set/home_consumption";break;case"cp":t=="all"?a="openWB/chargepoint/get/power":isNaN(n)||(a=`openWB/chargepoint/${n}/config`);break;case"ev":isNaN(n)||(a=`openWB/vehicle/${n}/info`);break;case"pv":t=="all"?a="openWB/pv/get/power":isNaN(n)||(a=`openWB/pv/${n}/get/power`);break;case"bat":t=="all"?a="openWB/bat/get/power":isNaN(n)||(a=`openWB/bat/${n}/get/power`);break;case"counter":isNaN(n)||(a=`openWB/counter/${n}/get/power`);break}return a?this.$store.state.mqtt[a]!==void 0:!0}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},updated(){this.$nextTick(()=>{this.$refs.myChart?.chart&&(this.chartInstance=this.$refs.myChart.chart)})},mounted(){this.init(),re(()=>{this.chartInstance=this.$refs.myChart?.chart})},methods:{getChartInstance(){return this.$refs.myChart?this.$refs.myChart.chart:null},refreshLegend(){this.$nextTick(()=>{this.chartInstance=this.$refs.myChart?.chart})},handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=P(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var o="",c="";switch(this.chartRange){case"month":o=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),c="day";break;case"year":o=r.substring(0,4)+"-"+r.substring(4,6),c="month";break}this.blockChartInit=!0,this.chartDate=o,this.chartRange=c},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":i=["Speicher"],a==="soc"&&i.push("SoC");break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"];break}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.category=this.datasetTemplates[i].category,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){if(!this.objectAccessible(e,t)){console.debug("skipping dataset due to missing rights:",e,t,a);return}let n;this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&this.addDataset(e,t,a,i)}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm?.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},Re={class:"chart"},Ie={key:0},Le={key:1},We={name:"chartFilterForm"},Te={key:1},$e={key:1},He={class:"openwb-chart"},Be={name:"chartTotalsForm"},Ve={key:1};function ze(e,t,a,n,i,r){const o=d("openwb-base-alert"),c=d("openwb-base-select-input"),k=d("openwb-base-text-input"),y=d("openwb-base-card"),R=d("chartjs-line"),I=d("ChartLegend"),L=d("font-awesome-icon"),W=d("openwb-base-heading");return s(),l("div",Re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),l("div",Ie,[p(o,{subtype:"info"},{default:h(()=>[...t[3]||(t[3]=[x(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(s(),l("div",Le,[p(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:h(()=>[g("form",We,[p(c,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=m=>i.chartRange=m),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),p(k,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=m=>r.chartDate=m),t[2]||(t[2]=m=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[4]||(t[4]=[x(" Daten werden geladen... ",-1)])]),_:1})):(s(),l("div",Te,[r.chartDataHasEntries?(s(),l("div",$e,[p(y,{title:"Diagramm",collapsible:!0,collapsed:!1,onExpanded:r.refreshLegend},{default:h(()=>[g("div",He,[p(R,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])]),i.chartInstance?(s(),b(I,{key:i.chartDatasets.datasets.length,ref:"chartLegend",range:i.chartRange,chart:r.getChartInstance()},null,8,["range","chart"])):A("",!0)]),_:1},8,["onExpanded"]),p(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:h(()=>[g("form",Be,[(s(!0),l(f,null,_(Object.fromEntries(Object.entries(r.chartTotals).filter(([m,u])=>Object.keys(u).length>0)),(m,u)=>(s(),b(y,{key:u,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(u)},{header:h(()=>[p(L,{icon:r.getCardIcon(u)},null,8,["icon"]),x(" "+v(r.getTotalsLabel(u)),1)]),default:h(()=>[(s(!0),l(f,null,_(m,(T,C)=>(s(),l("div",{key:C},[u!=="hc"?(s(),b(W,{key:0},{default:h(()=>[x(v(r.getTotalsLabel(u,C)),1)]),_:2},1024)):A("",!0),(s(!0),l(f,null,_(T,($,S)=>(s(),l("div",{key:S},[p(k,{title:r.getTotalsLabel(u,C,S),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber($/1e3,3)},null,8,["title","model-value"])]))),128)),C=="all"&&u!="hc"?(s(),l("hr",Ve)):A("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[5]||(t[5]=[x(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])]),_:1}))]))]))])}const Ke=D(Se,[["render",ze],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{Ke as default}; +import{F as H,l as B,X as V,a4 as z,a3 as M,a2 as O,aa as j,ab as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as E}from"./index-MVrRMMo2.js";import{L as N,g as P,C as F,p as K,a as Z,b as J,c as X,B as G,f as U,P as Y,d as Q,T as ee,i as te,e as ae}from"./vendor-chartjs-0RUe1kvq.js";import{_ as D,k as s,e as l,K as f,L as _,j as w,x as g,J as v,l as d,y as b,m as p,q as h,A as x,u as A,n as re}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";const ne={name:"LegendStandard",props:{items:{type:Array,default:()=>[]}},emits:["toggle"]},ie={class:"custom-legend d-flex flex-wrap justify-content-center"},oe=["onClick"],se={width:"20",height:"6",class:"mr-1"},le=["stroke","stroke-dasharray"];function ce(e,t,a,n,i,r){return s(),l("div",ie,[(s(!0),l(f,null,_(a.items,o=>(s(),l("div",{key:o.label,class:w(["legend-item d-flex align-items-center m-1",{"legend-item-hidden":o.hidden}]),role:"button",onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",se,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,le)])),g("span",{class:w(["legend-label",{"text-line-through":o.hidden}])},v(o.label),3)],10,oe))),128))])}const de=D(ne,[["render",ce],["__scopeId","data-v-40ecb731"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendStandard.vue"]]),ue={name:"LegendCategory",props:{label:{type:String,default:""},items:{type:Array,default:()=>[]}},emits:["toggle"]},pe={class:"dropdown m-1"},he={class:"btn btn-secondary dropdown-toggle",type:"button","data-toggle":"dropdown","aria-expanded":"false"},ge={class:"dropdown-menu"},be=["onClick"],me={width:"20",height:"6",class:"mr-1"},ye=["stroke","stroke-dasharray"];function fe(e,t,a,n,i,r){return s(),l("div",pe,[g("button",he,v(a.label),1),g("ul",ge,[(s(!0),l(f,null,_(a.items,o=>(s(),l("li",{key:o.label,class:w(["dropdown-item",{"legend-item-hidden":o.hidden}]),onClick:c=>e.$emit("toggle",o.label)},[(s(),l("svg",me,[g("line",{x1:"0",y1:"3",x2:"20",y2:"3",stroke:o.borderColor,"stroke-width":"3","stroke-dasharray":o.borderDash&&o.borderDash.length?o.borderDash.join(","):""},null,8,ye)])),g("span",{class:w({"text-line-through":o.hidden})},v(o.label),3)],10,be))),128))])])}const _e=D(ue,[["render",fe],["__scopeId","data-v-1ce49a26"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategory.vue"]]),ke={name:"LegendCategoriesGroup",components:{LegendCategory:_e},props:{categorizedItems:{type:Object,default:()=>({chargepoint:[],vehicle:[],component:[]})}},emits:["toggle"],data(){return{categoryLabels:{component:"Komponenten",chargepoint:"Ladepunkte",vehicle:"Fahrzeuge"}}}},xe={class:"d-flex flex-wrap justify-content-center"};function ve(e,t,a,n,i,r){const o=d("LegendCategory");return s(),l("div",xe,[(s(!0),l(f,null,_(a.categorizedItems,(c,k)=>(s(),b(o,{key:k,label:i.categoryLabels[k],items:c,onToggle:t[0]||(t[0]=y=>e.$emit("toggle",y))},null,8,["label","items"]))),128))])}const De=D(ke,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/LegendCategoriesGroup.vue"]]),Ce={name:"ChartLegend",components:{LegendCategoriesGroup:De,LegendStandard:de},props:{chart:{type:Object,default:()=>null},range:{type:String,default:"day"}},computed:{legendItems(){if(!this.chart||!this.chart.data)return[];const e=this.$store.state.chartLegend.hiddenDatasets;return this.chart.data.datasets.map((t,a)=>({label:t.label,index:a,category:t.category||"component",hidden:e.includes(t.label),borderColor:t.borderColor,borderDash:t.borderDash}))},categorizedLegendItems(){if(!this.chart)return{chargepoint:[],vehicle:[],component:[]};let e={};const t=this.$store.state.chartLegend.hiddenDatasets;return this.range==="day"?e={chargepoint:[],vehicle:[],component:[]}:e={chargepoint:[],component:[]},(this.chart?.data?.datasets||[]).forEach((n,i)=>{const r=n.category||"component";e[r]||(e[r]=[]),e[r].push({label:n.label,index:i,hidden:t.includes(n.label),borderColor:n.borderColor,borderDash:n.borderDash})}),e},showStandardLegend(){return this.legendItems.length<12}},watch:{chart(e){this.defaultHiddenDatasets(e)}},mounted(){this.defaultHiddenDatasets(this.chart)},methods:{toggleDataset(e){if(!this.chart)return;const t=this.chart.data.datasets.find(a=>a.label===e);t&&(this.$store.commit("chartLegend/toggleDataset",t.label),this.applyHiddenDatasetsToChart())},defaultHiddenDatasets(e){if(e&&e.data&&e.data.datasets.length){const t=e.data.datasets.filter(a=>a.hidden).map(a=>a.label);this.$store.commit("chartLegend/setHiddenDatasets",t),this.applyHiddenDatasetsToChart()}},applyHiddenDatasetsToChart(){if(!this.chart||!this.chart.data)return;const e=this.$store.state.chartLegend.hiddenDatasets;this.chart.data.datasets.forEach(t=>{t.hidden=e.includes(t.label)}),this.chart.update()}}};function we(e,t,a,n,i,r){const o=d("LegendStandard"),c=d("LegendCategoriesGroup");return r.showStandardLegend?(s(),b(o,{key:a.range,items:r.legendItems,onToggle:r.toggleDataset},null,8,["items","onToggle"])):(s(),b(c,{key:1,"categorized-items":r.categorizedLegendItems,onToggle:r.toggleDataset},null,8,["categorized-items","onToggle"]))}const Ae=D(Ce,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/chart/ChartLegend.vue"]]);B.add(V,z,M,O,j,q);F.register(K,Z,J,X,G,U,Y,Q,ee,te,ae);const Se={name:"OpenwbChartView",components:{ChartjsLine:N,FontAwesomeIcon:H,ChartLegend:Ae},mixins:[E],props:{initialChartRange:{type:String,required:!1,validator:function(e){return["day","month","year"].indexOf(e)!==-1},default:"day"},initialDate:{type:String,required:!1,validator:function(e){return e.match(/^(([0-9]{4})(-[0-9]{2}(-[0-9]{2})?)?)?$/g)},default:""}},emits:["sendCommand"],data(){return{chartInstance:null,mqttTopics:[{topic:"openWB/bat/+/get/power",writeable:!1},{topic:"openWB/bat/get/power",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1},{topic:"openWB/counter/+/get/power",writeable:!1},{topic:"openWB/counter/set/home_consumption",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/log/daily/#",writeable:!1},{topic:"openWB/log/monthly/#",writeable:!1},{topic:"openWB/log/yearly/#",writeable:!1},{topic:"openWB/pv/+/get/power",writeable:!1},{topic:"openWB/pv/get/power",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],currentDate:"",chartRange:"day",blockChartInit:!1,chartIsLoading:!1,chartRequestDate:{day:"",month:"",year:""},datasetTemplates:{"counter-power_average":{label:"Zähler",category:"component",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",category:"component",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",category:"component",unit:"kWh",jsonKey:null,borderColor:"rgba(0, 255, 105, 0.7)",backgroundColor:"rgba(0, 255, 255, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:null,yAxisID:"y2",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_grid":{label:"Zähler (Netzanteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(255, 0, 0, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_pv":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(40, 167, 69, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"counter-energy_imported_bat":{label:"Zähler (PV-Anteil)",category:"component",unit:"kWh",type:"bar",jsonKey:null,borderColor:"rgba(253, 126, 20, 0.7)",backgroundColor:"rgba(255, 10, 13, 0.3)",fill:!0,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!0,borderWidth:3,data:null,yAxisID:"y2",stack:"#-energy-imported-source",parsing:{xAxisKey:"timestamp",yAxisKey:null}},"pv-power_exported":{label:"PV",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"chargepoint",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",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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)",category:"chargepoint",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",category:"vehicle",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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",category:"component",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)",category:"component",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)",category:"component",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)",category:"component",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:!1},zoom:{pan:{enabled:!0,mode:"x",threshold:5},zoom:{wheel:{enabled:!0},pinch:{enabled:!0},mode:"x"}}},elements:{point:{radius:2}},responsive:!0,maintainAspectRatio:!1,interaction:{mode:"index",intersect:!1},scales:{x:{type:"time",time:{unit:"",tooltipFormat:""},display:!0,title:{display:!0,text:""},ticks:{source:"timestamp",font:{size:12},maxTicksLimit:0},grid:{}},y:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Leistung [kW]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y2:{position:"left",type:"linear",display:"auto",suggestedMin:0,suggestedMax:0,title:{font:{size:12},display:!0,text:"Energie [kWh]"},grid:{},ticks:{font:{size:12},stepSize:.2,maxTicksLimit:11}},y3:{position:"right",type:"linear",display:"auto",suggestedMin:0,suggestedMax:100,title:{font:{size:12},display:!0,text:"SoC [%]"},grid:{display:!1},ticks:{font:{size:12},stepSize:10,maxTicksLimit:11}}}},chartDatasets:{datasets:[]}}},computed:{dateInput(){var e={title:"Datum",type:"date",min:"2018-01-01"};switch(this.chartRange){case"month":e={title:"Monat",type:"month",min:"2018-01"};break;case"year":e={title:"Jahr",type:"year",min:"2018"};break}return e},chartDate:{get(){var e=this.chartRequestDate.year;return this.chartRange!="year"&&(e=e+"-"+this.chartRequestDate.month),this.chartRange=="day"&&(e=e+"-"+this.chartRequestDate.day),e},set(e){let t=e.split("-");this.chartRequestDate.year=t[0],t.length>1?this.chartRequestDate.month=t[1]:this.chartRequestDate.month="",t.length>2?this.chartRequestDate.day=t[2]:this.chartRequestDate.day=""}},chartScaleX(){var e={unit:"minute",tooltipFormat:"DD T",text:"Zeit",maxTicksLimit:24};switch(this.chartRange){case"month":e={unit:"day",tooltipFormat:"DD",text:"Tag",maxTicksLimit:31};break;case"year":e={unit:"month",tooltipFormat:"LLLL yyyy",text:"Monat",maxTicksLimit:12};break}return e},commandData(){var e={date:this.chartRequestDate.year+this.chartRequestDate.month+this.chartRequestDate.day};switch(this.chartRange){case"month":e={date:this.chartRequestDate.year+this.chartRequestDate.month};break;case"year":e={date:this.chartRequestDate.year};break}return e},baseTopic(){var e="openWB/log/";switch(this.chartRange){case"day":e=e+"daily/";break;case"month":e=e+"monthly/";break;case"year":e=e+"yearly/";break}return e},chartDataRead(){return this.chartDataObject!=null},chartDataHasEntries(){return this.chartDataObject?this.chartDataObject.length>0:!1},chartTotals(){if(this.$store.state.mqtt[this.baseTopic+this.commandData.date]&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"totals")){var e=JSON.parse(JSON.stringify(this.$store.state.mqtt[this.baseTopic+this.commandData.date].totals));return Object.keys(e).forEach(t=>{Object.keys(e[t]).forEach(a=>{this.objectAccessible(t,a)||(console.debug(`Removing totals for ${t} - ${a} due to missing access rights.`),delete e[t][a])}),Object.keys(e[t]).length===0&&(console.debug(`Removing empty totals for ${t}.`),delete e[t])}),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);let t={};return JSON.parse(JSON.stringify(e)).forEach(a=>{a.timestamp=a.timestamp*1e3,t[a.timestamp]=a}),Object.values(t)}},chartData(){if(this.chartDataObject){var e=["pv","counter","bat","cp","sh","ev","hc"];const t=this.chartDataObject[this.chartDataObject.length-1];return t&&e.forEach(a=>{Object.prototype.hasOwnProperty.call(t,a)&&(Object.prototype.hasOwnProperty.call(t[a],"all")&&(["bat","pv"].includes(a)&&Object.keys(t[a]).length<=2?delete t[a].all:t[a]={all:t[a].all,...t[a]}),Object.entries(t[a]).forEach(([n,i])=>{Object.keys(i).forEach(r=>{this.initDataset(a,n,r)})}))}),this.chartDatasets}},objectAccessible(){return(e,t)=>{let a;const n=parseInt(t.match(/\d+$/)?.[0]||"");switch(e){case"hc":a="openWB/counter/set/home_consumption";break;case"cp":t=="all"?a="openWB/chargepoint/get/power":isNaN(n)||(a=`openWB/chargepoint/${n}/config`);break;case"ev":isNaN(n)||(a=`openWB/vehicle/${n}/info`);break;case"pv":t=="all"?a="openWB/pv/get/power":isNaN(n)||(a=`openWB/pv/${n}/get/power`);break;case"bat":t=="all"?a="openWB/bat/get/power":isNaN(n)||(a=`openWB/bat/${n}/get/power`);break;case"counter":isNaN(n)||(a=`openWB/counter/${n}/get/power`);break}return a?this.$store.state.mqtt[a]!==void 0:!0}}},watch:{chartRange(){this.init()},chartDataRead:{handler(e){e&&(this.chartIsLoading=!1)},immediate:!0}},updated(){this.$nextTick(()=>{this.$refs.myChart?.chart&&(this.chartInstance=this.$refs.myChart.chart)})},mounted(){this.init(),re(()=>{this.chartInstance=this.$refs.myChart?.chart})},methods:{getChartInstance(){return this.$refs.myChart?this.$refs.myChart.chart:null},refreshLegend(){this.$nextTick(()=>{this.chartInstance=this.$refs.myChart?.chart})},handleChartClick(e){if(this.chartRange=="day")return;const t=this.$refs.myChart.chart;if(!t)return;const a=P(t,e);if(!a.length)return;const{datasetIndex:n,index:i}=a[0],r=this.chartData.datasets[n].data[i].date;var o="",c="";switch(this.chartRange){case"month":o=r.substring(0,4)+"-"+r.substring(4,6)+"-"+r.substring(6),c="day";break;case"year":o=r.substring(0,4)+"-"+r.substring(4,6),c="month";break}this.blockChartInit=!0,this.chartDate=o,this.chartRange=c},getCardSubtype(e){switch(e){case"bat":return"warning";case"counter":return"danger";case"cp":return"primary";case"pv":return"success";case"sh":return"pink";default:return"secondary"}},getCardIcon(e){switch(e){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"pv":return["fas","solar-panel"];case"sh":return["fas","house-signal"];case"hc":return["fas","house"];default:return}},hideDataset(e,t,a){return!!(["bat","pv","cp"].includes(e)&&Object.prototype.hasOwnProperty.call(this.chartTotals[e],"all")&&t!="all"||["grid","bat","pv","cp"].includes(a.split("_").pop()))},getTotalsLabel(e,t=void 0,a=void 0){var n="*test*";if(!t&&!a){switch(e){case"bat":return"Speicher";case"counter":return"Zähler";case"pv":return"Wechselrichter";case"cp":return"Ladepunkte";case"sh":return"SmartHome-Geräte";case"hc":return"Hausverbrauch";default:console.warn("unknown group key:",e)}return"*"+e+"*"}if(t&&!a){if(t=="all")return"Summe";if(Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names"))return this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]}if(t&&a){switch(e){case"bat":case"cp":switch(a){case"imported":case"energy_imported":return"Ladung";case"exported":case"energy_exported":return"Entladung";case"energy_imported_grid":return"Ladung (Netz-Anteil)";case"energy_imported_pv":return"Ladung (PV-Anteil)";case"energy_imported_bat":return"Ladung (Speicher-Anteil)";case"energy_imported_cp":return"Ladung (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"counter":switch(a){case"imported":case"energy_imported":return"Bezug/Verbrauch";case"exported":case"energy_exported":return"Einspeisung/Erzeugung";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;case"pv":switch(a){case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"sh":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"exported":case"energy_exported":return"Erzeugung";default:console.warn("unknown measurement key:",e,a)}break;case"hc":switch(a){case"imported":case"energy_imported":return"Verbrauch";case"energy_imported_grid":return"Verbrauch (Netz-Anteil)";case"energy_imported_pv":return"Verbrauch (PV-Anteil)";case"energy_imported_bat":return"Verbrauch (Speicher-Anteil)";case"energy_imported_cp":return"Verbrauch (Ladepunkt-Anteil)";default:console.warn("unknown measurement key:",e,a)}break;default:console.warn("unknown group key:",e)}return"*"+e+"+"+t+"+"+a+"*"}return n},getDatasetLabel(e,t,a,n){var i=["*"+n],r=[];if(t=="all")switch(e!=="hc"&&r.push("Summe"),e){case"pv":i=["PV"];break;case"bat":i=["Speicher"],a==="soc"&&i.push("SoC");break;case"cp":i=["Ladepunkte"];break;case"hc":i=["Hausverbrauch"];break}else Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date],"names")&&Object.prototype.hasOwnProperty.call(this.$store.state.mqtt[this.baseTopic+this.commandData.date].names,t)&&(i=[this.$store.state.mqtt[this.baseTopic+this.commandData.date].names[t]]);switch(e){case"bat":case"ev":case"cp":switch(a){case"soc":r.push("SoC");break;case"energy_imported":r.push("Ladung");break;case"energy_exported":r.push("Entladung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"counter":switch(a){case"energy_imported":r.push("Bezug/Verbrauch");break;case"energy_exported":r.push("Einspeisung/Erzeugung");break;case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break;case"sh":switch(a){case"energy_imported":r.push("Verbrauch");break;case"energy_exported":r.push("Erzeugung");break}break;case"hc":switch(a){case"energy_imported_grid":r.push("Netz-Anteil");break;case"energy_imported_pv":r.push("PV-Anteil");break;case"energy_imported_bat":r.push("Speicher-Anteil");break;case"energy_imported_cp":r.push("Ladepunkt-Anteil");break}break}return`${i.join(" ")}${r.length?" ("+r.join(", ")+")":""}`},getDatasetIndex(e){let t=this.chartDatasets.datasets.findIndex(a=>a.jsonKey==e);if(t!=-1)return t},updateDatasetStack(e,t,a){if(e){if(t=="all"&&!["grid","pv","bat","cp"].includes(a.split("_").slice(-1)[0])){console.debug("not stacking totals for:",e,t,a);return}return e.includes("#")?(console.debug("updating stack template:",e,t,a),e.replace("#",t)):e}},addDataset(e,t,a,n){if(console.debug("adding dataset:",e,t,a,n),!(Object.prototype.hasOwnProperty.call(this.chartTotals,e)&&!Object.prototype.hasOwnProperty.call(this.chartTotals[e],t))){var i=e+"-"+a;if(this.datasetTemplates[i]){var r=JSON.parse(JSON.stringify(this.datasetTemplates[i]));return r.parsing.yAxisKey=n,r.jsonKey=n,r.data=this.chartDataObject,r.category=this.datasetTemplates[i].category,r.label=this.getDatasetLabel(e,t,a,n),r.labelSuffix!=null&&(r.label=r.label+r.labelSuffix),r.hidden=this.hideDataset(e,t,a),r.stack=this.updateDatasetStack(r.stack,t,a),this.chartDatasets.datasets.push(r)-1}else console.warn("no matching template found for: "+n+" with template: "+i)}},initDataset(e,t,a){if(!this.objectAccessible(e,t)){console.debug("skipping dataset due to missing rights:",e,t,a);return}let n;this.chartRange=="day"?n={counter:["power_average"],pv:["power_exported"],bat:["power_average","soc"],cp:["power_average"],sh:["power_average"],ev:["soc"],hc:["power_imported"]}:n={counter:["energy_imported","energy_exported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],pv:["energy_exported"],bat:["energy_imported","energy_exported"],cp:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"],sh:["energy_imported","energy_exported"],ev:[],hc:["energy_imported","energy_imported_grid","energy_imported_pv","energy_imported_bat"]};const i=e+"."+t+"."+a;if(n[e].includes(a)){var r=this.getDatasetIndex(i);r==null&&this.addDataset(e,t,a,i)}else console.debug("skipping dataset:",i)},setupScaleX(){this.chartOptions.scales.x.time.unit=this.chartScaleX.unit,this.chartOptions.scales.x.time.tooltipFormat=this.chartScaleX.tooltipFormat,this.chartOptions.scales.x.title.text=this.chartScaleX.text,this.chartOptions.scales.x.ticks.maxTicksLimit=this.chartScaleX.maxTicksLimit},requestChart(){if(document.forms.chartFilterForm?.reportValidity()){this.chartIsLoading=!0,this.setupScaleX(),this.chartDatasets.datasets=[];var t="";switch(this.chartRange){case"day":t="getDailyLog";break;case"month":t="getMonthlyLog";break;case"year":t="getYearlyLog";break}this.$emit("sendCommand",{command:t,data:this.commandData})}else{console.warn("form invalid");return}},clearChartData(){this.getWildcardIndexList(this.baseTopic+"+").forEach(e=>{this.$store.commit("removeTopic",`${this.baseTopic}${e}`)})},updateChart(){this.clearChartData(),this.requestChart()},init(){const e=new Date;this.currentDate=String(e.getFullYear()),this.chartRange!="year"&&(this.currentDate=this.currentDate+"-"+String(e.getMonth()+1).padStart(2,"0")),this.chartRange=="day"&&(this.currentDate=this.currentDate+"-"+String(e.getDate()).padStart(2,"0")),this.blockChartInit?this.blockChartInit=!1:this.initialDate==null||this.initialDate==""?this.chartDate=this.currentDate:this.chartDate=this.initialDate,this.updateChart()}}},Re={class:"chart"},Ie={key:0},Le={key:1},We={name:"chartFilterForm"},Te={key:1},$e={key:1},He={class:"openwb-chart"},Be={name:"chartTotalsForm"},Ve={key:1};function ze(e,t,a,n,i,r){const o=d("openwb-base-alert"),c=d("openwb-base-select-input"),k=d("openwb-base-text-input"),y=d("openwb-base-card"),R=d("chartjs-line"),I=d("ChartLegend"),L=d("font-awesome-icon"),W=d("openwb-base-heading");return s(),l("div",Re,[e.$store.state.mqtt["openWB/general/extern"]===!0?(s(),l("div",Ie,[p(o,{subtype:"info"},{default:h(()=>[...t[3]||(t[3]=[x(' Die Auswertungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. Du findest alle Auswertungen in der openWB, welche sich im Steuerungsmodus "primary" befindet. ',-1)])]),_:1})])):(s(),l("div",Le,[p(y,{title:"Filter",collapsible:!0,collapsed:!1},{default:h(()=>[g("form",We,[p(c,{modelValue:i.chartRange,"onUpdate:modelValue":t[0]||(t[0]=m=>i.chartRange=m),title:"Zeitraum",options:[{value:"day",text:"Tag"},{value:"month",text:"Monat"},{value:"year",text:"Jahr"}]},null,8,["modelValue"]),p(k,{modelValue:r.chartDate,"onUpdate:modelValue":[t[1]||(t[1]=m=>r.chartDate=m),t[2]||(t[2]=m=>r.updateChart())],title:r.dateInput.title,subtype:r.dateInput.type,min:r.dateInput.min,max:i.currentDate,"show-quick-buttons":!0},null,8,["modelValue","title","subtype","min","max"])])]),_:1}),i.chartIsLoading?(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[4]||(t[4]=[x(" Daten werden geladen... ",-1)])]),_:1})):(s(),l("div",Te,[r.chartDataHasEntries?(s(),l("div",$e,[p(y,{title:"Diagramm",collapsible:!0,collapsed:!1,onExpanded:r.refreshLegend},{default:h(()=>[g("div",He,[p(R,{ref:"myChart",data:r.chartData,options:i.chartOptions,onClick:r.handleChartClick},null,8,["data","options","onClick"])]),i.chartInstance?(s(),b(I,{key:i.chartDatasets.datasets.length,ref:"chartLegend",range:i.chartRange,chart:r.getChartInstance()},null,8,["range","chart"])):A("",!0)]),_:1},8,["onExpanded"]),p(y,{title:"Summen",collapsible:!0,collapsed:!0},{default:h(()=>[g("form",Be,[(s(!0),l(f,null,_(Object.fromEntries(Object.entries(r.chartTotals).filter(([m,u])=>Object.keys(u).length>0)),(m,u)=>(s(),b(y,{key:u,collapsible:!0,collapsed:!0,subtype:r.getCardSubtype(u)},{header:h(()=>[p(L,{icon:r.getCardIcon(u)},null,8,["icon"]),x(" "+v(r.getTotalsLabel(u)),1)]),default:h(()=>[(s(!0),l(f,null,_(m,(T,C)=>(s(),l("div",{key:C},[u!=="hc"?(s(),b(W,{key:0},{default:h(()=>[x(v(r.getTotalsLabel(u,C)),1)]),_:2},1024)):A("",!0),(s(!0),l(f,null,_(T,($,S)=>(s(),l("div",{key:S},[p(k,{title:r.getTotalsLabel(u,C,S),readonly:"",class:"text-right",unit:"kWh","model-value":e.formatNumber($/1e3,3)},null,8,["title","model-value"])]))),128)),C=="all"&&u!="hc"?(s(),l("hr",Ve)):A("",!0)]))),128))]),_:2},1032,["subtype"]))),128))])]),_:1})])):(s(),b(o,{key:0,subtype:"info"},{default:h(()=>[...t[5]||(t[5]=[x(" Es konnten keine Daten für diesen Zeitraum gefunden werden. ",-1)])]),_:1}))]))]))])}const Ke=D(Se,[["render",ze],["__scopeId","data-v-e00a7cd5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Chart.vue"]]);export{Ke as default}; diff --git a/web/settings/assets/CloudConfiguration-DOLVcdWg.js b/web/settings/assets/CloudConfiguration-CTXO9wZf.js similarity index 99% rename from web/settings/assets/CloudConfiguration-DOLVcdWg.js rename to web/settings/assets/CloudConfiguration-CTXO9wZf.js index a306ae9bdc..abe5c8e552 100644 --- a/web/settings/assets/CloudConfiguration-DOLVcdWg.js +++ b/web/settings/assets/CloudConfiguration-CTXO9wZf.js @@ -1 +1 @@ -import{F as h,l as q,ai as P}from"./vendor-fortawesome-CBc-2W7w.js";import{C as S}from"./index-D_eD74fL.js";import{_ as z,l as d,k as l,e as w,m as s,q as n,A as r,x as i,y as p,u as m,D as Z,j as _,K as I}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";q.add(P);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:h},mixins:[S],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0},{topic:"openWB/system/mqtt/valid_partner_ids",writeable:!0}],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,C]of Object.entries(t))C.remote.is_openwb_cloud||delete t[e];return t}},cloudBridgeKey:{get(){for(const[t,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return t}},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(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(t){t.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(t){this.showCloudRemoveModal=!1,t=="confirm"&&(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"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},T={class:"row justify-content-center"},U={key:2,name:"cloudConfigured"},A={class:"row justify-content-center"};function N(t,e,C,j,u,a){const D=d("openwb-base-modal-dialog"),c=d("router-link"),g=d("openwb-base-alert"),b=d("openwb-base-text-input"),B=d("openwb-base-button-group-input"),f=d("font-awesome-icon"),y=d("openwb-base-array-input"),v=d("openwb-base-click-button"),k=d("openwb-base-card"),V=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return l(),w(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>a.removeCloud(o))},{default:n(()=>[...e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])]),_:1},8,["show"]),i("div",M,[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:n(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1})):(l(),w("div",x,[s(g,{subtype:"success"},{default:n(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})),a.cloudBridgeKey?m("",!0):(l(),w("form",R,[s(k,{title:"Vorhandenen Zugang einrichten"},Z({default:n(()=>[s(g,{subtype:"info"},{default:n(()=>[...e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:tutorials:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])]),_:1}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:n(()=>[...e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:2},[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:n(()=>[i("div",T,[s(v,{class:_(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:a.connectCloud},{default:n(()=>[...e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),a.cloudBridgeKey?(l(),w("form",U,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})):m("",!0),s(k,{title:"Vorhandener Cloud Zugang"},{footer:n(()=>[i("div",A,[s(v,{class:_(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>a.removeCloudModal(o))},{default:n(()=>[...e[29]||(e[29]=[r(" Zugang löschen ",-1)])]),_:1},8,["class","disabled"])])]),default:n(()=>[s(V,null,{default:n(()=>[...e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])]),_:1}),s(b,{modelValue:a.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>a.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:a.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>a.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":a.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>t.updateState(a.cloudBridgeKey,o,"access.partner"))},{help:n(()=>[...e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["model-value"]),a.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:1})])):m("",!0),a.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[11]||(e[11]=o=>t.$emit("reset")),onDefaults:e[12]||(e[12]=o=>t.$emit("defaults"))})):m("",!0)]))])],64)}const J=z(K,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfiguration.vue"]]);export{J as default}; +import{F as h,l as q,ai as P}from"./vendor-fortawesome-CBc-2W7w.js";import{C as S}from"./index-MVrRMMo2.js";import{_ as z,l as d,k as l,e as w,m as s,q as n,A as r,x as i,y as p,u as m,D as Z,j as _,K as I}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";q.add(P);const K={name:"OpenwbCloudConfigView",components:{FontAwesomeIcon:h},mixins:[S],emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0},{topic:"openWB/system/mqtt/valid_partner_ids",writeable:!0}],enableNewCloudButton:!0,newCloudData:{email:"",username:"",partner:!1},enableCloudConnectButton:!0,connectCloudData:{username:"",password:"",partner:!1},enableRemoveCloudButton:!0,showCloudRemoveModal:!1}},computed:{cloudBridge:{get(){let t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");for(const[e,C]of Object.entries(t))C.remote.is_openwb_cloud||delete t[e];return t}},cloudBridgeKey:{get(){for(const[t,e]of Object.entries(this.cloudBridge))if(e.remote.is_openwb_cloud)return t}},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(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},createCloud(){document.forms.cloudConfigCreateForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"initCloud",data:this.newCloudData}),this.enableNewCloudButton=!1)},connectCloud(){document.forms.cloudConfigConnectForm.reportValidity()&&(this.$emit("save",this.mqttTopicsToPublish),this.$emit("sendCommand",{command:"connectCloud",data:this.connectCloudData}),this.enableCloudConnectButton=!1)},removeCloudModal(t){t.stopPropagation(),this.showCloudRemoveModal=!0},removeCloud(t){this.showCloudRemoveModal=!1,t=="confirm"&&(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"},x={key:1},R={key:1,name:"cloudConfigConnectForm"},T={class:"row justify-content-center"},U={key:2,name:"cloudConfigured"},A={class:"row justify-content-center"};function N(t,e,C,j,u,a){const D=d("openwb-base-modal-dialog"),c=d("router-link"),g=d("openwb-base-alert"),b=d("openwb-base-text-input"),B=d("openwb-base-button-group-input"),f=d("font-awesome-icon"),y=d("openwb-base-array-input"),v=d("openwb-base-click-button"),k=d("openwb-base-card"),V=d("openwb-base-heading"),W=d("openwb-base-submit-buttons");return l(),w(I,null,[s(D,{show:u.showCloudRemoveModal,title:"Cloud Zugang löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=o=>a.removeCloud(o))},{default:n(()=>[...e[13]||(e[13]=[r(" Willst Du den vorhandenen Cloud Zugang wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",-1)])]),_:1},8,["show"]),i("div",M,[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(l(),p(g,{key:0,subtype:"danger"},{default:n(()=>[e[15]||(e[15]=r(" Du musst der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[14]||(e[14]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[16]||(e[16]=r(" zustimmen, um die openWB Cloud nutzen zu können. ",-1))]),_:1})):(l(),w("div",x,[s(g,{subtype:"success"},{default:n(()=>[e[18]||(e[18]=r(" Du hast der ",-1)),s(c,{to:"/System/LegalSettings"},{default:n(()=>[...e[17]||(e[17]=[r(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=r(" zugestimmt und kannst die openWB Cloud nutzen. ",-1))]),_:1}),u.enableRemoveCloudButton?m("",!0):(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[20]||(e[20]=[r(" Der Zugang wurde entfernt. Bitte starte die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})),a.cloudBridgeKey?m("",!0):(l(),w("form",R,[s(k,{title:"Vorhandenen Zugang einrichten"},Z({default:n(()=>[s(g,{subtype:"info"},{default:n(()=>[...e[21]||(e[21]=[i("p",null,[r(" Bitte nutze die in/an der openWB notierten Zugangsdaten. Wenn bei einer gekauften openWB keine Zugangsdaten vorhanden sind, schreibe bitte eine Mail unter Angabe der Bestell- und/oder Seriennummer an "),i("a",{href:"mailto:support@openwb.de",subject:"Cloud Zugangsdaten"}," support@openwb.de "),r(" . ")],-1),i("p",null,[r(" Eine Anleitung zur Einrichtung der openWB Cloud findest Du im "),i("a",{href:"https://wiki.openwb.de/doku.php?id=openwb:tutorials:cloudeinrichten",target:"_blank",rel:"noopener noreferrer"}," Wiki "),r(". ")],-1)])]),_:1}),s(b,{modelValue:u.connectCloudData.username,"onUpdate:modelValue":e[1]||(e[1]=o=>u.connectCloudData.username=o),title:"Benutzername",required:"",subtype:"user"},null,8,["modelValue"]),s(b,{modelValue:u.connectCloudData.password,"onUpdate:modelValue":e[2]||(e[2]=o=>u.connectCloudData.password=o),title:"Passwort",required:"",subtype:"password"},null,8,["modelValue"]),s(B,{modelValue:u.connectCloudData.partner,"onUpdate:modelValue":e[3]||(e[3]=o=>u.connectCloudData.partner=o),title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},{help:n(()=>[...e[22]||(e[22]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["modelValue"]),u.connectCloudData.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[23]||(e[23]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:2},[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:n(()=>[i("div",T,[s(v,{class:_(["col-4",u.enableCloudConnectButton?"btn-success":"btn-outline-success"]),disabled:!u.enableCloudConnectButton,onButtonClicked:a.connectCloud},{default:n(()=>[...e[24]||(e[24]=[r(" Mit Cloud verbinden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024)])),a.cloudBridgeKey?(l(),w("form",U,[!u.enableCloudConnectButton||!u.enableNewCloudButton?(l(),p(g,{key:0,subtype:"warning"},{default:n(()=>[...e[25]||(e[25]=[r(" Der Zugang wurde eingerichtet. Bitte starte die die openWB neu, um die Änderungen anzuwenden! ",-1)])]),_:1})):m("",!0),s(k,{title:"Vorhandener Cloud Zugang"},{footer:n(()=>[i("div",A,[s(v,{class:_(["col-4",u.enableRemoveCloudButton?"btn-danger":"btn-outline-danger"]),disabled:!u.enableRemoveCloudButton,onButtonClicked:e[9]||(e[9]=o=>a.removeCloudModal(o))},{default:n(()=>[...e[29]||(e[29]=[r(" Zugang löschen ",-1)])]),_:1},8,["class","disabled"])])]),default:n(()=>[s(V,null,{default:n(()=>[...e[26]||(e[26]=[i("span",null,[r(" Mit diesen Zugangsdaten kannst Du dich in der "),i("a",{href:"https://remote.openwb.de/",target:"_blank",rel:"noopener noreferrer"}," openWB Cloud "),r(" anmelden. ")],-1)])]),_:1}),s(b,{modelValue:a.cloudSettings.username,"onUpdate:modelValue":e[5]||(e[5]=o=>a.cloudSettings.username=o),title:"Benutzername",required:"",subtype:"user",disabled:""},null,8,["modelValue"]),s(b,{modelValue:a.cloudSettings.password,"onUpdate:modelValue":e[6]||(e[6]=o=>a.cloudSettings.password=o),title:"Passwort",required:"",subtype:"password",disabled:""},null,8,["modelValue"]),e[30]||(e[30]=i("hr",null,null,-1)),s(B,{title:"Zugang für Partner",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":a.cloudSettings.partner,"onUpdate:modelValue":e[7]||(e[7]=o=>t.updateState(a.cloudBridgeKey,o,"access.partner"))},{help:n(()=>[...e[27]||(e[27]=[r(" Wenn diese openWB über einen Partner erworben wurde, kann hier ein Support-Zugang für diesen freigegeben werden. ",-1)])]),_:1},8,["model-value"]),a.cloudSettings.partner?(l(),p(y,{key:0,title:"Gültige Partner-IDs","no-elements-message":"Keine Partner-ID zugeordnet.","model-value":t.$store.state.mqtt["openWB/system/mqtt/valid_partner_ids"],"onUpdate:modelValue":e[8]||(e[8]=o=>t.updateState("openWB/system/mqtt/valid_partner_ids",o))},{"input-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),"element-prefix":n(()=>[s(f,{icon:["fas","user-gear"]})]),help:n(()=>[...e[28]||(e[28]=[r(" Die Partner-ID erhältst Du von Deinem Installateur. Ist hier keine Partner-ID eingetragen, dann kann auch niemand - trotz aktiviertem Zugang für Partner - über das Partner-Portal auf diese openWB zugreifen! ",-1)])]),_:1},8,["model-value"])):m("",!0)]),_:1})])):m("",!0),a.cloudBridgeKey?(l(),p(W,{key:3,"form-name":"cloudConfigured",onSave:e[10]||(e[10]=o=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[11]||(e[11]=o=>t.$emit("reset")),onDefaults:e[12]||(e[12]=o=>t.$emit("defaults"))})):m("",!0)]))])],64)}const J=z(K,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/CloudConfiguration.vue"]]);export{J as default}; diff --git a/web/settings/assets/DataManagement-C57poL-r.js b/web/settings/assets/DataManagement-lM5_tcaR.js similarity index 97% rename from web/settings/assets/DataManagement-C57poL-r.js rename to web/settings/assets/DataManagement-lM5_tcaR.js index 7bd7108332..b73f914c6b 100644 --- a/web/settings/assets/DataManagement-C57poL-r.js +++ b/web/settings/assets/DataManagement-lM5_tcaR.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/backup_cloud-CDlXI8NQ.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/backup_cloud-CXDQV4ep.js","assets/backup_cloud-CPUdKiBb.js","assets/backup_cloud-CzI98uku.js","assets/monitoring-oAy7LKTI.js"])))=>i.map(i=>d[i]); -import{F as A,l as P,ac as L,ad as T,aC as H,aD as N,aE as K,aF as I,aG as G}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as J}from"./index-D_eD74fL.js";import{_ as j}from"./dynamic-import-helper-BheWnx7M.js";import{_ as C,l as m,k as d,e as g,y as h,q as i,A as o,J as f,m as t,x as s,a1 as E,a2 as R,K as M,u as k,j as W,L as z,D as V}from"./vendor-Bo8v-nQD.js";const Z={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Q=C(Z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),X={name:"BackupCloudConfigFallback",mixins:[Q]},Y={class:"backup-cloud-fallback"},ee={key:1};function ne(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",Y,[Object.keys(n.backupCloud.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+f(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",ee,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+f(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const te=C(X,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);P.add(L,T);const oe={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),E({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CDlXI8NQ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CXDQV4ep.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CPUdKiBb.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CzI98uku.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10]))}),`./${this.backupCloud.type}/backup_cloud.vue`,3),errorComponent:te})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function ie(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.backupCloud.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+f(r.backupCloud.name)+'" ',1)]),_:1}),(d(),h(R(u.getBackupCloudComponent()),{"backup-cloud":r.backupCloud,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w)),onSendCommand:e[1]||(e[1]=w=>u.sendCommand(w))},null,40,["backup-cloud"]))],64)}const se=C(oe,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),ae={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},re=C(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),le={name:"MonitoringConfigFallback",mixins:[re]},ue={class:"monitoring-fallback"},de={key:1};function pe(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",ue,[Object.keys(n.monitoring.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+f(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",de,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+f(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const ce=C(le,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);P.add(L,T);const me={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),E({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-oAy7LKTI.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10]))}),`./${this.monitoring.type}/monitoring.vue`,3),errorComponent:ce})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ge(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.monitoring.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Modul "'+f(r.monitoring.name)+'" ',1)]),_:1}),(d(),h(R(u.getMonitoringComponent()),{monitoring:r.monitoring,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w))},null,40,["monitoring"]))],64)}const fe=C(me,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);P.add(H,N,K,I,G);const be={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:se,OpenwbMonitoringProxy:fe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_configured",writeable:!1},{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_name",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/monitoring/config",writeable:!1},{topic:"openWB/system/backup_cloud/backup_before_update",writeable:!1},{topic:"openWB/system/backup_cloud/config",writeable:!1},{topic:"openWB/system/backup_password",writeable:!1},{topic:"openWB/system/configurable/backup_clouds",writeable:!1},{topic:"openWB/system/configurable/monitoring",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,restorePassword:void 0,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const r of Object.values(n))e.push({value:r.id,text:r.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[r,y]of Object.entries(n)){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:y})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[r,y]of Object.entries(n))if(y==1){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e},disableRestoreUpload(){return!this.selectedRestoreFile||this.selectedRestoreFile?.name?.endsWith(".gpg")&&!(this.restorePassword||this.$store.state.mqtt["openWB/system/backup_password"])}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,r,y={}){return new Promise(l=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let u=new FormData;u.append("file",e),u.append("target",n);for(const[p,c]of Object.entries(y))u.append(p,c);this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",u,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(r,"success"),l(!0)}).catch(p=>{if(p.response){console.error(p.response.status,p.response.data);var c="Hochladen der Datei fehlgeschlagen!
"+p.response.status+": "+p.response.data}else p.request?(console.error(p.request),c+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",p.message),c+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(c,"danger"),l(!1)})}else console.error("no file selected for upload"),l(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n,[void 0,null,""].includes(this.restorePassword)?void 0:{restorePassword:this.restorePassword})},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},he={class:"system"},ke={key:1},ye={name:"backupPasswordForm"},ve={name:"backupForm"},we={class:"row justify-content-center"},_e={class:"col-md-4 d-flex py-1 justify-content-center"},Ce={key:0,name:"restoreForm"},Be={class:"input-group mb-2"},De={class:"input-group-prepend"},Se={class:"input-group-text"},We={class:"custom-file"},Me={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Oe={class:"input-group-append"},Fe=["disabled"],Ae={class:"row justify-content-center"},Pe={class:"col-md-4 d-flex py-1 justify-content-center"},ze={key:1},Ve={key:0,name:"cloudBackupForm"},Le={key:0},Te={name:"dataMigrationForm"},je={class:"input-group"},Ee={class:"input-group-prepend"},Re={class:"input-group-text"},Ue={class:"custom-file"},qe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},xe={class:"input-group-append"},$e=["disabled"],He={class:"row justify-content-center"},Ne={class:"col-md-4 d-flex py-1 justify-content-center"},Ke={key:1,name:"resetForm"},Ie={class:"row justify-content-center"},Ge={class:"col-md-4 d-flex py-1 justify-content-center"},Je={key:2,name:"monitoringForm"},Ze={key:1},Qe={key:0};function Xe(n,e,r,y,l,u){const p=m("openwb-base-button-group-input"),c=m("openwb-base-alert"),b=m("openwb-base-heading"),w=m("openwb-base-text-input"),O=m("openwb-base-submit-buttons"),v=m("font-awesome-icon"),D=m("openwb-base-click-button"),F=m("openwb-base-select-input"),U=m("openwb-base-button-input"),q=m("openwb-backup-cloud-proxy"),S=m("openwb-base-card"),x=m("openwb-monitoring-proxy");return d(),g("div",he,[r.installAssistantActive?k("",!0):(d(),h(c,{key:0,subtype:"danger"},{default:i(()=>[e[25]||(e[25]=s("h2",null,"Achtung!",-1)),e[26]||(e[26]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=a=>l.warningAcknowledged=a),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),l.warningAcknowledged||r.installAssistantActive?(d(),g("div",ke,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!r.installAssistantActive},{default:i(()=>[s("form",ye,[t(b,null,{default:i(()=>[...e[27]||(e[27]=[o("Allgemein",-1)])]),_:1}),t(w,{title:"Kennwort für Sicherungen",subtype:"password","model-value":n.$store.state.mqtt["openWB/system/backup_password"],"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateState("openWB/system/backup_password",a))},{help:i(()=>[...e[28]||(e[28]=[o(" Ist hier ein Kennwort gesetzt, werden alle Sicherungen mit einem Kennwortschutz versehen. Diese Option sollte genutzt werden, wenn die Sicherungsdatei über unsichere Kanäle (z.B. eine Backup-Cloud im Internet) übertragen wird.",-1),s("br",null,null,-1),o(" Wichtig: Das Kennwort wird nicht in der Sicherung gespeichert! Ohne gültiges Kennwort kann eine geschützte Sicherung nicht wiederhergestellt werden! ",-1)])]),_:1},8,["model-value"]),t(O,{"form-name":"backupPasswordForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveBackupPassword",onSave:e[2]||(e[2]=a=>n.$emit("save",["openWB/system/backup_password"])),onReset:e[3]||(e[3]=a=>n.$emit("reset"))}),e[29]||(e[29]=s("hr",null,null,-1))]),s("form",ve,[t(b,null,{default:i(()=>[...e[30]||(e[30]=[o("Sicherung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[31]||(e[31]=[o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[32]||(e[32]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. ",-1)])]),_:1}),s("div",we,[s("div",_e,[t(D,{class:"btn-success clickable",onButtonClicked:e[4]||(e[4]=a=>u.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[33]||(e[33]=o(" Sicherung erstellen ",-1)),t(v,{icon:["fas","archive"]})]),_:1})])])]),l.showRestoreSection?(d(),g("form",Ce,[e[39]||(e[39]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[34]||(e[34]=[o("Wiederherstellung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[35]||(e[35]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),s("div",Be,[s("div",De,[s("div",Se,[t(v,{icon:["fas","file-archive"]})])]),s("div",We,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,.openwb-backup,application/gzip,application/tar+gzip,.openwb-backup.gpg,application/gzip+gpg,application/tar+gzip+gpg",onChange:e[5]||(e[5]=a=>u.updateSelectedRestoreFile(a))},null,32),s("label",Me,f(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Oe,[s("button",{class:W(["btn",u.disableRestoreUpload?"btn-outline-success":"btn-success clickable"]),disabled:u.disableRestoreUpload,type:"button",onClick:e[6]||(e[6]=a=>u.uploadRestoreFile())},[e[36]||(e[36]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,Fe)])]),l.selectedRestoreFile?.name?.endsWith(".gpg")?(d(),h(w,{key:0,modelValue:l.restorePassword,"onUpdate:modelValue":e[7]||(e[7]=a=>l.restorePassword=a),title:"Kennwort dieser Sicherung",subtype:"password"},{help:i(()=>[...e[37]||(e[37]=[o(' Wenn die Sicherung mit einem Kennwortschutz versehen wurde, wird zuerst eine Entschlüsselung mit dem unter "Allgemein" hinterlegten Kennwort versucht. Falls die Sicherung mit einem anderen Kennwort geschützt wurde, muss dieses hier eingegeben werden. ',-1)])]),_:1},8,["modelValue"])):k("",!0),s("div",Ae,[s("div",Pe,[t(D,{class:W(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[8]||(e[8]=a=>u.restoreBackup())},{default:i(()=>[e[38]||(e[38]=o(" Wiederherstellung starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):k("",!0),r.installAssistantActive?k("",!0):(d(),g("div",ze,[r.showBackupCloudSection?(d(),g("form",Ve,[e[43]||(e[43]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[40]||(e[40]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[41]||(e[41]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Backup-Cloud",options:u.backupCloudList,"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type,"onUpdate:modelValue":e[9]||(e[9]=a=>u.updateSelectedBackupCloud(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type?(d(),g("div",Le,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[10]||(e[10]=a=>n.updateState("openWB/system/backup_cloud/backup_before_update",a))},{help:i(()=>[...e[42]||(e[42]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])]),_:1},8,["model-value"]),t(U,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[11]||(e[11]=a=>u.sendSystemCommand("createCloudBackup",{}))}),t(q,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[12]||(e[12]=a=>u.updateConfiguration("openWB/system/backup_cloud/config",a)),onSendCommand:e[13]||(e[13]=a=>u.sendSystemCommand(a.command,a.args))},null,8,["backup-cloud"])])):k("",!0),t(O,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveCloudBackup",onSave:e[14]||(e[14]=a=>n.$emit("save",["openWB/system/backup_cloud/backup_before_update","openWB/system/backup_cloud/config"])),onReset:e[15]||(e[15]=a=>n.$emit("reset")),onDefaults:e[16]||(e[16]=a=>n.$emit("defaults"))})])):k("",!0)]))]),_:1},8,["collapsed"]),!r.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(d(),h(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Te,[t(c,{subtype:"info"},{default:i(()=>[...e[44]||(e[44]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[45]||(e[45]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])]),_:1}),s("div",je,[s("div",Ee,[s("div",Re,[t(v,{icon:["fas","file-archive"]})])]),s("div",Ue,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[17]||(e[17]=a=>u.updateSelectedDataMigrationFile(a))},null,32),s("label",qe,f(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",xe,[s("button",{class:W(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[18]||(e[18]=a=>u.uploadDataMigrationFile())},[e[46]||(e[46]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,$e)])]),t(b,null,{default:i(()=>[...e[47]||(e[47]=[o(" Zuordnung der Komponenten ",-1)])]),_:1}),(d(!0),g(M,null,z(l.dataMigrationConfig,a=>(d(),g("div",{key:a.sectionName},[t(b,null,{default:i(()=>[o(f(a.sectionName),1)]),_:2},1024),(d(!0),g(M,null,z(a.sectionComponents,_=>(d(),h(F,{key:_.key,modelValue:l.dataMigrationMapping[_.key],"onUpdate:modelValue":$=>l.dataMigrationMapping[_.key]=$,title:_.label,options:u.getMigrationOptions(_.validTypes)},V({_:2},[_.help?{name:"help",fn:i(()=>[o(f(_.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",He,[s("div",Ne,[t(D,{class:W(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[19]||(e[19]=a=>u.dataMigration())},{default:i(()=>[e[48]||(e[48]=o(" Datenübernahme starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})):k("",!0),r.installAssistantActive?k("",!0):(d(),g("form",Ke,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",Ie,[s("div",Ge,[t(D,{class:"btn-danger clickable",onButtonClicked:e[20]||(e[20]=a=>u.factoryReset())},{default:i(()=>[t(v,{icon:["fas","skull-crossbones"]}),e[50]||(e[50]=o(" Zurücksetzen ",-1)),t(v,{icon:["fas","skull-crossbones"]})]),_:1})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>[...e[49]||(e[49]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])]),_:1})]),_:1})])),r.installAssistantActive?k("",!0):(d(),g("form",Je,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},V({default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),h(c,{key:0,subtype:"info"},{default:i(()=>[...e[51]||(e[51]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(d(),g("div",Ze,[t(c,{subtype:"info"},{default:i(()=>[...e[52]||(e[52]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Anbieter",options:u.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[21]||(e[21]=a=>u.updateSelectedMonitoring(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(d(),g("div",Qe,[t(x,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[22]||(e[22]=a=>u.updateConfiguration("openWB/optional/monitoring/config",a))},null,8,["monitoring"])])):k("",!0)]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]!==!0?{name:"footer",fn:i(()=>[t(O,{"form-name":"monitoringForm","hide-defaults":!0,"save-id":"saveMonitoring",onSave:e[23]||(e[23]=a=>n.$emit("save",["openWB/optional/monitoring/config"])),onReset:e[24]||(e[24]=a=>n.$emit("reset"))})]),key:"0"}:void 0]),1024)]))])):k("",!0)])}const Ye=C(be,[["render",Xe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),sn=Object.freeze(Object.defineProperty({__proto__:null,default:Ye},Symbol.toStringTag,{value:"Module"}));export{Q as B,Ye as D,re as M,sn as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/backup_cloud-z1NXuBiy.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-MVrRMMo2.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/backup_cloud-CgD5zQhQ.js","assets/backup_cloud-D9cn7cL6.js","assets/backup_cloud-DoxyAX26.js","assets/monitoring-CKhMIifd.js"])))=>i.map(i=>d[i]); +import{F as A,l as P,ac as L,ad as T,aC as H,aD as N,aE as K,aF as I,aG as G}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as J}from"./index-MVrRMMo2.js";import{_ as j}from"./dynamic-import-helper-BheWnx7M.js";import{_ as C,l as m,k as d,e as g,y as h,q as i,A as o,J as f,m as t,x as s,a1 as E,a2 as R,K as M,u as k,j as W,L as z,D as V}from"./vendor-Bo8v-nQD.js";const Z={props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})}}},Q=C(Z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/BackupCloudConfigMixin.vue"]]),X={name:"BackupCloudConfigFallback",mixins:[Q]},Y={class:"backup-cloud-fallback"},ee={key:1};function ne(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",Y,[Object.keys(n.backupCloud.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Die Backup-Cloud "'+f(n.backupCloud.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",ee,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für die Backup-Cloud "'+f(n.backupCloud.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.backupCloud.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.backupCloud.configuration,void 0,2)),1)]),_:1})]))])}const te=C(X,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudConfigFallback.vue"]]);P.add(L,T);const oe={name:"OpenwbBackupCloudProxy",components:{FontAwesomeIcon:A},props:{backupCloud:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{getBackupCloudComponent(){return console.debug(`loading backup cloud: ${this.backupCloud.type}`),E({loader:()=>j(Object.assign({"./nextcloud/backup_cloud.vue":()=>B(()=>import("./backup_cloud-z1NXuBiy.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./nfs/backup_cloud.vue":()=>B(()=>import("./backup_cloud-CgD5zQhQ.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./onedrive/backup_cloud.vue":()=>B(()=>import("./backup_cloud-D9cn7cL6.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./samba/backup_cloud.vue":()=>B(()=>import("./backup_cloud-DoxyAX26.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10]))}),`./${this.backupCloud.type}/backup_cloud.vue`,3),errorComponent:te})},updateConfiguration(n){this.$emit("update:configuration",n)},sendCommand(n){this.$emit("sendCommand",n)}}};function ie(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.backupCloud.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Backup-Cloud Modul "'+f(r.backupCloud.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Backup-Cloud Modul "'+f(r.backupCloud.name)+'" ',1)]),_:1}),(d(),h(R(u.getBackupCloudComponent()),{"backup-cloud":r.backupCloud,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w)),onSendCommand:e[1]||(e[1]=w=>u.sendCommand(w))},null,40,["backup-cloud"]))],64)}const se=C(oe,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/OpenwbBackupCloudProxy.vue"]]),ae={props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},re=C(ae,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/MonitoringConfigMixin.vue"]]),le={name:"MonitoringConfigFallback",mixins:[re]},ue={class:"monitoring-fallback"},de={key:1};function pe(n,e,r,y,l,u){const p=m("openwb-base-alert"),c=m("openwb-base-textarea");return d(),g("div",ue,[Object.keys(n.monitoring.configuration).length==0?(d(),h(p,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+f(n.monitoring.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),g("div",de,[t(p,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+f(n.monitoring.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),t(c,{title:"Konfiguration",subtype:"json","model-value":n.monitoring.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),t(p,{subtype:"info"},{default:i(()=>[s("pre",null,f(JSON.stringify(n.monitoring.configuration,void 0,2)),1)]),_:1})]))])}const ce=C(le,[["render",pe],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringConfigFallback.vue"]]);P.add(L,T);const me={name:"OpenwbMonitoringProxy",components:{FontAwesomeIcon:A},props:{monitoring:{type:Object,required:!0}},emits:["update:configuration"],methods:{getMonitoringComponent(){return console.debug(`loading monitoring: ${this.monitoring.type}`),E({loader:()=>j(Object.assign({"./zabbix/monitoring.vue":()=>B(()=>import("./monitoring-CKhMIifd.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10]))}),`./${this.monitoring.type}/monitoring.vue`,3),errorComponent:ce})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function ge(n,e,r,y,l,u){const p=m("font-awesome-icon"),c=m("openwb-base-alert"),b=m("openwb-base-heading");return d(),g(M,null,[r.monitoring.official?(d(),h(c,{key:0,subtype:"success"},{default:i(()=>[t(p,{icon:["fas","certificate"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),h(c,{key:1,subtype:"info"},{default:i(()=>[t(p,{icon:["fas","people-group"]}),o(' Das ausgewählte Monitoring Modul "'+f(r.monitoring.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),t(b,null,{default:i(()=>[o(' Einstellungen für Modul "'+f(r.monitoring.name)+'" ',1)]),_:1}),(d(),h(R(u.getMonitoringComponent()),{monitoring:r.monitoring,"onUpdate:configuration":e[0]||(e[0]=w=>u.updateConfiguration(w))},null,40,["monitoring"]))],64)}const fe=C(me,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/OpenwbMonitoringProxy.vue"]]);P.add(H,N,K,I,G);const be={name:"OpenwbDataManagementView",components:{FontAwesomeIcon:A,OpenwbBackupCloudProxy:se,OpenwbMonitoringProxy:fe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1},showBackupCloudSection:{type:Boolean,required:!1,default:!0}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_configured",writeable:!1},{topic:"openWB/LegacySmartHome/config/get/Devices/+/device_name",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/monitoring/config",writeable:!1},{topic:"openWB/system/backup_cloud/backup_before_update",writeable:!1},{topic:"openWB/system/backup_cloud/config",writeable:!1},{topic:"openWB/system/backup_password",writeable:!1},{topic:"openWB/system/configurable/backup_clouds",writeable:!1},{topic:"openWB/system/configurable/monitoring",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],warningAcknowledged:!1,showRestoreSection:!this.installAssistantActive,restorePassword:void 0,selectedRestoreFile:void 0,restoreUploadDone:!1,selectedDataMigrationFile:void 0,dataMigrationUploadDone:!1,dataMigrationConfig:[{sectionName:"Ladepunkte",sectionComponents:[{key:"cp1",label:"Ladepunkt 1",validTypes:["chargePoint"]},{key:"cp2",label:"Ladepunkt 2",validTypes:["chargePoint"]},{key:"cp3",label:"Ladepunkt 3",validTypes:["chargePoint"]},{key:"cp4",label:"Ladepunkt 4",validTypes:["chargePoint"]},{key:"cp5",label:"Ladepunkt 5",validTypes:["chargePoint"]},{key:"cp6",label:"Ladepunkt 6",validTypes:["chargePoint"]},{key:"cp7",label:"Ladepunkt 7",validTypes:["chargePoint"]},{key:"cp8",label:"Ladepunkt 8",validTypes:["chargePoint"]}]},{sectionName:"Zähler",sectionComponents:[{key:"evu",label:"EVU",validTypes:["counter"]},{key:"consumer1",label:"Verbraucher 1",validTypes:["counter"]},{key:"consumer2",label:"Verbraucher 2",validTypes:["counter"]},{key:"consumer3",label:"Verbraucher 3",validTypes:["counter"]}]},{sectionName:"Wechselrichter",sectionComponents:[{key:"pvAll",label:"Wechselrichter (Summe)",validTypes:["inverter"],help:"Die 1.9er Version von openWB speichert lediglich die Summen-Leistung aller Wechselrichter."}]},{sectionName:"Batteriespeicher",sectionComponents:[{key:"bat",label:"Speicher 1",validTypes:["battery"]}]},{sectionName:"Fahrzeuge",sectionComponents:[{key:"ev1",label:"Fahrzeug von Ladepunkt 1",validTypes:["vehicle"]},{key:"ev2",label:"Fahrzeug von Ladepunkt 2",validTypes:["vehicle"]}]},{sectionName:"SmartHome 2.0",sectionComponents:[{key:"sh1",label:"Gerät 1",validTypes:["smartHome"]},{key:"sh2",label:"Gerät 2",validTypes:["smartHome"]},{key:"sh3",label:"Gerät 3",validTypes:["smartHome"]},{key:"sh4",label:"Gerät 4",validTypes:["smartHome"]},{key:"sh5",label:"Gerät 5",validTypes:["smartHome"]},{key:"sh6",label:"Gerät 6",validTypes:["smartHome"]},{key:"sh7",label:"Gerät 7",validTypes:["smartHome"]},{key:"sh8",label:"Gerät 8",validTypes:["smartHome"]},{key:"sh9",label:"Gerät 9",validTypes:["smartHome"]}]}],dataMigrationMapping:{cp1:void 0,cp2:void 0,cp3:void 0,cp4:void 0,cp5:void 0,cp6:void 0,cp7:void 0,cp8:void 0,evu:void 0,pvAll:void 0,bat:void 0,consumer1:void 0,consumer2:void 0,consumer3:void 0,sh1:void 0,sh2:void 0,sh3:void 0,sh4:void 0,sh5:void 0,sh6:void 0,sh7:void 0,sh8:void 0,sh9:void 0,ev1:void 0,ev2:void 0}}},computed:{backupCloudList(){return this.$store.state.mqtt["openWB/system/configurable/backup_clouds"]},componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},chargePointOptions(){let n=this.getWildcardTopics("openWB/chargepoint/+/config");var e=[];for(const r of Object.values(n))e.push({value:r.id,text:r.name});return e},counterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"counter")&&n.push({value:e.id,text:e.name});return n},inverterOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"inverter")&&n.push({value:e.id,text:e.name});return n},monitoringList(){return this.$store.state.mqtt["openWB/system/configurable/monitoring"]},batteryOptions(){var n=[];for(const e of Object.values(this.componentConfigurations))this.isComponentType(e.type,"bat")&&n.push({value:e.id,text:e.name});return n},vehicleOptions(){let n=this.getWildcardTopics("openWB/vehicle/+/name");var e=[];for(const[r,y]of Object.entries(n)){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:y})}return e},smartHomeOptions(){let n=this.getWildcardTopics("openWB/LegacySmartHome/config/get/Devices/+/device_configured");var e=[];for(const[r,y]of Object.entries(n))if(y==1){let l=parseInt(r.match(/\/(\d\d?)\//)[1]);e.push({value:l,text:this.$store.state.mqtt[`openWB/LegacySmartHome/config/get/Devices/${l}/device_name`]})}return e},disableRestoreUpload(){return!this.selectedRestoreFile||this.selectedRestoreFile?.name?.endsWith(".gpg")&&!(this.restorePassword||this.$store.state.mqtt["openWB/system/backup_password"])}},methods:{isComponentType(n,e){return n.split("_").includes(e)},getBackupCloudDefaultConfiguration(n){const e=this.backupCloudList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for backup cloud type!",n),{})},sendSystemCommand(n,e={}){this.$emit("sendCommand",{command:n,data:e})},getMigrationOptions(n){var e=[{value:void 0,text:"-- nicht übernehmen --"}];return n.includes("chargePoint")&&e.push(...this.chargePointOptions),n.includes("counter")&&e.push(...this.counterOptions),n.includes("inverter")&&e.push(...this.inverterOptions),n.includes("battery")&&e.push(...this.batteryOptions),n.includes("vehicle")&&e.push(...this.vehicleOptions),n.includes("smartHome")&&e.push(...this.smartHomeOptions),e},updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},updateSelectedBackupCloud(n){this.updateState("openWB/system/backup_cloud/config",n,"type"),this.updateState("openWB/system/backup_cloud/config",this.getBackupCloudDefaultConfiguration(n))},updateSelectedRestoreFile(n){this.selectedRestoreFile=n.target.files[0]},updateSelectedDataMigrationFile(n){this.selectedDataMigrationFile=n.target.files[0]},uploadFile(n,e,r,y={}){return new Promise(l=>{if(e!==void 0){this.$root.postClientMessage("Hochladen der Datei gestartet.","info");let u=new FormData;u.append("file",e),u.append("target",n);for(const[p,c]of Object.entries(y))u.append(p,c);this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/uploadFile.php",u,{headers:{"Content-Type":"multipart/form-data"}}).then(()=>{this.$root.postClientMessage(r,"success"),l(!0)}).catch(p=>{if(p.response){console.error(p.response.status,p.response.data);var c="Hochladen der Datei fehlgeschlagen!
"+p.response.status+": "+p.response.data}else p.request?(console.error(p.request),c+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",p.message),c+="Es ist ein unbekannter Fehler aufgetreten.");this.$root.postClientMessage(c,"danger"),l(!1)})}else console.error("no file selected for upload"),l(!1)})},getMonitoringDefaultConfiguration(n){const e=this.monitoringList.find(r=>r.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for monitoring type!",n),{})},updateSelectedMonitoring(n){this.updateState("openWB/optional/monitoring/config",n,"type"),this.updateState("openWB/optional/monitoring/config",this.getMonitoringDefaultConfiguration(n))},async uploadRestoreFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst die Wiederherstellung jetzt starten.";this.restoreUploadDone=await this.uploadFile("restore",this.selectedRestoreFile,n,[void 0,null,""].includes(this.restorePassword)?void 0:{restorePassword:this.restorePassword})},async uploadDataMigrationFile(){const n="Die Sicherungsdatei wurde erfolgreich hochgeladen. Du kannst den Import jetzt starten.";this.dataMigrationUploadDone=await this.uploadFile("migrate",this.selectedDataMigrationFile,n)},restoreBackup(){this.sendSystemCommand("restoreBackup"),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})},dataMigration(){this.sendSystemCommand("dataMigration",this.dataMigrationMapping)},factoryReset(){this.sendSystemCommand("factoryReset",{}),this.$store.commit("storeLocal",{name:"reloadRequired",value:!0})}}},he={class:"system"},ke={key:1},ye={name:"backupPasswordForm"},ve={name:"backupForm"},we={class:"row justify-content-center"},_e={class:"col-md-4 d-flex py-1 justify-content-center"},Ce={key:0,name:"restoreForm"},Be={class:"input-group mb-2"},De={class:"input-group-prepend"},Se={class:"input-group-text"},We={class:"custom-file"},Me={id:"input-file-label",class:"custom-file-label",for:"input-file","data-browse":"Suchen"},Oe={class:"input-group-append"},Fe=["disabled"],Ae={class:"row justify-content-center"},Pe={class:"col-md-4 d-flex py-1 justify-content-center"},ze={key:1},Ve={key:0,name:"cloudBackupForm"},Le={key:0},Te={name:"dataMigrationForm"},je={class:"input-group"},Ee={class:"input-group-prepend"},Re={class:"input-group-text"},Ue={class:"custom-file"},qe={id:"data-migration-file-label",class:"custom-file-label",for:"data-migration-file","data-browse":"Suchen"},xe={class:"input-group-append"},$e=["disabled"],He={class:"row justify-content-center"},Ne={class:"col-md-4 d-flex py-1 justify-content-center"},Ke={key:1,name:"resetForm"},Ie={class:"row justify-content-center"},Ge={class:"col-md-4 d-flex py-1 justify-content-center"},Je={key:2,name:"monitoringForm"},Ze={key:1},Qe={key:0};function Xe(n,e,r,y,l,u){const p=m("openwb-base-button-group-input"),c=m("openwb-base-alert"),b=m("openwb-base-heading"),w=m("openwb-base-text-input"),O=m("openwb-base-submit-buttons"),v=m("font-awesome-icon"),D=m("openwb-base-click-button"),F=m("openwb-base-select-input"),U=m("openwb-base-button-input"),q=m("openwb-backup-cloud-proxy"),S=m("openwb-base-card"),x=m("openwb-monitoring-proxy");return d(),g("div",he,[r.installAssistantActive?k("",!0):(d(),h(c,{key:0,subtype:"danger"},{default:i(()=>[e[25]||(e[25]=s("h2",null,"Achtung!",-1)),e[26]||(e[26]=s("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),t(p,{modelValue:l.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=a=>l.warningAcknowledged=a),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),l.warningAcknowledged||r.installAssistantActive?(d(),g("div",ke,[t(S,{title:"Sicherung / Wiederherstellung",subtype:"success",collapsible:!0,collapsed:!r.installAssistantActive},{default:i(()=>[s("form",ye,[t(b,null,{default:i(()=>[...e[27]||(e[27]=[o("Allgemein",-1)])]),_:1}),t(w,{title:"Kennwort für Sicherungen",subtype:"password","model-value":n.$store.state.mqtt["openWB/system/backup_password"],"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateState("openWB/system/backup_password",a))},{help:i(()=>[...e[28]||(e[28]=[o(" Ist hier ein Kennwort gesetzt, werden alle Sicherungen mit einem Kennwortschutz versehen. Diese Option sollte genutzt werden, wenn die Sicherungsdatei über unsichere Kanäle (z.B. eine Backup-Cloud im Internet) übertragen wird.",-1),s("br",null,null,-1),o(" Wichtig: Das Kennwort wird nicht in der Sicherung gespeichert! Ohne gültiges Kennwort kann eine geschützte Sicherung nicht wiederhergestellt werden! ",-1)])]),_:1},8,["model-value"]),t(O,{"form-name":"backupPasswordForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveBackupPassword",onSave:e[2]||(e[2]=a=>n.$emit("save",["openWB/system/backup_password"])),onReset:e[3]||(e[3]=a=>n.$emit("reset"))}),e[29]||(e[29]=s("hr",null,null,-1))]),s("form",ve,[t(b,null,{default:i(()=>[...e[30]||(e[30]=[o("Sicherung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[31]||(e[31]=[o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[32]||(e[32]=[o(" Nachdem die Sicherung abgeschlossen ist, kann die erstellte Datei über den Link in der Benachrichtigung oder ",-1),s("a",{href:"/openWB/data/backup/",target:"_blank"},"hier",-1),o(" heruntergeladen werden. ",-1)])]),_:1}),s("div",we,[s("div",_e,[t(D,{class:"btn-success clickable",onButtonClicked:e[4]||(e[4]=a=>u.sendSystemCommand("createBackup",{use_extended_filename:!0}))},{default:i(()=>[e[33]||(e[33]=o(" Sicherung erstellen ",-1)),t(v,{icon:["fas","archive"]})]),_:1})])])]),l.showRestoreSection?(d(),g("form",Ce,[e[39]||(e[39]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[34]||(e[34]=[o("Wiederherstellung",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[35]||(e[35]=[o(" Für die Wiederherstellung wird eine aktive Internetverbindung benötigt.",-1),s("br",null,null,-1),o(' Es können nur Sicherungen wiederhergestellt werden, die in den Entwicklungszweigen "master", "Beta" oder "Release" erstellt wurden! ',-1)])]),_:1}),s("div",Be,[s("div",De,[s("div",Se,[t(v,{icon:["fas","file-archive"]})])]),s("div",We,[s("input",{id:"input-file",type:"file",class:"custom-file-input",accept:".tar.gz,.openwb-backup,application/gzip,application/tar+gzip,.openwb-backup.gpg,application/gzip+gpg,application/tar+gzip+gpg",onChange:e[5]||(e[5]=a=>u.updateSelectedRestoreFile(a))},null,32),s("label",Me,f(l.selectedRestoreFile?l.selectedRestoreFile.name:"Bitte eine Datei auswählen"),1)]),s("div",Oe,[s("button",{class:W(["btn",u.disableRestoreUpload?"btn-outline-success":"btn-success clickable"]),disabled:u.disableRestoreUpload,type:"button",onClick:e[6]||(e[6]=a=>u.uploadRestoreFile())},[e[36]||(e[36]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,Fe)])]),l.selectedRestoreFile?.name?.endsWith(".gpg")?(d(),h(w,{key:0,modelValue:l.restorePassword,"onUpdate:modelValue":e[7]||(e[7]=a=>l.restorePassword=a),title:"Kennwort dieser Sicherung",subtype:"password"},{help:i(()=>[...e[37]||(e[37]=[o(' Wenn die Sicherung mit einem Kennwortschutz versehen wurde, wird zuerst eine Entschlüsselung mit dem unter "Allgemein" hinterlegten Kennwort versucht. Falls die Sicherung mit einem anderen Kennwort geschützt wurde, muss dieses hier eingegeben werden. ',-1)])]),_:1},8,["modelValue"])):k("",!0),s("div",Ae,[s("div",Pe,[t(D,{class:W(l.restoreUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.restoreUploadDone,onButtonClicked:e[8]||(e[8]=a=>u.restoreBackup())},{default:i(()=>[e[38]||(e[38]=o(" Wiederherstellung starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])):k("",!0),r.installAssistantActive?k("",!0):(d(),g("div",ze,[r.showBackupCloudSection?(d(),g("form",Ve,[e[43]||(e[43]=s("hr",null,null,-1)),t(b,null,{default:i(()=>[...e[40]||(e[40]=[o(" Automatische Sicherung in einen Cloud-Dienst ",-1)])]),_:1}),t(c,{subtype:"info"},{default:i(()=>[...e[41]||(e[41]=[o(" Ist die openWB als primary konfiguriert, wird zwischen Mitternacht und 5:00 Uhr automatisch eine Sicherung erstellt und in den angegebenen Cloud-Dienst (nicht openWB Cloud!) hochgeladen. Ist kein Cloud-Dienst konfiguriert, wird keine automatische Sicherung erstellt. Die automatische Sicherung kann unabhängig von der openWB Cloud genutzt werden.",-1),s("br",null,null,-1),o(" Die manuelle Cloud-Sicherung und -falls aktiviert- die Sicherung vor einem Update werden sowohl von einer primary als auch von einer secondary durchgeführt.",-1),s("br",null,null,-1),o(" Die Anleitung zur Konfiguration des Cloud-Dienstes findest Du ",-1),s("a",{href:"https://github.com/openWB/core/wiki/Cloud-Sicherung",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),o(" . ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Backup-Cloud",options:u.backupCloudList,"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type,"onUpdate:modelValue":e[9]||(e[9]=a=>u.updateSelectedBackupCloud(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/system/backup_cloud/config"]?.type?(d(),g("div",Le,[t(p,{title:"Sicherung vor System-Update",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/system/backup_cloud/backup_before_update"],"onUpdate:modelValue":e[10]||(e[10]=a=>n.updateState("openWB/system/backup_cloud/backup_before_update",a))},{help:i(()=>[...e[42]||(e[42]=[o(" Ist diese Option aktiviert, dann wird vor jedem System-Update automatisch eine Sicherung erstellt und diese in die Backup-Cloud hochgeladen. ",-1)])]),_:1},8,["model-value"]),t(U,{title:"Manuelle Cloud-Sicherung","button-text":"Sicherung erstellen und hochladen",subtype:"success",onButtonClicked:e[11]||(e[11]=a=>u.sendSystemCommand("createCloudBackup",{}))}),t(q,{"backup-cloud":n.$store.state.mqtt["openWB/system/backup_cloud/config"],"onUpdate:configuration":e[12]||(e[12]=a=>u.updateConfiguration("openWB/system/backup_cloud/config",a)),onSendCommand:e[13]||(e[13]=a=>u.sendSystemCommand(a.command,a.args))},null,8,["backup-cloud"])])):k("",!0),t(O,{"form-name":"cloudBackupForm","hide-reset":!0,"hide-defaults":!0,"save-id":"saveCloudBackup",onSave:e[14]||(e[14]=a=>n.$emit("save",["openWB/system/backup_cloud/backup_before_update","openWB/system/backup_cloud/config"])),onReset:e[15]||(e[15]=a=>n.$emit("reset")),onDefaults:e[16]||(e[16]=a=>n.$emit("defaults"))})])):k("",!0)]))]),_:1},8,["collapsed"]),!r.installAssistantActive&&!n.$store.state.mqtt["openWB/general/extern"]?(d(),h(S,{key:0,title:"Datenübernahme",subtype:"success",collapsible:!0,collapsed:!0},{default:i(()=>[s("form",Te,[t(c,{subtype:"info"},{default:i(()=>[...e[44]||(e[44]=[o(" Hier kann die Sicherung aus den älteren Software Versionen 1.9.303 oder 1.9.304 hochgeladen werden, um vorhandene historische Daten (Diagramme und Ladeprotokolle) sowie Cloud-Daten und Seriennummer in diese Installation zu importieren.",-1),s("br",null,null,-1),o(" Ein Import aus Versionen kleiner als 1.9.303 ist nicht möglich. Falls eine Datenübernahme aus 1.9er Versionen gewünscht ist, muss erst ein Upgrade auf 1.9.303 oder 1.9.304 durchgeführt werden! Die Zuordnung zwischen den alten und neuen Komponenten muss manuell durchgeführt werden. ",-1)])]),_:1}),t(c,{subtype:"danger"},{default:i(()=>[...e[45]||(e[45]=[o(" Die Portierung kann bei vielen historischen Daten von mehreren Jahren durchaus bis zu 30 Minuten dauern. Die openWB in dieser Zeit bitte nicht herunterfahren! Du erhältst eine Meldung, wenn die Datenübernahme abgeschlossen ist.",-1),s("br",null,null,-1),o(" Vor der Datenübernahme unbedingt eine Sicherung erstellen.",-1),s("br",null,null,-1),o(" Die Datenübernahme kann nur durch Einspielen einer Sicherung rückgängig gemacht werden! ",-1)])]),_:1}),s("div",je,[s("div",Ee,[s("div",Re,[t(v,{icon:["fas","file-archive"]})])]),s("div",Ue,[s("input",{id:"data-migration-file",type:"file",class:"custom-file-input",accept:".tar.gz,application/gzip,application/tar+gzip",onChange:e[17]||(e[17]=a=>u.updateSelectedDataMigrationFile(a))},null,32),s("label",qe,f(l.selectedDataMigrationFile?l.selectedDataMigrationFile.name:"Bitte eine Datei auswählen"),1)]),s("div",xe,[s("button",{class:W(["btn",l.selectedDataMigrationFile?"btn-success clickable":"btn-outline-success"]),disabled:!l.selectedDataMigrationFile,type:"button",onClick:e[18]||(e[18]=a=>u.uploadDataMigrationFile())},[e[46]||(e[46]=o(" Hochladen ",-1)),t(v,{icon:["fas","upload"]})],10,$e)])]),t(b,null,{default:i(()=>[...e[47]||(e[47]=[o(" Zuordnung der Komponenten ",-1)])]),_:1}),(d(!0),g(M,null,z(l.dataMigrationConfig,a=>(d(),g("div",{key:a.sectionName},[t(b,null,{default:i(()=>[o(f(a.sectionName),1)]),_:2},1024),(d(!0),g(M,null,z(a.sectionComponents,_=>(d(),h(F,{key:_.key,modelValue:l.dataMigrationMapping[_.key],"onUpdate:modelValue":$=>l.dataMigrationMapping[_.key]=$,title:_.label,options:u.getMigrationOptions(_.validTypes)},V({_:2},[_.help?{name:"help",fn:i(()=>[o(f(_.help),1)]),key:"0"}:void 0]),1032,["modelValue","onUpdate:modelValue","title","options"]))),128))]))),128)),s("div",He,[s("div",Ne,[t(D,{class:W(l.dataMigrationUploadDone?"btn-success clickable":"btn-outline-success"),disabled:!l.dataMigrationUploadDone,onButtonClicked:e[19]||(e[19]=a=>u.dataMigration())},{default:i(()=>[e[48]||(e[48]=o(" Datenübernahme starten ",-1)),t(v,{icon:["fas","box-open"]})]),_:1},8,["class","disabled"])])])])]),_:1})):k("",!0),r.installAssistantActive?k("",!0):(d(),g("form",Ke,[t(S,{title:"Zurücksetzen",subtype:"danger",collapsible:!0,collapsed:!0},{footer:i(()=>[s("div",Ie,[s("div",Ge,[t(D,{class:"btn-danger clickable",onButtonClicked:e[20]||(e[20]=a=>u.factoryReset())},{default:i(()=>[t(v,{icon:["fas","skull-crossbones"]}),e[50]||(e[50]=o(" Zurücksetzen ",-1)),t(v,{icon:["fas","skull-crossbones"]})]),_:1})])])]),default:i(()=>[t(c,{subtype:"danger"},{default:i(()=>[...e[49]||(e[49]=[o(" Alle Einstellungen, angelegte Geräte/Komponenten, Ladepunkte und Fahrzeuge, etc., Tages-, Monats- und Jahresauswertungen sowie das Ladeprotokoll werden unwiederbringlich gelöscht. Auch die Vorkonfiguration im Auslieferungszustand wird gelöscht. Die openWB muss danach komplett neu eingerichtet werden. Die openWB wird hierfür automatisch neu gestartet. Bitte erstelle vor dem Zurücksetzen eine Sicherung! ",-1)])]),_:1})]),_:1})])),r.installAssistantActive?k("",!0):(d(),g("form",Je,[t(S,{title:"Monitoring",subtype:"success",collapsible:!0,collapsed:!0},V({default:i(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),h(c,{key:0,subtype:"info"},{default:i(()=>[...e[51]||(e[51]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(d(),g("div",Ze,[t(c,{subtype:"info"},{default:i(()=>[...e[52]||(e[52]=[o(" Das Monitoring informiert Dich sofort per E-Mail, wenn eine Deiner Komponenten oder Ladepunkte ein Problem hat oder die openWB nicht mehr erreichbar ist. ",-1)])]),_:1}),t(F,{class:"mb-2",title:"Anbieter",options:u.monitoringList,"model-value":n.$store.state.mqtt["openWB/optional/monitoring/config"]?n.$store.state.mqtt["openWB/optional/monitoring/config"].type:"","onUpdate:modelValue":e[21]||(e[21]=a=>u.updateSelectedMonitoring(a))},null,8,["options","model-value"]),n.$store.state.mqtt["openWB/optional/monitoring/config"]&&n.$store.state.mqtt["openWB/optional/monitoring/config"].type?(d(),g("div",Qe,[t(x,{monitoring:n.$store.state.mqtt["openWB/optional/monitoring/config"],"onUpdate:configuration":e[22]||(e[22]=a=>u.updateConfiguration("openWB/optional/monitoring/config",a))},null,8,["monitoring"])])):k("",!0)]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]!==!0?{name:"footer",fn:i(()=>[t(O,{"form-name":"monitoringForm","hide-defaults":!0,"save-id":"saveMonitoring",onSave:e[23]||(e[23]=a=>n.$emit("save",["openWB/optional/monitoring/config"])),onReset:e[24]||(e[24]=a=>n.$emit("reset"))})]),key:"0"}:void 0]),1024)]))])):k("",!0)])}const Ye=C(be,[["render",Xe],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DataManagement.vue"]]),sn=Object.freeze(Object.defineProperty({__proto__:null,default:Ye},Symbol.toStringTag,{value:"Module"}));export{Q as B,Ye as D,re as M,sn as a}; diff --git a/web/settings/assets/DebugConfiguration-C2vm4vM4.js b/web/settings/assets/DebugConfiguration-FJkDknEv.js similarity index 99% rename from web/settings/assets/DebugConfiguration-C2vm4vM4.js rename to web/settings/assets/DebugConfiguration-FJkDknEv.js index 4b6d08c939..a919693eb2 100644 --- a/web/settings/assets/DebugConfiguration-C2vm4vM4.js +++ b/web/settings/assets/DebugConfiguration-FJkDknEv.js @@ -1,2 +1,2 @@ -import{C as x}from"./index-D_eD74fL.js";import{F as B,l as W,ak as V,al as z,k as P,am as T,g as N}from"./vendor-fortawesome-CBc-2W7w.js";import{a as y}from"./vendor-axios-DdFvNBv9.js";import{_ as F,a3 as M,l,k as u,y as p,q as r,A as h,J as v,x as b,m as g,u as f,z as L,j as m,e as C,K as S,L as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";W.add(V,z,P,T,N);const I={name:"OpenwbLogCard",components:{FontAwesomeIcon:B},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! +import{C as x}from"./index-MVrRMMo2.js";import{F as B,l as W,ak as V,al as z,k as P,am as T,g as N}from"./vendor-fortawesome-CBc-2W7w.js";import{a as y}from"./vendor-axios-DdFvNBv9.js";import{_ as F,a3 as M,l,k as u,y as p,q as r,A as h,J as v,x as b,m as g,u as f,z as L,j as m,e as C,K as S,L as q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";W.add(V,z,P,T,N);const I={name:"OpenwbLogCard",components:{FontAwesomeIcon:B},props:{title:{type:String,required:!0},logFile:{type:String,required:!0}},data(){return{logData:"-- noch nicht geladen --",loading:!1,foundFiles:[],selectedVariant:"",copyMessage:!1,pastebinLink:""}},methods:{async getFilePromise(o,e=!1,n=!0,a=!1){return y[a?"head":"get"](location.protocol+"//"+location.host+o).then(s=>{if(a)return!0;{const d=s.data;return d||"log file is empty"}}).catch(s=>{if(!n)throw s;return s.response?s.response.status==404&&e?a?!1:"":`A 404 is expected if running node.js dev server! `+s.response.status+" "+s.response.statusText+": "+s.response.request.responseURL:s.request?s.request:s.message})},async loadLog(o,e=""){this.logData="wird aktualisiert...",this.loading=!0,this.pastebinLink="";var n="";e&&(o=o.replace(".log",`.${e}.log`));for(let t=4;t>=1;t--){const s=await this.getFilePromise(o+"."+t,!0);n+=s}const a=await this.getFilePromise(o);n+=a,this.logData=n,this.loading=!1},async checkLatestLog(o){const e=[{suffix:"latest",title:"Letzten 3 Durchläufe",description:"Logs der Letzten 3 Durchläufe laden"},{suffix:"current",title:"Letzter Durchlauf",description:"Logs des letzten Durchlaufs laden"},{suffix:"latest-warning",title:"Letzter Durchlauf mit Warnung oder Fehler",description:"Fehlerprotokoll laden"}];this.foundFiles=[];for(const n of e){const a=o.replace(".log",`.${n.suffix}.log`);try{await this.getFilePromise(a,!1,!1,!0),this.foundFiles.push(n),n.suffix==="latest"&&(this.selectedVariant="latest",console.log("Found latest log file: ",a))}catch(t){console.log(t)}}this.foundFiles.length>0&&this.foundFiles.push({suffix:"",title:"Vollständiges Log",description:"Vollständiges Log laden"})},async onCardExpand(){await this.checkLatestLog(this.logFile),this.loadLog(this.logFile,this.selectedVariant)},copyToClipboard(o=this.logData,e=!0){if(navigator.clipboard&&navigator.clipboard.writeText)navigator.clipboard.writeText(o).then(()=>{e&&this.showCopyMessage()}).catch(n=>{console.error("Fehler beim Kopieren in die Zwischenablage: ",n)});else{const n=document.createElement("textarea");n.value=o,document.body.appendChild(n),n.select();try{document.execCommand("copy"),e&&this.showCopyMessage()}catch(a){console.error("Fehler beim Kopieren in die Zwischenablage: ",a)}document.body.removeChild(n)}},showCopyMessage(){this.copyMessage=!0,this.$root.postClientMessage("Log in die Zwischenablage kopiert.","info"),setTimeout(()=>{this.copyMessage=!1},3e3)},async postToPastebin(){try{const o=M.gzip(this.logData),e=await y.post("https://bytebin.openwb.de/post",o,{headers:{"Content-Type":"text/log","Content-Encoding":"gzip"}});if(!e.data.key)throw new Error("Key is missing in the response");const n=e.data.key;this.pastebinLink=`https://paste.openwb.de/${n}`,console.log("Pastebin link:",this.pastebinLink),this.copyToClipboard(this.pastebinLink,!1),this.$root.postClientMessage(`Log an Pastebin gesendet.
Key: ${n}
Der Link wurde in die Zwischenablage kopiert.`,"info")}catch(o){console.error("Fehler beim Posten auf paste.openwb.de: ",o)}}}},E={class:"log-data mb-0"};function K(o,e,n,a,t,s){const d=l("font-awesome-icon"),c=l("openwb-base-avatar"),w=l("openwb-base-select-input"),k=l("openwb-base-alert"),_=l("openwb-base-card");return u(),p(_,{title:n.title,class:"log-card",collapsible:!0,collapsed:!0,onExpanded:s.onCardExpand},{actions:r(({collapsed:i})=>[i?f("",!0):(u(),p(c,{key:0,class:m(["clickable mr-1",t.pastebinLink?"bg-success":"bg-info"]),title:t.pastebinLink?"Link in die Zwischenablage kopiert":"Log auf paste.openwb.de teilen",onClick:L(s.postToPastebin,["stop"])},{default:r(()=>[g(d,{icon:t.pastebinLink?["fas","check"]:["fas","share-nodes"]},null,8,["icon"])]),_:1},8,["class","title","onClick"])),i?f("",!0):(u(),p(c,{key:1,class:m(["clickable mr-1",t.copyMessage?"bg-success":"bg-info"]),title:t.copyMessage?"Log in die Zwischenablage kopiert":"Log kopieren",onClick:e[0]||(e[0]=L(D=>s.copyToClipboard(t.logData),["stop"]))},{default:r(()=>[g(d,{icon:t.copyMessage?["fas","check"]:["fas","clipboard"]},null,8,["icon"])]),_:1},8,["class","title"])),i?f("",!0):(u(),p(c,{key:2,class:m(["clickable",t.loading?"bg-success":"bg-info"]),title:"Log laden/aktualisieren",onClick:e[1]||(e[1]=L(D=>s.loadLog(n.logFile,t.selectedVariant),["stop"]))},{default:r(()=>[g(d,{class:m(t.loading?"fa-spin-pulse":""),icon:t.loading?["fas","spinner"]:["fas","file-download"]},null,8,["class","icon"])]),_:1},8,["class"]))]),default:r(()=>[t.foundFiles.length>0?(u(),p(k,{key:0,subtype:"info"},{default:r(()=>[h(" Im "+v(n.title)+" stehen unterschiedliche Logauszüge zur Verfügung. Standardmässig werden Logs der letzten 3 Durchläufe geladen, für viele Fälle sollte dies ausreichen. Optional kann auch das gesamte Log geladen werden.",1),e[4]||(e[4]=b("br",null,null,-1)),e[5]||(e[5]=h(" Wurde eine Warnung oder ein Fehler protokolliert steht zusätzlich der letzte Durchlauf mit Warnungen und Fehlern zur Verfügung.",-1)),e[6]||(e[6]=b("br",null,null,-1)),g(w,{modelValue:t.selectedVariant,"onUpdate:modelValue":e[2]||(e[2]=i=>t.selectedVariant=i),title:"Logfile",required:"",options:t.foundFiles.map(i=>({value:i.suffix,text:i.title})),onChange:e[3]||(e[3]=i=>s.loadLog(n.logFile,t.selectedVariant))},null,8,["modelValue","options"])]),_:1})):f("",!0),b("pre",E,v(t.logData),1)]),_:1},8,["title","onExpanded"])}const A=F(I,[["render",K],["__scopeId","data-v-a320c3d6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/debug_config/LogCard.vue"]]),Z={name:"OpenwbDebuggingView",components:{OpenwbLogCard:A},mixins:[x],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/debug_level",writeable:!0}],logFiles:[{title:"Main-Log",fileName:"/openWB/ramdisk/main.log"},{title:"Log des internen Ladepunktes",fileName:"/openWB/ramdisk/internal_chargepoint.log"},{title:"MQTT-Log",fileName:"/openWB/ramdisk/mqtt.log"},{title:"SoC-Log",fileName:"/openWB/ramdisk/soc.log"},{title:"Protokoll des letzten Updates",fileName:"/openWB/data/log/update.log"},{title:"Protokoll des Remote-Dienstes",fileName:"/openWB/ramdisk/remote_support.log"},{title:"Protokoll des SmartHome Dienstes",fileName:"/openWB/ramdisk/smarthome.log"},{title:"Protokoll der Sicherung",fileName:"/openWB/data/log/backup.log"},{title:"Protokoll der Wiederherstellung",fileName:"/openWB/data/log/restore.log"},{title:"Protokoll der Datenmigration",fileName:"/openWB/data/log/data_migration.log"},{title:"Protokoll über die Schaltvorgänge von steuerbaren Verbrauchseinrichtungen",fileName:"/openWB/data/log/steuve_control_command.log"},{title:"Thread-Errors",fileName:"/openWB/ramdisk/thread_errors.log"}]}}},O={class:"debugging"},R={name:"debugConfigForm"};function U(o,e,n,a,t,s){const d=l("openwb-base-button-group-input"),c=l("openwb-base-alert"),w=l("openwb-base-card"),k=l("openwb-base-submit-buttons"),_=l("openwb-log-card");return u(),C("div",O,[b("form",R,[g(w,{title:"Protokollierung"},{default:r(()=>[g(d,{title:"Debug Level",buttons:[{buttonValue:30,text:"Warnungen und Fehler"},{buttonValue:20,text:"Info"},{buttonValue:10,text:"Details"}],"model-value":o.$store.state.mqtt["openWB/system/debug_level"],"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateState("openWB/system/debug_level",i))},{help:r(()=>[...e[4]||(e[4]=[h(' Wenn der Debug Level auf "Info" oder "Details" gesetzt wird, werden mehr Informationen in die Logdateien geschrieben. Im normalen Betrieb sollte immer "Warnungen und Fehler" gewählt werden, um die Schreibvorgänge auf der SD-Karte zu reduzieren. ',-1)])]),_:1},8,["model-value"]),g(c,{subtype:"warning"},{default:r(()=>[...e[5]||(e[5]=[h(' Achtung! In den Einstellungen "Info" und "Details" können in den Logdateien sensible Daten wie Benutzernamen und Passwörter enthalten sein. Diese sollten vor dem Veröffentlichen z.B. im Forum unkenntlich gemacht werden. Private IP-Adressen (z.B. 192.168.x.x) müssen nicht maskiert werden, da diese nicht über das Internet erreichbar sind. ',-1)])]),_:1})]),_:1}),g(k,{"form-name":"debugConfigForm",onSave:e[1]||(e[1]=i=>o.$emit("save",o.mqttTopicsToPublish)),onReset:e[2]||(e[2]=i=>o.$emit("reset")),onDefaults:e[3]||(e[3]=i=>o.$emit("defaults"))})]),(u(!0),C(S,null,q(t.logFiles,i=>(u(),p(_,{key:i.fileName,title:i.title,"log-file":i.fileName},null,8,["title","log-file"]))),128))])}const Y=F(Z,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DebugConfiguration.vue"]]);export{Y as default}; diff --git a/web/settings/assets/DisplayConfiguration-h7XEuoXV.js b/web/settings/assets/DisplayConfiguration-C9arPcQK.js similarity index 97% rename from web/settings/assets/DisplayConfiguration-h7XEuoXV.js rename to web/settings/assets/DisplayConfiguration-C9arPcQK.js index 1dbf20a99f..3d88f40aaa 100644 --- a/web/settings/assets/DisplayConfiguration-h7XEuoXV.js +++ b/web/settings/assets/DisplayConfiguration-C9arPcQK.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/displayTheme-BlhJueVr.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-D_eD74fL.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/displayTheme-TNZXyuYb.js"])))=>i.map(i=>d[i]); -import{_ as B,C}from"./index-D_eD74fL.js";import{_ as $}from"./dynamic-import-helper-BheWnx7M.js";import{F as z,l as S,ac as O,ad as V,ae as q,af as E}from"./vendor-fortawesome-CBc-2W7w.js";import{_,l as p,k as r,e as d,y as f,q as a,A as n,J as m,m as i,x as o,a1 as M,a2 as P,K as A,u as c}from"./vendor-Bo8v-nQD.js";const j={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},L=_(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),N={name:"DisplayThemeFallback",mixins:[L]},F={class:"display-theme-fallback"},I={key:1};function U(t,e,l,w,v,b){const u=p("openwb-base-alert"),y=p("openwb-base-textarea");return r(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(r(),f(u,{key:0,subtype:"info"},{default:a(()=>[n(' Das Display-Theme "'+m(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),d("div",I,[i(u,{subtype:"warning"},{default:a(()=>[n(' Es wurde keine Konfigurationsseite für das Display-Theme "'+m(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),i(y,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=g=>t.updateConfiguration(g,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[n(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),i(u,{subtype:"info"},{default:a(()=>[o("pre",null,m(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const x=_(N,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);S.add(O,V,q,E);const J={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:z},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),M({loader:()=>$(Object.assign({"./cards/displayTheme.vue":()=>B(()=>import("./displayTheme-BlhJueVr.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./colors/displayTheme.vue":()=>B(()=>import("./displayTheme-TNZXyuYb.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10]))}),`./${this.displayTheme.type}/displayTheme.vue`,3),errorComponent:x})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function R(t,e,l,w,v,b){const u=p("font-awesome-icon"),y=p("openwb-base-alert"),g=p("openwb-base-heading");return r(),d(A,null,[l.displayTheme.official?(r(),f(y,{key:0,subtype:"success"},{default:a(()=>[i(u,{icon:["fas","certificate"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(y,{key:1,subtype:"info"},{default:a(()=>[i(u,{icon:["fas","people-group"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),i(y,{subtype:l.displayTheme.userManagementSupported?"success":"warning"},{default:a(()=>[i(u,{icon:["fas",l.displayTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" unterstützt die Benutzerverwaltung'+m(l.displayTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),i(g,null,{default:a(()=>[n(' Einstellungen für Display Theme "'+m(l.displayTheme.name)+'" ',1)]),_:1}),(r(),f(P(b.getDisplayThemeComponent()),{"display-theme":l.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>b.updateConfiguration(h))},null,40,["display-theme"]))],64)}const H=_(J,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),G={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:H},mixins:[C],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/int_display/active",writeable:!0},{topic:"openWB/optional/int_display/on_if_plugged_in",writeable:!0},{topic:"openWB/optional/int_display/only_local_charge_points",writeable:!0},{topic:"openWB/optional/int_display/rotation",writeable:!0},{topic:"openWB/optional/int_display/standby",writeable:!0},{topic:"openWB/optional/int_display/theme",writeable:!0},{topic:"openWB/system/configurable/display_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.displayThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(l=>l.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},K={class:"optionalComponents"},Z={name:"optionalComponentsForm"},Q={key:0},X={key:1},Y={key:2},ee={key:0};function te(t,e,l,w,v,b){const u=p("openwb-base-button-group-input"),y=p("openwb-base-heading"),g=p("openwb-base-range-input"),h=p("openwb-base-alert"),D=p("openwb-base-select-input"),T=p("openwb-display-theme-proxy"),W=p("openwb-base-card"),k=p("openwb-base-submit-buttons");return r(),d("div",K,[o("form",Z,[i(W,{title:"Display (intern oder extern)"},{default:a(()=>[i(u,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/optional/int_display/active",s))},{help:a(()=>[...e[9]||(e[9]=[n(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(r(),d("div",Q,[i(u,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=s=>t.updateState("openWB/optional/int_display/rotation",s))},{help:a(()=>[...e[10]||(e[10]=[n(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),o("br",null,null,-1),n(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])]),_:1},8,["model-value"]),e[13]||(e[13]=o("hr",null,null,-1)),i(y,null,{default:a(()=>[...e[11]||(e[11]=[n(" Display Standby ",-1)])]),_:1}),i(g,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/optional/int_display/standby",s))},{help:a(()=>[...e[12]||(e[12]=[n(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])]),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),d("div",X,[e[15]||(e[15]=o("hr",null,null,-1)),i(h,{subtype:"info"},{default:a(()=>[...e[14]||(e[14]=[n(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),d("div",Y,[e[19]||(e[19]=o("hr",null,null,-1)),i(u,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=s=>t.updateState("openWB/optional/int_display/only_local_charge_points",s))},{help:a(()=>[...e[16]||(e[16]=[n(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])]),_:1},8,["model-value"]),i(h,{subtype:"info",class:"mb-3"},{default:a(()=>[...e[17]||(e[17]=[o("p",null,[n(" Wenn die "),o("strong",null,"Benutzerverwaltung"),n(" aktiviert ist, werden nur die Ladepunkte angezeigt, für welche dem jeweiligen Display-Benutzer auch Zugriffsrechte gegeben wurden. Ebenfalls ist es möglich, dass bestimmte Daten von Wechselrichtern, Fahrzeugen, etc. nicht angezeigt werden, wenn der Benutzer hierfür keine Berechtigung besitzt. ")],-1),o("p",null,' Bei aktivierter Benutzerverwaltung wird empfohlen, die Anzeige auf "Alle" Ladepunkte zu setzen, damit es nicht zu Überschneidungen zwischen diesen Einschränkungen kommt. ',-1),o("p",null,[n(" Das "),o("strong",null,"integrierte Display"),n(' einer openWB series2 oder standalone verwendet automatisch den Benutzer "Display-Intern". Für '),o("strong",null,"externe openWB"),n(' im Steuerungsmodus "secondary" werden automatisch Benutzer mit dem Namen "Display-'),o("i",null,"IP"),n('", wobei '),o("i",null,"IP"),n(" für die jeweilige IP-Adresse der secondary openWB steht, angelegt. ")],-1)])]),_:1}),e[20]||(e[20]=o("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(r(),d("div",ee,[i(D,{class:"mb-2",title:"Theme des Displays",groups:b.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=s=>b.updateSelectedDisplayTheme(s))},{help:a(()=>[...e[18]||(e[18]=[n(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])]),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(r(),f(T,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=s=>b.updateConfiguration("openWB/optional/int_display/theme",s))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),i(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[7]||(e[7]=s=>t.$emit("reset")),onDefaults:e[8]||(e[8]=s=>t.$emit("defaults"))})])])}const ne=_(G,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DisplayConfiguration.vue"]]),le=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"}));export{L as D,le as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/displayTheme-Ci9Iypgk.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-MVrRMMo2.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/displayTheme-8rnKVIQ-.js"])))=>i.map(i=>d[i]); +import{_ as B,C}from"./index-MVrRMMo2.js";import{_ as $}from"./dynamic-import-helper-BheWnx7M.js";import{F as z,l as S,ac as O,ad as V,ae as q,af as E}from"./vendor-fortawesome-CBc-2W7w.js";import{_,l as p,k as r,e as d,y as f,q as a,A as n,J as m,m as i,x as o,a1 as M,a2 as P,K as A,u as c}from"./vendor-Bo8v-nQD.js";const j={props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},L=_(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/DisplayThemeConfigMixin.vue"]]),N={name:"DisplayThemeFallback",mixins:[L]},F={class:"display-theme-fallback"},I={key:1};function U(t,e,l,w,v,b){const u=p("openwb-base-alert"),y=p("openwb-base-textarea");return r(),d("div",F,[Object.keys(t.displayTheme.configuration).length==0?(r(),f(u,{key:0,subtype:"info"},{default:a(()=>[n(' Das Display-Theme "'+m(t.displayTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),d("div",I,[i(u,{subtype:"warning"},{default:a(()=>[n(' Es wurde keine Konfigurationsseite für das Display-Theme "'+m(t.displayTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),i(y,{title:"Konfiguration",subtype:"json","model-value":t.displayTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=g=>t.updateConfiguration(g,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[n(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),i(u,{subtype:"info"},{default:a(()=>[o("pre",null,m(JSON.stringify(t.displayTheme.configuration,void 0,2)),1)]),_:1})]))])}const x=_(N,[["render",U],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeFallback.vue"]]);S.add(O,V,q,E);const J={name:"OpenwbDisplayThemeProxy",components:{FontAwesomeIcon:z},props:{displayTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getDisplayThemeComponent(){return console.debug(`loading display theme: ${this.displayTheme.type}`),M({loader:()=>$(Object.assign({"./cards/displayTheme.vue":()=>B(()=>import("./displayTheme-Ci9Iypgk.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./colors/displayTheme.vue":()=>B(()=>import("./displayTheme-8rnKVIQ-.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10]))}),`./${this.displayTheme.type}/displayTheme.vue`,3),errorComponent:x})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function R(t,e,l,w,v,b){const u=p("font-awesome-icon"),y=p("openwb-base-alert"),g=p("openwb-base-heading");return r(),d(A,null,[l.displayTheme.official?(r(),f(y,{key:0,subtype:"success"},{default:a(()=>[i(u,{icon:["fas","certificate"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(y,{key:1,subtype:"info"},{default:a(()=>[i(u,{icon:["fas","people-group"]}),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),i(y,{subtype:l.displayTheme.userManagementSupported?"success":"warning"},{default:a(()=>[i(u,{icon:["fas",l.displayTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),n(' Das ausgewählte Display Theme "'+m(l.displayTheme.name)+'" unterstützt die Benutzerverwaltung'+m(l.displayTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),i(g,null,{default:a(()=>[n(' Einstellungen für Display Theme "'+m(l.displayTheme.name)+'" ',1)]),_:1}),(r(),f(P(b.getDisplayThemeComponent()),{"display-theme":l.displayTheme,"onUpdate:configuration":e[0]||(e[0]=h=>b.updateConfiguration(h))},null,40,["display-theme"]))],64)}const H=_(J,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/OpenwbDisplayThemeProxy.vue"]]),G={name:"OpenwbOptionalComponentsView",components:{OpenwbDisplayThemeProxy:H},mixins:[C],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/int_display/active",writeable:!0},{topic:"openWB/optional/int_display/on_if_plugged_in",writeable:!0},{topic:"openWB/optional/int_display/only_local_charge_points",writeable:!0},{topic:"openWB/optional/int_display/rotation",writeable:!0},{topic:"openWB/optional/int_display/standby",writeable:!0},{topic:"openWB/optional/int_display/theme",writeable:!0},{topic:"openWB/system/configurable/display_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{displayThemeList(){return this.$store.state.mqtt["openWB/system/configurable/display_themes"]},displayThemeGroupList(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.displayThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},methods:{getDisplayThemeDefaults(t){const e=this.displayThemeList.find(l=>l.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for display theme type!",t),{})},updateSelectedDisplayTheme(t){this.updateState("openWB/optional/int_display/theme",this.getDisplayThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},K={class:"optionalComponents"},Z={name:"optionalComponentsForm"},Q={key:0},X={key:1},Y={key:2},ee={key:0};function te(t,e,l,w,v,b){const u=p("openwb-base-button-group-input"),y=p("openwb-base-heading"),g=p("openwb-base-range-input"),h=p("openwb-base-alert"),D=p("openwb-base-select-input"),T=p("openwb-display-theme-proxy"),W=p("openwb-base-card"),k=p("openwb-base-submit-buttons");return r(),d("div",K,[o("form",Z,[i(W,{title:"Display (intern oder extern)"},{default:a(()=>[i(u,{title:"Integriertes Display","model-value":t.$store.state.mqtt["openWB/optional/int_display/active"],buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateState("openWB/optional/int_display/active",s))},{help:a(()=>[...e[9]||(e[9]=[n(' Je nach Bestellung kann die openWB mit oder ohne Display geliefert worden sein. Auch die Variante "Standalone" bietet beide Optionen. Bitte prüfe zuerst die Hardwareausstattung deiner openWB (z.B. Lieferschein). ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/optional/int_display/active"]==!0?(r(),d("div",Q,[i(u,{title:"Orientierung","model-value":t.$store.state.mqtt["openWB/optional/int_display/rotation"],buttons:[{buttonValue:0,text:"0°"},{buttonValue:90,text:"90°"},{buttonValue:180,text:"180°"},{buttonValue:270,text:"270°"}],"onUpdate:modelValue":e[1]||(e[1]=s=>t.updateState("openWB/optional/int_display/rotation",s))},{help:a(()=>[...e[10]||(e[10]=[n(" Mit dieser Einstellung kann das Display im Uhrzeigersinn gedreht werden, falls erforderlich. Nach einer Änderung ist ein Neustart erforderlich!",-1),o("br",null,null,-1),n(" Diese Einstellung erfordert ein Raspberry Pi Display. Für eine openWB series2 mit integriertem Display muss 0° ausgewählt werden, für eine Standalone mit Display 180°. Anzeigen, welche über HDMI angeschlossen sind, werden nicht unterstützt. ",-1)])]),_:1},8,["model-value"]),e[13]||(e[13]=o("hr",null,null,-1)),i(y,null,{default:a(()=>[...e[11]||(e[11]=[n(" Display Standby ",-1)])]),_:1}),i(g,{title:"Ausschaltzeit",min:0,max:12,step:1,"model-value":t.$store.state.mqtt["openWB/optional/int_display/standby"],unit:"Sek",labels:[{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:30,value:30},{label:45,value:45},{label:"1 Min",value:60},{label:"1,5 Min",value:90},{label:"2 Min",value:120},{label:"3 Min",value:180},{label:"4 Min",value:240},{label:"5 Min",value:300},{label:"10 Min",value:600},{label:"Immer an",value:0}],"onUpdate:modelValue":e[2]||(e[2]=s=>t.updateState("openWB/optional/int_display/standby",s))},{help:a(()=>[...e[12]||(e[12]=[n(" Hier kann eine Zeitspanne angegeben werden, nach der das Display ausgeschaltet wird. ",-1)])]),_:1},8,["model-value"])])):c("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),d("div",X,[e[15]||(e[15]=o("hr",null,null,-1)),i(h,{subtype:"info"},{default:a(()=>[...e[14]||(e[14]=[n(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),d("div",Y,[e[19]||(e[19]=o("hr",null,null,-1)),i(u,{title:"Ladepunkte auf secondary openWB","model-value":t.$store.state.mqtt["openWB/optional/int_display/only_local_charge_points"],buttons:[{buttonValue:!1,text:"Alle",class:"btn-outline-danger"},{buttonValue:!0,text:"Nur Lokale",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=s=>t.updateState("openWB/optional/int_display/only_local_charge_points",s))},{help:a(()=>[...e[16]||(e[16]=[n(" Hiermit kann festgelegt werden, ob an angebundenen secondary openWB alle oder nur die jeweils lokalen Ladepunkte angezeigt werden sollen. ",-1)])]),_:1},8,["model-value"]),i(h,{subtype:"info",class:"mb-3"},{default:a(()=>[...e[17]||(e[17]=[o("p",null,[n(" Wenn die "),o("strong",null,"Benutzerverwaltung"),n(" aktiviert ist, werden nur die Ladepunkte angezeigt, für welche dem jeweiligen Display-Benutzer auch Zugriffsrechte gegeben wurden. Ebenfalls ist es möglich, dass bestimmte Daten von Wechselrichtern, Fahrzeugen, etc. nicht angezeigt werden, wenn der Benutzer hierfür keine Berechtigung besitzt. ")],-1),o("p",null,' Bei aktivierter Benutzerverwaltung wird empfohlen, die Anzeige auf "Alle" Ladepunkte zu setzen, damit es nicht zu Überschneidungen zwischen diesen Einschränkungen kommt. ',-1),o("p",null,[n(" Das "),o("strong",null,"integrierte Display"),n(' einer openWB series2 oder standalone verwendet automatisch den Benutzer "Display-Intern". Für '),o("strong",null,"externe openWB"),n(' im Steuerungsmodus "secondary" werden automatisch Benutzer mit dem Namen "Display-'),o("i",null,"IP"),n('", wobei '),o("i",null,"IP"),n(" für die jeweilige IP-Adresse der secondary openWB steht, angelegt. ")],-1)])]),_:1}),e[20]||(e[20]=o("hr",null,null,-1)),t.$store.state.mqtt["openWB/optional/int_display/theme"]!==void 0?(r(),d("div",ee,[i(D,{class:"mb-2",title:"Theme des Displays",groups:b.displayThemeGroupList,"model-value":t.$store.state.mqtt["openWB/optional/int_display/theme"].type,"onUpdate:modelValue":e[4]||(e[4]=s=>b.updateSelectedDisplayTheme(s))},{help:a(()=>[...e[18]||(e[18]=[n(" Hier können unterschiedliche Display-Anzeigen, s.g. Themes, ausgewählt werden. Die Anzahl der Themes wird sich mit zukünftigen Releases erhöhen. ",-1)])]),_:1},8,["groups","model-value"]),t.$store.state.mqtt["openWB/optional/int_display/theme"].type?(r(),f(T,{key:0,"display-theme":t.$store.state.mqtt["openWB/optional/int_display/theme"],"onUpdate:configuration":e[5]||(e[5]=s=>b.updateConfiguration("openWB/optional/int_display/theme",s))},null,8,["display-theme"])):c("",!0)])):c("",!0)]))]),_:1}),i(k,{"form-name":"optionalComponentsForm",onSave:e[6]||(e[6]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[7]||(e[7]=s=>t.$emit("reset")),onDefaults:e[8]||(e[8]=s=>t.$emit("defaults"))})])])}const ne=_(G,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/DisplayConfiguration.vue"]]),le=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"}));export{L as D,le as a}; diff --git a/web/settings/assets/GeneralChargeConfiguration-kMS02s2g.js b/web/settings/assets/GeneralChargeConfiguration-BMEAxDhB.js similarity index 93% rename from web/settings/assets/GeneralChargeConfiguration-kMS02s2g.js rename to web/settings/assets/GeneralChargeConfiguration-BMEAxDhB.js index c5c4d72c05..1b827916f8 100644 --- a/web/settings/assets/GeneralChargeConfiguration-kMS02s2g.js +++ b/web/settings/assets/GeneralChargeConfiguration-BMEAxDhB.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/flexible_tariff-DAlfbB0X.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-D_eD74fL.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/flexible_tariff-B5Q9TiRz.js","assets/flexible_tariff-DDPKc8IS.js","assets/flexible_tariff-Cm72-IRP.js","assets/flexible_tariff-gwuyMP87.css","assets/flexible_tariff-DNlNO1mw.js","assets/flexible_tariff-D1CoTmby.js","assets/flexible_tariff-Cwtdxcdq.js","assets/flexible_tariff-DUAjEH5H.js","assets/flexible_tariff-DJxxQB8n.js","assets/flexible_tariff-BsviT0dT.js","assets/flexible_tariff-CiZLGcR6.js","assets/grid_fee-vdJ6pKGQ.js","assets/grid_fee-Cs94pth1.css"])))=>i.map(i=>d[i]); -import{_ as b,C as L}from"./index-D_eD74fL.js";import{_ as F}from"./dynamic-import-helper-BheWnx7M.js";import{F as C,l as P,ac as S,ad as $}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as w,l,k as a,e as p,y as _,q as i,A as o,J as m,m as n,x as u,a1 as O,a2 as T,K as z,u as y}from"./vendor-Bo8v-nQD.js";const A={props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},N=w(A,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/FlexibleTariffConfigMixin.vue"]]),G={name:"FlexibleTariffConfigFallback",mixins:[N]},U={class:"flexible-tariff-fallback"},I={key:1};function R(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",U,[Object.keys(t.flexibleTariff.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.flexibleTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",I,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.flexibleTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.flexibleTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.flexibleTariff.configuration,void 0,2)),1)]),_:1})]))])}const j=w(G,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffConfigFallback.vue"]]);P.add(S,$);const M={name:"OpenwbFlexibleTariffProxy",components:{FontAwesomeIcon:C},props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading flexible tariff: ${this.flexibleTariff.type}`),O({loader:()=>F(Object.assign({"./awattar/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DAlfbB0X.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./ekz/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-B5Q9TiRz.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./energycharts/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DDPKc8IS.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./fixed_hours/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Cm72-IRP.js"),__vite__mapDeps([13,1,2,4,3,5,6,7,8,9,10,14])),"./groupe_e/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DNlNO1mw.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./octopusenergy/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-D1CoTmby.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./ostrom/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Cwtdxcdq.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./rabot/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DUAjEH5H.js"),__vite__mapDeps([18,8,1,2,3,4,5,6,7,9,10])),"./tibber/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DJxxQB8n.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./voltego/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-BsviT0dT.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./westfalen_wind/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CiZLGcR6.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10]))}),`./${this.flexibleTariff.type}/flexible_tariff.vue`,3),errorComponent:j})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Z(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.flexibleTariff.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.flexibleTariff.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"flexible-tariff":d.flexibleTariff,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["flexible-tariff"]))],64)}const K=w(M,[["render",Z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffProxy.vue"]]),J={props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},H=w(J,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/GridFeeConfigMixin.vue"]]),Q={name:"GridFeeConfigFallback",mixins:[H]},X={class:"grid-fee-fallback"},Y={key:1};function ee(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",X,[Object.keys(t.gridFee.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.gridFee.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",Y,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.gridFee.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.gridFee.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.gridFee.configuration,void 0,2)),1)]),_:1})]))])}const te=w(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeConfigFallback.vue"]]);P.add(S,$);const ne={name:"OpenwbGridFeeProxy",components:{FontAwesomeIcon:C},props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading grid fee: ${this.gridFee.type}`),O({loader:()=>F(Object.assign({"./fixed_hours/grid_fee.vue":()=>b(()=>import("./grid_fee-vdJ6pKGQ.js"),__vite__mapDeps([22,1,2,4,3,5,6,7,8,9,10,23]))}),`./${this.gridFee.type}/grid_fee.vue`,3),errorComponent:te})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ie(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.gridFee.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.gridFee.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"grid-fee":d.gridFee,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["grid-fee"]))],64)}const oe=w(ne,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeProxy.vue"]]),re={name:"OpenwbGeneralChargeConfigView",components:{OpenwbFlexibleTariffProxy:K,OpenwbGridFeeProxy:oe},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/chargemode_config/unbalanced_load",writeable:!0},{topic:"openWB/general/chargemode_config/unbalanced_load_limit",writeable:!0},{topic:"openWB/general/prices/bat",writeable:!0},{topic:"openWB/general/prices/grid",writeable:!0},{topic:"openWB/general/prices/pv",writeable:!0},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!0},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!0},{topic:"openWB/optional/ocpp/config",writeable:!0},{topic:"openWB/system/configurable/flexible_tariffs",writeable:!1},{topic:"openWB/system/configurable/grid_fees",writeable:!1}]}},computed:{flexibleTariffList(){return this.$store.state.mqtt["openWB/system/configurable/flexible_tariffs"]},gridFeeList(){return this.$store.state.mqtt["openWB/system/configurable/grid_fees"]}},methods:{getFlexibleTariffDefaultConfiguration(t){const e=this.flexibleTariffList.find(d=>d.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedFlexibleTariff(t){this.updateState("openWB/optional/ep/flexible_tariff/provider",t,"type"),this.updateState("openWB/optional/ep/flexible_tariff/provider",this.getFlexibleTariffDefaultConfiguration(t))},getGridFeeDefaultConfiguration(t){const e=this.gridFeeList.find(d=>d.value==t);return e&&Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for grid fee type!",t),{})},updateSelectedGridFee(t){this.updateState("openWB/optional/ep/grid_fee/provider",t,"type"),this.updateState("openWB/optional/ep/grid_fee/provider",this.getGridFeeDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalChargeConfig"},le={name:"generalChargeConfigForm"},se={key:0},de={key:1},ue={key:0},pe={key:1},fe={key:1},ge={key:2},be={key:0},me={key:1},_e={key:0};function ce(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-button-group-input"),c=l("openwb-base-range-input"),v=l("openwb-base-card"),B=l("openwb-base-heading"),W=l("openwb-base-number-input"),x=l("openwb-base-select-input"),E=l("openwb-flexible-tariff-proxy"),D=l("openwb-grid-fee-proxy"),V=l("openwb-base-text-input"),q=l("openwb-base-submit-buttons");return a(),p("div",ae,[u("form",le,[n(v,{title:"Allgemein"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",se,[n(s,{subtype:"info"},{default:i(()=>[...e[15]||(e[15]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",de,[n(g,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load",r))},{help:i(()=>[...e[16]||(e[16]=[o(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),u("br",null,null,-1),o(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),_(c,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",r))},{help:i(()=>[...e[17]||(e[17]=[o(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])]),_:1},8,["model-value"])):y("",!0)]))]),_:1}),n(v,{title:"Energiekosten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",ue,[n(s,{subtype:"info"},{default:i(()=>[...e[18]||(e[18]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",pe,[n(B,{class:"mt-0"},{help:i(()=>[...e[19]||(e[19]=[o(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),u("br",null,null,-1),o(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])]),default:i(()=>[e[20]||(e[20]=o(" Berechnung der Ladekosten ",-1))]),_:1}),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[...e[21]||(e[21]=[o(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])]),_:1})):y("",!0),n(W,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/general/prices/grid",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateState("openWB/general/prices/bat",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateState("openWB/general/prices/pv",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),e[26]||(e[26]=u("hr",null,null,-1)),n(B,null,{default:i(()=>[...e[22]||(e[22]=[o(" Variable Strompreise ",-1)])]),_:1}),n(s,{subtype:"info"},{default:i(()=>[...e[23]||(e[23]=[u("p",null,' Ist in den Lademodi Eco und Zeitladen "Preisbasiertes Laden" gewählt, wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Zeiten geladen. ',-1),u("p",null,' Wenn keine Preise abgefragt werden können oder "Preisbasiertes Laden" abgewählt wurde, wird in Modus Eco immer geladen bzw. bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ',-1),u("p",null," Wenn sowohl dynamische Stromtarife als auch Netzentgelte konfiguriert sind, werden beide zum Gesamt-Strompreis verrechnet. Dabei wird angenommen, dass der Standardpreis der Netzentgelte in dem Stromtarif enthalten ist. Dementsprechend wird die Differenz zwischen dem Standardpreis der Netzentgelte und den aktuellen Netzentgelten zum Strompreis addiert, um den Gesamt-Strompreis zu ermitteln. ",-1),u("p",null,"Beispiel:",-1),u("ul",null,[u("li",null,"Standardpreis der Netzentgelte: 10 ct/kWh"),u("li",null,"Aktueller Preis der Netzentgelte: 5 ct/kWh"),u("li",null,"Strompreis: 20 ct/kWh"),u("li",null,"Gesamt-Strompreis: 20 + (5 - 10) = 15 ct/kWh")],-1)])]),_:1}),n(B,null,{default:i(()=>[...e[24]||(e[24]=[o(" Dynamische Stromtarife ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.flexibleTariffList,"model-value":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type:"","onUpdate:modelValue":e[5]||(e[5]=r=>f.updateSelectedFlexibleTariff(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),p("div",fe,[n(E,{"flexible-tariff":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"],"onUpdate:configuration":e[6]||(e[6]=r=>f.updateConfiguration("openWB/optional/ep/flexible_tariff/provider",r))},null,8,["flexible-tariff"])])):y("",!0),n(B,null,{default:i(()=>[...e[25]||(e[25]=[o(" Dynamische Netzentgelte ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.gridFeeList,"model-value":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=r=>f.updateSelectedGridFee(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]&&t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type?(a(),p("div",ge,[n(D,{"grid-fee":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"],"onUpdate:configuration":e[8]||(e[8]=r=>f.updateConfiguration("openWB/optional/ep/grid_fee/provider",r))},null,8,["grid-fee"])])):y("",!0)]))]),_:1}),n(v,{title:"OCPP Anbindung"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",be,[n(s,{subtype:"info"},{default:i(()=>[...e[27]||(e[27]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",me,[n(g,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active,"onUpdate:modelValue":e[9]||(e[9]=r=>t.updateState("openWB/optional/ocpp/config",r,"active"))},null,8,["model-value"]),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(a(),p("div",_e,[n(s,{subtype:"info"},{default:i(()=>[...e[28]||(e[28]=[o(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens sowie alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),u("br",null,null,-1),o(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB unter Einstellungen -> Konfiguration im zugehörigen -> Ladepunkt eingetragen werden. ",-1)])]),_:1}),n(V,{title:"URL des OCPP-Backends",subtype:"url","model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.url,"onUpdate:modelValue":e[10]||(e[10]=r=>t.updateState("openWB/optional/ocpp/config",r,"url"))},null,8,["model-value"]),n(x,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.version,"onUpdate:modelValue":e[11]||(e[11]=r=>t.updateState("openWB/optional/ocpp/config",r,"version"))},null,8,["model-value"])])):y("",!0)]))]),_:1}),n(q,{"form-name":"generalChargeConfigForm",onSave:e[12]||(e[12]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[13]||(e[13]=r=>t.$emit("reset")),onDefaults:e[14]||(e[14]=r=>t.$emit("defaults"))})])])}const ve=w(re,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfiguration.vue"]]),Be=Object.freeze(Object.defineProperty({__proto__:null,default:ve},Symbol.toStringTag,{value:"Module"}));export{N as F,H as G,Be as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/flexible_tariff-DRHxWWnZ.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/index-MVrRMMo2.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/flexible_tariff-D0DTSvQT.js","assets/flexible_tariff-C7Zs9PG4.js","assets/flexible_tariff-B5DgZTcN.js","assets/flexible_tariff-gwuyMP87.css","assets/flexible_tariff-CZz477CJ.js","assets/flexible_tariff-SnZ0ndPZ.js","assets/flexible_tariff-CToQtY_I.js","assets/flexible_tariff-Df7JtFhH.js","assets/flexible_tariff-Cf2nnN_M.js","assets/flexible_tariff-Cbf1PwIN.js","assets/flexible_tariff-BxUfQCPe.js","assets/grid_fee-CGe3xbmI.js","assets/grid_fee-Cs94pth1.css"])))=>i.map(i=>d[i]); +import{_ as b,C as L}from"./index-MVrRMMo2.js";import{_ as F}from"./dynamic-import-helper-BheWnx7M.js";import{F as C,l as P,ac as S,ad as $}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as w,l,k as a,e as p,y as _,q as i,A as o,J as m,m as n,x as u,a1 as O,a2 as T,K as z,u as y}from"./vendor-Bo8v-nQD.js";const A={props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},N=w(A,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/FlexibleTariffConfigMixin.vue"]]),G={name:"FlexibleTariffConfigFallback",mixins:[N]},U={class:"flexible-tariff-fallback"},I={key:1};function R(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",U,[Object.keys(t.flexibleTariff.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.flexibleTariff.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",I,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.flexibleTariff.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.flexibleTariff.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.flexibleTariff.configuration,void 0,2)),1)]),_:1})]))])}const j=w(G,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffConfigFallback.vue"]]);P.add(S,$);const M={name:"OpenwbFlexibleTariffProxy",components:{FontAwesomeIcon:C},props:{flexibleTariff:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading flexible tariff: ${this.flexibleTariff.type}`),O({loader:()=>F(Object.assign({"./awattar/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-DRHxWWnZ.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./ekz/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-D0DTSvQT.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./energycharts/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-C7Zs9PG4.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./fixed_hours/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-B5DgZTcN.js"),__vite__mapDeps([13,1,2,4,3,5,6,7,8,9,10,14])),"./groupe_e/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CZz477CJ.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./octopusenergy/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-SnZ0ndPZ.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./ostrom/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-CToQtY_I.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./rabot/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Df7JtFhH.js"),__vite__mapDeps([18,8,1,2,3,4,5,6,7,9,10])),"./tibber/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Cf2nnN_M.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./voltego/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-Cbf1PwIN.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./westfalen_wind/flexible_tariff.vue":()=>b(()=>import("./flexible_tariff-BxUfQCPe.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10]))}),`./${this.flexibleTariff.type}/flexible_tariff.vue`,3),errorComponent:j})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function Z(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.flexibleTariff.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.flexibleTariff.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.flexibleTariff.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"flexible-tariff":d.flexibleTariff,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["flexible-tariff"]))],64)}const K=w(M,[["render",Z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/OpenwbFlexibleTariffProxy.vue"]]),J={props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},H=w(J,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/GridFeeConfigMixin.vue"]]),Q={name:"GridFeeConfigFallback",mixins:[H]},X={class:"grid-fee-fallback"},Y={key:1};function ee(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-textarea");return a(),p("div",X,[Object.keys(t.gridFee.configuration).length==0?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[o(' Der Anbieter "'+m(t.gridFee.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(a(),p("div",Y,[n(s,{subtype:"warning"},{default:i(()=>[o(' Es wurde keine Konfigurationsseite für den Anbieter "'+m(t.gridFee.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(g,{title:"Konfiguration",subtype:"json","model-value":t.gridFee.configuration,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[o(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(s,{subtype:"info"},{default:i(()=>[u("pre",null,m(JSON.stringify(t.gridFee.configuration,void 0,2)),1)]),_:1})]))])}const te=w(Q,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeConfigFallback.vue"]]);P.add(S,$);const ne={name:"OpenwbGridFeeProxy",components:{FontAwesomeIcon:C},props:{gridFee:{type:Object,required:!0}},emits:["update:configuration"],methods:{getTariffComponent(){return console.debug(`loading grid fee: ${this.gridFee.type}`),O({loader:()=>F(Object.assign({"./fixed_hours/grid_fee.vue":()=>b(()=>import("./grid_fee-CGe3xbmI.js"),__vite__mapDeps([22,1,2,4,3,5,6,7,8,9,10,23]))}),`./${this.gridFee.type}/grid_fee.vue`,3),errorComponent:te})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ie(t,e,d,h,k,f){const s=l("font-awesome-icon"),g=l("openwb-base-alert"),c=l("openwb-base-heading");return a(),p(z,null,[d.gridFee.official?(a(),_(g,{key:0,subtype:"success"},{default:i(()=>[n(s,{icon:["fas","certificate"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(a(),_(g,{key:1,subtype:"info"},{default:i(()=>[n(s,{icon:["fas","people-group"]}),o(' Das ausgewählte Modul "'+m(d.gridFee.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),n(c,null,{default:i(()=>[o(' Einstellungen für Modul "'+m(d.gridFee.name)+'" ',1)]),_:1}),(a(),_(T(f.getTariffComponent()),{"grid-fee":d.gridFee,"onUpdate:configuration":e[0]||(e[0]=v=>f.updateConfiguration(v))},null,40,["grid-fee"]))],64)}const oe=w(ne,[["render",ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/OpenwbGridFeeProxy.vue"]]),re={name:"OpenwbGeneralChargeConfigView",components:{OpenwbFlexibleTariffProxy:K,OpenwbGridFeeProxy:oe},mixins:[L],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/chargemode_config/unbalanced_load",writeable:!0},{topic:"openWB/general/chargemode_config/unbalanced_load_limit",writeable:!0},{topic:"openWB/general/prices/bat",writeable:!0},{topic:"openWB/general/prices/grid",writeable:!0},{topic:"openWB/general/prices/pv",writeable:!0},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!0},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!0},{topic:"openWB/optional/ocpp/config",writeable:!0},{topic:"openWB/system/configurable/flexible_tariffs",writeable:!1},{topic:"openWB/system/configurable/grid_fees",writeable:!1}]}},computed:{flexibleTariffList(){return this.$store.state.mqtt["openWB/system/configurable/flexible_tariffs"]},gridFeeList(){return this.$store.state.mqtt["openWB/system/configurable/grid_fees"]}},methods:{getFlexibleTariffDefaultConfiguration(t){const e=this.flexibleTariffList.find(d=>d.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for electricity tariff type!",t),{})},updateSelectedFlexibleTariff(t){this.updateState("openWB/optional/ep/flexible_tariff/provider",t,"type"),this.updateState("openWB/optional/ep/flexible_tariff/provider",this.getFlexibleTariffDefaultConfiguration(t))},getGridFeeDefaultConfiguration(t){const e=this.gridFeeList.find(d=>d.value==t);return e&&Object.prototype.hasOwnProperty.call(e,"defaults")?{...e.defaults}:(console.warn("no default configuration found for grid fee type!",t),{})},updateSelectedGridFee(t){this.updateState("openWB/optional/ep/grid_fee/provider",t,"type"),this.updateState("openWB/optional/ep/grid_fee/provider",this.getGridFeeDefaultConfiguration(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalChargeConfig"},le={name:"generalChargeConfigForm"},se={key:0},de={key:1},ue={key:0},pe={key:1},fe={key:1},ge={key:2},be={key:0},me={key:1},_e={key:0};function ce(t,e,d,h,k,f){const s=l("openwb-base-alert"),g=l("openwb-base-button-group-input"),c=l("openwb-base-range-input"),v=l("openwb-base-card"),B=l("openwb-base-heading"),W=l("openwb-base-number-input"),x=l("openwb-base-select-input"),E=l("openwb-flexible-tariff-proxy"),D=l("openwb-grid-fee-proxy"),V=l("openwb-base-text-input"),q=l("openwb-base-submit-buttons");return a(),p("div",ae,[u("form",le,[n(v,{title:"Allgemein"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",se,[n(s,{subtype:"info"},{default:i(()=>[...e[15]||(e[15]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",de,[n(g,{title:"Begrenzung der Schieflast",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"],"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load",r))},{help:i(()=>[...e[16]||(e[16]=[o(" Wenn diese Option aktiviert ist, werden nicht-dreiphasige Ladevorgänge so geregelt, dass am Netzanschlusspunkt (EVU-Zähler) die eingestellte Grenze für die Schieflast nicht überschritten wird. Hierfür muss der EVU-Zähler einzelne Phasenströme bereitstellen!",-1),u("br",null,null,-1),o(' Weiterhin müssen bei den Ladepunkten sowie Fahrzeugen sämtliche Angaben zur Anzahl angeschlossener/unterstützter Phasen und der Phasenrotation hinterlegt werden, damit der Regelung bekannt ist, welcher Ladevorgang welche Phase am Netzanschluss beeinflusst. siehe "Konfiguration - Ladepunkte -> elektrischer Anschluss - Phase 1" und "Konfiguration - Fahrzeuge -> Fahrzeug-Profile" ',-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load"]?(a(),_(c,{key:0,title:"Erlaubte Schieflast",min:10,max:32,step:1,unit:"A","model-value":t.$store.state.mqtt["openWB/general/chargemode_config/unbalanced_load_limit"],"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateState("openWB/general/chargemode_config/unbalanced_load_limit",r))},{help:i(()=>[...e[17]||(e[17]=[o(" Hiermit wird festgelegt, welche Schieflast am Netzanschlusspunkt erlaubt ist. Bei Überschreitung werden gezielt einzelne Ladevorgänge in der Leistung begrenzt. ",-1)])]),_:1},8,["model-value"])):y("",!0)]))]),_:1}),n(v,{title:"Energiekosten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",ue,[n(s,{subtype:"info"},{default:i(()=>[...e[18]||(e[18]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",pe,[n(B,{class:"mt-0"},{help:i(()=>[...e[19]||(e[19]=[o(" Zur Berechnung der Ladekosten im Lade-Protokoll werden stundenweise die Anteile der Stromquellen (Speicher, Netz, PV) berechnet und mit den hier angegebenen Preisen multipliziert.",-1),u("br",null,null,-1),o(" Ist die Abrechnung über das Ladeprotokoll, z.B. mit dem Arbeitgeber, vereinbart, ist bei allen drei Feldern der vereinbarte Preis einzutragen. ",-1)])]),default:i(()=>[e[20]||(e[20]=o(" Berechnung der Ladekosten ",-1))]),_:1}),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),_(s,{key:0,subtype:"info"},{default:i(()=>[...e[21]||(e[21]=[o(" Für den Netzbezug wird der dynamische Strompreis des Anbieters für variable Stromtarife verwendet. Wenn keine dynamischen Strompreise abgefragt werden können, wird der eingetragene Preis für den Netzbezug verwendet. ",-1)])]),_:1})):y("",!0),n(W,{title:"Preis für Netzbezug",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/grid"]*1e5,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateState("openWB/general/prices/grid",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für Speicherentladung",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/bat"]*1e5,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateState("openWB/general/prices/bat",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),n(W,{title:"Preis für PV-Strom",step:.001,precision:3,unit:"ct/kWh",min:0,required:"","model-value":t.$store.state.mqtt["openWB/general/prices/pv"]*1e5,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateState("openWB/general/prices/pv",parseFloat((r/1e5).toFixed(7))))},null,8,["model-value"]),e[26]||(e[26]=u("hr",null,null,-1)),n(B,null,{default:i(()=>[...e[22]||(e[22]=[o(" Variable Strompreise ",-1)])]),_:1}),n(s,{subtype:"info"},{default:i(()=>[...e[23]||(e[23]=[u("p",null,' Ist in den Lademodi Eco und Zeitladen "Preisbasiertes Laden" gewählt, wird nur geladen, wenn der Strompreis unter dem angegebenen maximalen Strompreis liegt. Für Zielladen wird die Ladedauer ermittelt und dann zu den günstigsten Zeiten geladen. ',-1),u("p",null,' Wenn keine Preise abgefragt werden können oder "Preisbasiertes Laden" abgewählt wurde, wird in Modus Eco immer geladen bzw. bei Zielladen zunächst mit PV-Überschuss und zum Erreichen des Zieltermins mit Netzstrom. ',-1),u("p",null," Wenn sowohl dynamische Stromtarife als auch Netzentgelte konfiguriert sind, werden beide zum Gesamt-Strompreis verrechnet. Dabei wird angenommen, dass der Standardpreis der Netzentgelte in dem Stromtarif enthalten ist. Dementsprechend wird die Differenz zwischen dem Standardpreis der Netzentgelte und den aktuellen Netzentgelten zum Strompreis addiert, um den Gesamt-Strompreis zu ermitteln. ",-1),u("p",null,"Beispiel:",-1),u("ul",null,[u("li",null,"Standardpreis der Netzentgelte: 10 ct/kWh"),u("li",null,"Aktueller Preis der Netzentgelte: 5 ct/kWh"),u("li",null,"Strompreis: 20 ct/kWh"),u("li",null,"Gesamt-Strompreis: 20 + (5 - 10) = 15 ct/kWh")],-1)])]),_:1}),n(B,null,{default:i(()=>[...e[24]||(e[24]=[o(" Dynamische Stromtarife ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.flexibleTariffList,"model-value":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type:"","onUpdate:modelValue":e[5]||(e[5]=r=>f.updateSelectedFlexibleTariff(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]&&t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(a(),p("div",fe,[n(E,{"flexible-tariff":t.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"],"onUpdate:configuration":e[6]||(e[6]=r=>f.updateConfiguration("openWB/optional/ep/flexible_tariff/provider",r))},null,8,["flexible-tariff"])])):y("",!0),n(B,null,{default:i(()=>[...e[25]||(e[25]=[o(" Dynamische Netzentgelte ",-1)])]),_:1}),n(x,{class:"mb-2",title:"Anbieter",options:f.gridFeeList,"model-value":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type:"","onUpdate:modelValue":e[7]||(e[7]=r=>f.updateSelectedGridFee(r))},null,8,["options","model-value"]),t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]&&t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"].type?(a(),p("div",ge,[n(D,{"grid-fee":t.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"],"onUpdate:configuration":e[8]||(e[8]=r=>f.updateConfiguration("openWB/optional/ep/grid_fee/provider",r))},null,8,["grid-fee"])])):y("",!0)]))]),_:1}),n(v,{title:"OCPP Anbindung"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(a(),p("div",be,[n(s,{subtype:"info"},{default:i(()=>[...e[27]||(e[27]=[o(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(a(),p("div",me,[n(g,{title:"OCPP aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active,"onUpdate:modelValue":e[9]||(e[9]=r=>t.updateState("openWB/optional/ocpp/config",r,"active"))},null,8,["model-value"]),t.$store.state.mqtt["openWB/optional/ocpp/config"]?.active===!0?(a(),p("div",_e,[n(s,{subtype:"info"},{default:i(()=>[...e[28]||(e[28]=[o(" Die Ladepunkte übermitteln den ID-Tag, Heartbeat und den Zählerstand zum Zeitpunkt des Ansteckens, Absteckens sowie alle 5 Minuten. Eine Steuerung per OCPP ist nicht möglich.",-1),u("br",null,null,-1),o(" Alle Ladepunkte, die ihre Daten an das OCPP-Backend übermitteln sollen, müssen zunächst im OCPP-Backend angelegt werden. Die dort eingetragene Chargebox ID muss in der openWB unter Einstellungen -> Konfiguration im zugehörigen -> Ladepunkt eingetragen werden. ",-1)])]),_:1}),n(V,{title:"URL des OCPP-Backends",subtype:"url","model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.url,"onUpdate:modelValue":e[10]||(e[10]=r=>t.updateState("openWB/optional/ocpp/config",r,"url"))},null,8,["model-value"]),n(x,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"ocpp1.6",text:"OCPP 1.6"},{value:"ocpp2.0.1",text:"OCPP 2.0.1"}],"model-value":t.$store.state.mqtt["openWB/optional/ocpp/config"]?.version,"onUpdate:modelValue":e[11]||(e[11]=r=>t.updateState("openWB/optional/ocpp/config",r,"version"))},null,8,["model-value"])])):y("",!0)]))]),_:1}),n(q,{"form-name":"generalChargeConfigForm",onSave:e[12]||(e[12]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[13]||(e[13]=r=>t.$emit("reset")),onDefaults:e[14]||(e[14]=r=>t.$emit("defaults"))})])])}const ve=w(re,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralChargeConfiguration.vue"]]),Be=Object.freeze(Object.defineProperty({__proto__:null,default:ve},Symbol.toStringTag,{value:"Module"}));export{N as F,H as G,Be as a}; diff --git a/web/settings/assets/GeneralConfiguration-b09cPY_w.js b/web/settings/assets/GeneralConfiguration-d2XsWBRc.js similarity index 97% rename from web/settings/assets/GeneralConfiguration-b09cPY_w.js rename to web/settings/assets/GeneralConfiguration-d2XsWBRc.js index 488c7f4d77..5fb9c7d48b 100644 --- a/web/settings/assets/GeneralConfiguration-b09cPY_w.js +++ b/web/settings/assets/GeneralConfiguration-d2XsWBRc.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/webTheme-BZXitWVh.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/webTheme-CHG5h5Rr.js","assets/OpenwbSortableList-CSUuyi79.js","assets/OpenwbSortableList-C11EhIQj.css","assets/webTheme-CY7Mp7o_.js"])))=>i.map(i=>d[i]); -import{F as S,l as k,ac as z,ad as E,ae as C,af as D,a6 as N,X as A,G as L,ap as U,aq as P,ar as J}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as O}from"./index-D_eD74fL.js";import{S as M}from"./SystemVersion-DQAfG1DR.js";import{_ as R}from"./dynamic-import-helper-BheWnx7M.js";import{_ as v,l as p,k as r,e as m,y as f,q as o,A as s,J as c,m as n,x as d,a1 as F,a2 as x,K as I,u as b}from"./vendor-Bo8v-nQD.js";const j={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},G=v(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),H={name:"WebThemeFallback",mixins:[G]},Z={class:"web-theme-fallback"},K={key:1};function Q(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-textarea");return r(),m("div",Z,[Object.keys(t.webTheme.configuration).length==0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[s(' Das Web Theme "'+c(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),m("div",K,[n(g,{subtype:"warning"},{default:o(()=>[s(' Es wurde keine Konfigurationsseite für das Web Theme "'+c(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[s(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(g,{subtype:"info"},{default:o(()=>[d("pre",null,c(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const X=v(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);k.add(z,E,C,D);const Y={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:S},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),F({loader:()=>R(Object.assign({"./colors/webTheme.vue":()=>B(()=>import("./webTheme-BZXitWVh.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./koala/webTheme.vue":()=>B(()=>import("./webTheme-CHG5h5Rr.js"),__vite__mapDeps([12,13,4,1,2,3,5,6,7,8,9,14,10,11])),"./standard_legacy/webTheme.vue":()=>B(()=>import("./webTheme-CY7Mp7o_.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.webTheme.type}/webTheme.vue`,3),errorComponent:X})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ee(t,e,u,W,V,_){const g=p("font-awesome-icon"),l=p("openwb-base-alert"),h=p("openwb-base-heading");return r(),m(I,null,[u.webTheme.official?(r(),f(l,{key:0,subtype:"success"},{default:o(()=>[n(g,{icon:["fas","certificate"]}),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(l,{key:1,subtype:"info"},{default:o(()=>[n(g,{icon:["fas","people-group"]}),e[1]||(e[1]=s(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1})),n(l,{subtype:u.webTheme.userManagementSupported?"success":"warning"},{default:o(()=>[n(g,{icon:["fas",u.webTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" unterstützt die Benutzerverwaltung'+c(u.webTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),n(h,null,{default:o(()=>[s(' Einstellungen für Web Theme "'+c(u.webTheme.name)+'" ',1)]),_:1}),(r(),f(x(_.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=w=>_.updateConfiguration(w))},null,40,["web-theme"]))],64)}const te=v(Y,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);k.add(N,A,L,U,P,J);const ne={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:te,FontAwesomeIcon:S},mixins:[O,M],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/allow_unencrypted_access",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!0},{topic:"openWB/general/control_interval",writeable:!0},{topic:"openWB/general/extern",writeable:!0},{topic:"openWB/general/grid_protection_configured",writeable:!0},{topic:"openWB/general/http_api",writeable:!0},{topic:"openWB/general/modbus_control",writeable:!0},{topic:"openWB/general/range_unit",writeable:!0},{topic:"openWB/general/temporary_charge_templates_active",writeable:!0},{topic:"openWB/general/web_theme",writeable:!0},{topic:"openWB/system/configurable/web_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.webThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},disableExternModeSwitch(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||this.$store.state.mqtt["openWB/general/allow_unencrypted_access"]===!1}},methods:{getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalConfig"},oe={name:"generalConfigForm"},se={key:1},le={key:1},re={key:2},ie={key:0},ue={key:0},de={key:1},ge={key:0},me={key:1},pe=["href"],be={key:0},fe={key:0},_e={key:1};function ce(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-button-group-input"),h=p("RouterLink"),w=p("openwb-base-card"),y=p("openwb-base-heading"),T=p("openwb-base-select-input"),q=p("openwb-web-theme-proxy"),i=p("font-awesome-icon"),$=p("openwb-base-submit-buttons");return r(),m("div",ae,[d("form",oe,[n(w,{title:"Steuerungsmodus"},{default:o(()=>[n(g,{subtype:"info"},{default:o(()=>[...e[32]||(e[32]=[d("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Diese werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),d("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])]),_:1}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],disabled:_.disableExternModeSwitch,"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateState("openWB/general/extern",a))},null,8,["disabled","model-value"]),_.disableExternModeSwitch?(r(),f(g,{key:0,subtype:"warning"},{default:o(()=>[e[34]||(e[34]=s(" Die Benutzerverwaltung ist aktiviert oder der unverschlüsselte Zugriff ist nicht erlaubt. Um den Steuerungsmodus ändern zu können, muss die Benutzerverwaltung im Bereich ",-1)),n(h,{to:"/System/SecurityConfiguration"},{default:o(()=>[...e[33]||(e[33]=[s("Sicherheit",-1)])]),_:1}),e[35]||(e[35]=s(" zunächst deaktiviert und der unverschlüsselte Zugang erlaubt werden. ",-1))]),_:1})):b("",!0),u.installAssistantActive?b("",!0):(r(),m("div",se,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),f(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateState("openWB/general/modbus_control",a))},{help:o(()=>[...e[36]||(e[36]=[s(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),d("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),s(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])]),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),m("div",le,[n(g,{subtype:"info",class:"mb-2"},{default:o(()=>[...e[37]||(e[37]=[s(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])]),_:1})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),m("div",re,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=a=>t.updateState("openWB/general/http_api",a))},{help:o(()=>[...e[38]||(e[38]=[d("p",null,[s(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),d("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),s(" dokumentiert. ")],-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/system/security/user_management_active"]===!0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[...e[39]||(e[39]=[s(" Die Benutzerverwaltung ist aktiviert. Es muss bei jedem HTTP-API Zugriff ein gültiger Benutzername und Passwort mittels HTTP Basic Auth übermittelt werden. Es wird empfohlen, hierfür einen separaten Benutzer mit eingeschränkten Rechten anzulegen. ",-1)])]),_:1})):b("",!0)]))]),_:1}),u.installAssistantActive?b("",!0):(r(),m("div",ie,[n(w,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ue,[n(g,{subtype:"info"},{default:o(()=>[...e[40]||(e[40]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),m("div",de,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=a=>t.updateState("openWB/general/control_interval",a))},{help:o(()=>[...e[41]||(e[41]=[s(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),d("br",null,null,-1),d("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])]),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=a=>t.updateState("openWB/general/grid_protection_configured",a))},{help:o(()=>[...e[42]||(e[42]=[s(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),d("br",null,null,-1),d("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])]),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),f(w,{key:1,title:"Bedienung & Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ge,[n(g,{subtype:"info"},{default:o(()=>[...e[43]||(e[43]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",me,[n(l,{title:"Temporäre Ladeeinstellungen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/temporary_charge_templates_active"],"onUpdate:modelValue":e[5]||(e[5]=a=>t.updateState("openWB/general/temporary_charge_templates_active",a))},{help:o(()=>[e[45]||(e[45]=d("p",null,[s(' Bei Auswahl "Ja" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB als "temporäre" Eingaben behandelt. Dies erlaubt z.B. das schnelle, temporäre Umschalten des Lademodus oder deren Detaileinstellungen für eine unplanmäßige Ladeanforderung (Bsp. Voreinstellung -> PV-Laden / unplanmäßig -> Sofort-Laden für Laden wegen unplanmäßigen Termins). '),d("br"),s(" Alle Einstellungen, die unter Einstellungen → Konfiguration → Fahrzeuge → Lade-Profil für das jeweilige Fahrzeug konfiguriert sind, gelten als persistent (dauerhaft). Diese werden bei jedem Abstecken des jeweiligen Fahrzeugs neu geladen - sind also Voreinstellungen (default). ")],-1)),e[46]||(e[46]=d("p",null,' Bei Auswahl "Nein" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB direkt als "persistente" (dauerhafte) Eingaben behandelt. ',-1)),d("p",null,[e[44]||(e[44]=s(" Eine ausführliche Erläuterung mit Beispielen findet Ihr im ",-1)),d("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:einstellungen:allgemein#temporaere_ladeeinstellungen`,target:"_blank",rel:"noopener noreferrer"}," openWB-DokuWiki ",8,pe)])]),_:1},8,["model-value"]),n(y,{class:"mt-0"},{default:o(()=>[...e[47]||(e[47]=[s(" Hauptseite ",-1)])]),_:1}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),m("div",be,[n(T,{class:"mb-2",title:"Theme",groups:_.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[6]||(e[6]=a=>_.updateSelectedWebTheme(a))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),f(q,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[7]||(e[7]=a=>_.updateConfiguration("openWB/general/web_theme",a))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),f(w,{key:2,title:"Lade-Protokoll"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",fe,[n(g,{subtype:"info"},{default:o(()=>[...e[48]||(e[48]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",_e,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[8]||(e[8]=a=>t.updateState("openWB/general/range_unit",a))},null,8,["model-value"]),n(y,null,{default:o(()=>[...e[49]||(e[49]=[s(" Auswahl der Datenfelder ",-1)])]),_:1}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_begin,"onUpdate:modelValue":e[9]||(e[9]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_begin"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[50]||(e[50]=s(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_end,"onUpdate:modelValue":e[10]||(e[10]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_end"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[51]||(e[51]=s(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_time_charged,"onUpdate:modelValue":e[11]||(e[11]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_time_charged"))},{title:o(()=>[n(i,{icon:["fas","clock"]}),e[52]||(e[52]=s(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_costs,"onUpdate:modelValue":e[12]||(e[12]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_costs"))},{title:o(()=>[n(i,{icon:["fas","coins"]}),e[53]||(e[53]=s(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_power_source,"onUpdate:modelValue":e[13]||(e[13]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_power_source"))},{title:o(()=>[n(i,{icon:["fas","pie-chart"]}),e[54]||(e[54]=s(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_name,"onUpdate:modelValue":e[14]||(e[14]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_name"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[55]||(e[55]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_chargemode,"onUpdate:modelValue":e[15]||(e[15]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_chargemode"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[56]||(e[56]=s(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_prio,"onUpdate:modelValue":e[16]||(e[16]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_prio"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[57]||(e[57]=s(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_rfid,"onUpdate:modelValue":e[17]||(e[17]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_rfid"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[58]||(e[58]=s(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_odometer,"onUpdate:modelValue":e[18]||(e[18]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_odometer"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[59]||(e[59]=s(" Kilometerstand ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_start,"onUpdate:modelValue":e[19]||(e[19]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_start"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[60]||(e[60]=s(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_end,"onUpdate:modelValue":e[20]||(e[20]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_end"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[61]||(e[61]=s(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_name,"onUpdate:modelValue":e[21]||(e[21]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_name"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[62]||(e[62]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_serial_number,"onUpdate:modelValue":e[22]||(e[22]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_serial_number"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[63]||(e[63]=s(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_imported_since_mode_switch,"onUpdate:modelValue":e[23]||(e[23]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_imported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[64]||(e[64]=s(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_start,"onUpdate:modelValue":e[24]||(e[24]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[65]||(e[65]=s(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_end,"onUpdate:modelValue":e[25]||(e[25]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[66]||(e[66]=s(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_exported_since_mode_switch,"onUpdate:modelValue":e[26]||(e[26]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_exported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[67]||(e[67]=s(" Entladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_start,"onUpdate:modelValue":e[27]||(e[27]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[68]||(e[68]=s(" Zählerstand bei Entladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_end,"onUpdate:modelValue":e[28]||(e[28]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[69]||(e[69]=s(" Zählerstand bei Entladeende ",-1))]),_:1},8,["model-value"])]))]),_:1})),n($,{"form-name":"generalConfigForm",onSave:e[29]||(e[29]=a=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[30]||(e[30]=a=>t.$emit("reset")),onDefaults:e[31]||(e[31]=a=>t.$emit("defaults"))})])])}const we=v(ne,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfiguration.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:we},Symbol.toStringTag,{value:"Module"}));export{we as G,G as W,ye as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/webTheme-Ckx7MxLF.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-MVrRMMo2.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/webTheme-CU5jN01o.js","assets/OpenwbSortableList-B4YWn8p9.js","assets/OpenwbSortableList-C11EhIQj.css","assets/webTheme-C6_Ayx15.js"])))=>i.map(i=>d[i]); +import{F as S,l as k,ac as z,ad as E,ae as C,af as D,a6 as N,X as A,G as L,ap as U,aq as P,ar as J}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,C as O}from"./index-MVrRMMo2.js";import{S as M}from"./SystemVersion-DQAfG1DR.js";import{_ as R}from"./dynamic-import-helper-BheWnx7M.js";import{_ as v,l as p,k as r,e as m,y as f,q as o,A as s,J as c,m as n,x as d,a1 as F,a2 as x,K as I,u as b}from"./vendor-Bo8v-nQD.js";const j={props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},G=v(j,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/WebThemeConfigMixin.vue"]]),H={name:"WebThemeFallback",mixins:[G]},Z={class:"web-theme-fallback"},K={key:1};function Q(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-textarea");return r(),m("div",Z,[Object.keys(t.webTheme.configuration).length==0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[s(' Das Web Theme "'+c(t.webTheme.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(r(),m("div",K,[n(g,{subtype:"warning"},{default:o(()=>[s(' Es wurde keine Konfigurationsseite für das Web Theme "'+c(t.webTheme.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),n(l,{title:"Theme Konfiguration",subtype:"json","model-value":t.webTheme.configuration,"onUpdate:modelValue":e[0]||(e[0]=h=>t.updateConfiguration(h,"configuration"))},{help:o(()=>[...e[1]||(e[1]=[s(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),n(g,{subtype:"info"},{default:o(()=>[d("pre",null,c(JSON.stringify(t.webTheme.configuration,void 0,2)),1)]),_:1})]))])}const X=v(H,[["render",Q],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeFallback.vue"]]);k.add(z,E,C,D);const Y={name:"OpenwbWebThemeProxy",components:{FontAwesomeIcon:S},props:{webTheme:{type:Object,required:!0}},emits:["update:configuration"],methods:{getThemeComponent(){return console.debug(`loading web theme: ${this.webTheme.type}`),F({loader:()=>R(Object.assign({"./colors/webTheme.vue":()=>B(()=>import("./webTheme-Ckx7MxLF.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"./koala/webTheme.vue":()=>B(()=>import("./webTheme-CU5jN01o.js"),__vite__mapDeps([12,13,4,1,2,3,5,6,7,8,9,14,10,11])),"./standard_legacy/webTheme.vue":()=>B(()=>import("./webTheme-C6_Ayx15.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11]))}),`./${this.webTheme.type}/webTheme.vue`,3),errorComponent:X})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function ee(t,e,u,W,V,_){const g=p("font-awesome-icon"),l=p("openwb-base-alert"),h=p("openwb-base-heading");return r(),m(I,null,[u.webTheme.official?(r(),f(l,{key:0,subtype:"success"},{default:o(()=>[n(g,{icon:["fas","certificate"]}),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(r(),f(l,{key:1,subtype:"info"},{default:o(()=>[n(g,{icon:["fas","people-group"]}),e[1]||(e[1]=s(" Das ausgewählte Theme wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ",-1))]),_:1})),n(l,{subtype:u.webTheme.userManagementSupported?"success":"warning"},{default:o(()=>[n(g,{icon:["fas",u.webTheme.userManagementSupported?"user-check":"user-slash"]},null,8,["icon"]),s(' Das ausgewählte Web Theme "'+c(u.webTheme.name)+'" unterstützt die Benutzerverwaltung'+c(u.webTheme.userManagementSupported?"":" nicht")+". ",1)]),_:1},8,["subtype"]),n(h,null,{default:o(()=>[s(' Einstellungen für Web Theme "'+c(u.webTheme.name)+'" ',1)]),_:1}),(r(),f(x(_.getThemeComponent()),{"web-theme":u.webTheme,"onUpdate:configuration":e[0]||(e[0]=w=>_.updateConfiguration(w))},null,40,["web-theme"]))],64)}const te=v(Y,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/OpenwbWebThemeProxy.vue"]]);k.add(N,A,L,U,P,J);const ne={name:"OpenwbGeneralConfigView",components:{OpenwbWebThemeProxy:te,FontAwesomeIcon:S},mixins:[O,M],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/allow_unencrypted_access",writeable:!1},{topic:"openWB/general/charge_log_data_config",writeable:!0},{topic:"openWB/general/control_interval",writeable:!0},{topic:"openWB/general/extern",writeable:!0},{topic:"openWB/general/grid_protection_configured",writeable:!0},{topic:"openWB/general/http_api",writeable:!0},{topic:"openWB/general/modbus_control",writeable:!0},{topic:"openWB/general/range_unit",writeable:!0},{topic:"openWB/general/temporary_charge_templates_active",writeable:!0},{topic:"openWB/general/web_theme",writeable:!0},{topic:"openWB/system/configurable/web_themes",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1}]}},computed:{webThemeList:{get(){return this.$store.state.mqtt["openWB/system/configurable/web_themes"]}},webThemeGroupList:{get(){let t=[{label:"openWB",options:[]},{label:"Community",options:[]}];return this.webThemeList?.forEach(e=>{e.defaults.userManagementSupported!==!0&&this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||(e.official===!0?t[0].options.push(e):t[1].options.push(e))}),t.filter(e=>e.options.length>0)}},disableExternModeSwitch(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0||this.$store.state.mqtt["openWB/general/allow_unencrypted_access"]===!1}},methods:{getWebThemeDefaults(t){const e=this.webThemeList.find(u=>u.value==t);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for web theme type!",t),{})},updateSelectedWebTheme(t){this.updateState("openWB/general/web_theme",this.getWebThemeDefaults(t))},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},ae={class:"generalConfig"},oe={name:"generalConfigForm"},se={key:1},le={key:1},re={key:2},ie={key:0},ue={key:0},de={key:1},ge={key:0},me={key:1},pe=["href"],be={key:0},fe={key:0},_e={key:1};function ce(t,e,u,W,V,_){const g=p("openwb-base-alert"),l=p("openwb-base-button-group-input"),h=p("RouterLink"),w=p("openwb-base-card"),y=p("openwb-base-heading"),T=p("openwb-base-select-input"),q=p("openwb-web-theme-proxy"),i=p("font-awesome-icon"),$=p("openwb-base-submit-buttons");return r(),m("div",ae,[d("form",oe,[n(w,{title:"Steuerungsmodus"},{default:o(()=>[n(g,{subtype:"info"},{default:o(()=>[...e[32]||(e[32]=[d("p",null,' Wird für den Steuerungsmodus "primary" gewählt, übernimmt diese openWB die alleinige Regelung und steuert ggf. vorhandene weitere openWB (z.B. secondary openWB, openWB Pro, Satellit u.a.) fern. Diese werden in den Ladepunkt-Einstellungen der primary-openWB hinzugefügt. ',-1),d("p",null,' Wird für den Steuerungsmodus "secondary" gewählt, übernimmt diese openWB keine Regelung und muss von einer anderen primary openWB ferngesteuert werden. Wichtig ist, dass in der secondary-openWB eine "interne openWB" mit der korrekten Bauart (= openWB-Hardwarevariante z.B. "Custom, Standard, Standard+, Duo, Buchse") konfiguriert ist. Bei einer Duo sind zwei "interne openWB" zu konfigurieren. Im "secondary"-Modus bleiben alle ausgeblendeten Einstellungen unbeachtet. ',-1)])]),_:1}),n(l,{title:"Steuerungsmodus",buttons:[{buttonValue:!1,text:"primary",class:"btn-outline-danger"},{buttonValue:!0,text:"secondary",class:"btn-outline-success"}],disabled:_.disableExternModeSwitch,"model-value":t.$store.state.mqtt["openWB/general/extern"],"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateState("openWB/general/extern",a))},null,8,["disabled","model-value"]),_.disableExternModeSwitch?(r(),f(g,{key:0,subtype:"warning"},{default:o(()=>[e[34]||(e[34]=s(" Die Benutzerverwaltung ist aktiviert oder der unverschlüsselte Zugriff ist nicht erlaubt. Um den Steuerungsmodus ändern zu können, muss die Benutzerverwaltung im Bereich ",-1)),n(h,{to:"/System/SecurityConfiguration"},{default:o(()=>[...e[33]||(e[33]=[s("Sicherheit",-1)])]),_:1}),e[35]||(e[35]=s(" zunächst deaktiviert und der unverschlüsselte Zugang erlaubt werden. ",-1))]),_:1})):b("",!0),u.installAssistantActive?b("",!0):(r(),m("div",se,[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),f(l,{key:0,title:"Steuerung über Modbus als secondary",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/modbus_control"],"onUpdate:modelValue":e[1]||(e[1]=a=>t.updateState("openWB/general/modbus_control",a))},{help:o(()=>[...e[36]||(e[36]=[s(" Im secondary-Modus kann die openWB über die Modbus-Schnittstelle gesteuert werden. Die Register sind ",-1),d("a",{href:"https://openwb.de/main/wp-content/uploads/2023/10/ModbusTCP-openWB-series2-Pro-1.pdf",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),s(" dokumentiert. Bei aktivierter Modbus-Schnittstelle darf die openWB nicht von einer primary-openWB gesteuert werden. ",-1)])]),_:1},8,["model-value"])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!0&&t.$store.state.mqtt["openWB/general/modbus_control"]!==!0?(r(),m("div",le,[n(g,{subtype:"info",class:"mb-2"},{default:o(()=>[...e[37]||(e[37]=[s(' Wenn die Steuerung über Modbus auf "Aus" geändert wird, muss danach ein Neustart durchgeführt werden! ',-1)])]),_:1})])):b("",!0)])),u.installAssistantActive?b("",!0):(r(),m("div",re,[n(l,{title:"HTTP-API",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/http_api"],"onUpdate:modelValue":e[2]||(e[2]=a=>t.updateState("openWB/general/http_api",a))},{help:o(()=>[...e[38]||(e[38]=[d("p",null,[s(" Mit der HTTP-API kann man den Wert eines MQTT-Topics per HTTPs abfragen oder neu setzen. Die Schnittstelle ist "),d("a",{href:"https://openwb.de/main/wp-content/uploads/2025/02/HTTP-API-fuer-openWB-series1-und-series2.pdf",target:"_blank",rel:"noopener noreferrer"}," hier "),s(" dokumentiert. ")],-1)])]),_:1},8,["model-value"]),t.$store.state.mqtt["openWB/system/security/user_management_active"]===!0?(r(),f(g,{key:0,subtype:"info"},{default:o(()=>[...e[39]||(e[39]=[s(" Die Benutzerverwaltung ist aktiviert. Es muss bei jedem HTTP-API Zugriff ein gültiger Benutzername und Passwort mittels HTTP Basic Auth übermittelt werden. Es wird empfohlen, hierfür einen separaten Benutzer mit eingeschränkten Rechten anzulegen. ",-1)])]),_:1})):b("",!0)]))]),_:1}),u.installAssistantActive?b("",!0):(r(),m("div",ie,[n(w,{title:"Hardware"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ue,[n(g,{subtype:"info"},{default:o(()=>[...e[40]||(e[40]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):b("",!0),t.$store.state.mqtt["openWB/general/extern"]===!1?(r(),m("div",de,[n(l,{title:"Geschwindigkeit Regelintervall",buttons:[{buttonValue:10,text:"Normal",class:"btn-outline-success"},{buttonValue:20,text:"Langsam",class:"btn-outline-warning"},{buttonValue:60,text:"Sehr Langsam",class:"btn-outline-danger"}],"model-value":t.$store.state.mqtt["openWB/general/control_interval"],"onUpdate:modelValue":e[3]||(e[3]=a=>t.updateState("openWB/general/control_interval",a))},{help:o(()=>[...e[41]||(e[41]=[s(' Sollten Probleme oder Fehlermeldungen auftauchen, stelle bitte zunächst das Regelintervall auf "Normal". Werden Module genutzt, welche z.B. eine Online-API zur Abfrage nutzen (höhere Latenzzeiten) oder möchte man weniger Regeleingriffe, so kann man das Regelintervall auf "Langsam" (20 Sekunden) herabsetzen. Die Einstellung „Sehr Langsam“ führt zu einer Regelzeit von 60 Sekunden.',-1),d("br",null,null,-1),d("span",{class:"text-danger"},' Nicht nur die Regelung der PV geführten Ladung, sondern auch die Ladestromänderung, beispielsweise “Stop“ etc., werden dann nur noch in diesem Intervall ausgeführt. Die Regelung wird insgesamt träger. Solange es keinen triftigen Grund gibt, sollte "Normal" gewählt werden. ',-1)])]),_:1},8,["model-value"]),n(l,{title:"Netzschutz",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/grid_protection_configured"],"onUpdate:modelValue":e[4]||(e[4]=a=>t.updateState("openWB/general/grid_protection_configured",a))},{help:o(()=>[...e[42]||(e[42]=[s(' Diese Option ist standardmäßig aktiviert und sollte so belassen werden. Bei Unterschreitung einer kritischen Frequenz des Stromnetzes wird die Ladung nach einer zufälligen Zeit zwischen 1 und 90 Sekunden pausiert. Der Lademodus wechselt auf "Stop". Sobald die Frequenz wieder in einem normalen Bereich ist wird automatisch der zuletzt gewählte Lademodus wieder aktiviert. Ebenso wird die Ladung bei Überschreiten von 51,8 Hz unterbrochen. Dies ist dann der Fall, wenn der Energieversorger Wartungsarbeiten am (Teil-)Netz durchführt und auf einen vorübergehenden Generator-Betrieb umschaltet. Die Erhöhung der Frequenz wird durchgeführt, um die PV Anlagen abzuschalten.',-1),d("br",null,null,-1),d("span",{class:"text-danger"}," Die Option ist nur aktiv, wenn der EVU-Zähler die Frequenz übermittelt. ",-1)])]),_:1},8,["model-value"])])):b("",!0)]),_:1})])),u.installAssistantActive?b("",!0):(r(),f(w,{key:1,title:"Bedienung & Darstellung"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",ge,[n(g,{subtype:"info"},{default:o(()=>[...e[43]||(e[43]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",me,[n(l,{title:"Temporäre Ladeeinstellungen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/temporary_charge_templates_active"],"onUpdate:modelValue":e[5]||(e[5]=a=>t.updateState("openWB/general/temporary_charge_templates_active",a))},{help:o(()=>[e[45]||(e[45]=d("p",null,[s(' Bei Auswahl "Ja" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB als "temporäre" Eingaben behandelt. Dies erlaubt z.B. das schnelle, temporäre Umschalten des Lademodus oder deren Detaileinstellungen für eine unplanmäßige Ladeanforderung (Bsp. Voreinstellung -> PV-Laden / unplanmäßig -> Sofort-Laden für Laden wegen unplanmäßigen Termins). '),d("br"),s(" Alle Einstellungen, die unter Einstellungen → Konfiguration → Fahrzeuge → Lade-Profil für das jeweilige Fahrzeug konfiguriert sind, gelten als persistent (dauerhaft). Diese werden bei jedem Abstecken des jeweiligen Fahrzeugs neu geladen - sind also Voreinstellungen (default). ")],-1)),e[46]||(e[46]=d("p",null,' Bei Auswahl "Nein" werden Änderungen am Ladepunkt über die Hauptseite oder den Touchscreen der openWB direkt als "persistente" (dauerhafte) Eingaben behandelt. ',-1)),d("p",null,[e[44]||(e[44]=s(" Eine ausführliche Erläuterung mit Beispielen findet Ihr im ",-1)),d("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${t.systemVersion}:software:einstell-konfig:einstellungen:allgemein#temporaere_ladeeinstellungen`,target:"_blank",rel:"noopener noreferrer"}," openWB-DokuWiki ",8,pe)])]),_:1},8,["model-value"]),n(y,{class:"mt-0"},{default:o(()=>[...e[47]||(e[47]=[s(" Hauptseite ",-1)])]),_:1}),t.$store.state.mqtt["openWB/general/web_theme"]!==void 0?(r(),m("div",be,[n(T,{class:"mb-2",title:"Theme",groups:_.webThemeGroupList,"model-value":t.$store.state.mqtt["openWB/general/web_theme"].type,"onUpdate:modelValue":e[6]||(e[6]=a=>_.updateSelectedWebTheme(a))},null,8,["groups","model-value"]),t.$store.state.mqtt["openWB/general/web_theme"].type?(r(),f(q,{key:0,"web-theme":t.$store.state.mqtt["openWB/general/web_theme"],"onUpdate:configuration":e[7]||(e[7]=a=>_.updateConfiguration("openWB/general/web_theme",a))},null,8,["web-theme"])):b("",!0)])):b("",!0)]))]),_:1})),u.installAssistantActive?b("",!0):(r(),f(w,{key:2,title:"Lade-Protokoll"},{default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(r(),m("div",fe,[n(g,{subtype:"info"},{default:o(()=>[...e[48]||(e[48]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(r(),m("div",_e,[n(l,{title:"Einheit für Entfernungen","model-value":t.$store.state.mqtt["openWB/general/range_unit"],buttons:[{buttonValue:"km",text:"Kilometer"},{buttonValue:"mi",text:"Meilen"}],"onUpdate:modelValue":e[8]||(e[8]=a=>t.updateState("openWB/general/range_unit",a))},null,8,["model-value"]),n(y,null,{default:o(()=>[...e[49]||(e[49]=[s(" Auswahl der Datenfelder ",-1)])]),_:1}),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_begin,"onUpdate:modelValue":e[9]||(e[9]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_begin"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[50]||(e[50]=s(" Beginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_end,"onUpdate:modelValue":e[10]||(e[10]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_end"))},{title:o(()=>[n(i,{icon:["fas","calendar"]}),e[51]||(e[51]=s(" Ende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.time_time_charged,"onUpdate:modelValue":e[11]||(e[11]=a=>t.updateState("openWB/general/charge_log_data_config",a,"time_time_charged"))},{title:o(()=>[n(i,{icon:["fas","clock"]}),e[52]||(e[52]=s(" Dauer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_costs,"onUpdate:modelValue":e[12]||(e[12]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_costs"))},{title:o(()=>[n(i,{icon:["fas","coins"]}),e[53]||(e[53]=s(" Kosten ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_power_source,"onUpdate:modelValue":e[13]||(e[13]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_power_source"))},{title:o(()=>[n(i,{icon:["fas","pie-chart"]}),e[54]||(e[54]=s(" Energieaufteilung ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_name,"onUpdate:modelValue":e[14]||(e[14]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_name"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[55]||(e[55]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_chargemode,"onUpdate:modelValue":e[15]||(e[15]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_chargemode"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[56]||(e[56]=s(" Lademodus ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_prio,"onUpdate:modelValue":e[16]||(e[16]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_prio"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[57]||(e[57]=s(" Priorität ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_rfid,"onUpdate:modelValue":e[17]||(e[17]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_rfid"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[58]||(e[58]=s(" ID-Tag ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_odometer,"onUpdate:modelValue":e[18]||(e[18]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_odometer"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[59]||(e[59]=s(" Kilometerstand ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_start,"onUpdate:modelValue":e[19]||(e[19]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_start"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[60]||(e[60]=s(" SoC bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.vehicle_soc_at_end,"onUpdate:modelValue":e[20]||(e[20]=a=>t.updateState("openWB/general/charge_log_data_config",a,"vehicle_soc_at_end"))},{title:o(()=>[n(i,{icon:["fas","car"]}),e[61]||(e[61]=s(" SoC bei Ladende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_name,"onUpdate:modelValue":e[21]||(e[21]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_name"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[62]||(e[62]=s(" Name ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_serial_number,"onUpdate:modelValue":e[22]||(e[22]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_serial_number"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[63]||(e[63]=s(" Seriennummer ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_imported_since_mode_switch,"onUpdate:modelValue":e[23]||(e[23]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_imported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[64]||(e[64]=s(" Geladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_start,"onUpdate:modelValue":e[24]||(e[24]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[65]||(e[65]=s(" Zählerstand bei Ladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_imported_at_end,"onUpdate:modelValue":e[25]||(e[25]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_imported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[66]||(e[66]=s(" Zählerstand bei Ladeende ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.data_exported_since_mode_switch,"onUpdate:modelValue":e[26]||(e[26]=a=>t.updateState("openWB/general/charge_log_data_config",a,"data_exported_since_mode_switch"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[67]||(e[67]=s(" Entladene Energie ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_start,"onUpdate:modelValue":e[27]||(e[27]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_start"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[68]||(e[68]=s(" Zählerstand bei Entladebeginn ",-1))]),_:1},8,["model-value"]),n(l,{buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/general/charge_log_data_config"]?.chargepoint_exported_at_end,"onUpdate:modelValue":e[28]||(e[28]=a=>t.updateState("openWB/general/charge_log_data_config",a,"chargepoint_exported_at_end"))},{title:o(()=>[n(i,{icon:["fas","charging-station"]}),e[69]||(e[69]=s(" Zählerstand bei Entladeende ",-1))]),_:1},8,["model-value"])]))]),_:1})),n($,{"form-name":"generalConfigForm",onSave:e[29]||(e[29]=a=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[30]||(e[30]=a=>t.$emit("reset")),onDefaults:e[31]||(e[31]=a=>t.$emit("defaults"))})])])}const we=v(ne,[["render",ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/GeneralConfiguration.vue"]]),ye=Object.freeze(Object.defineProperty({__proto__:null,default:we},Symbol.toStringTag,{value:"Module"}));export{we as G,G as W,ye as a}; diff --git a/web/settings/assets/HardwareInstallation-DrK-NlWu.js b/web/settings/assets/HardwareInstallation-DW5TYu17.js similarity index 53% rename from web/settings/assets/HardwareInstallation-DrK-NlWu.js rename to web/settings/assets/HardwareInstallation-DW5TYu17.js index 7fe048719e..fdcaf0e634 100644 --- a/web/settings/assets/HardwareInstallation-DrK-NlWu.js +++ b/web/settings/assets/HardwareInstallation-DW5TYu17.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/device-I28jsbnC.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/bat-LvnuQvaR.js","assets/device-jAbWqT5Y.js","assets/device-B3JnKzHE.js","assets/counter-CNaWH3hH.js","assets/device-CTvTEy9o.js","assets/device-DteT1ftK.js","assets/device-BJXiIXwb.js","assets/bat-CWWcSN5h.js","assets/device-B--mch3K.js","assets/device-DJRFYW8u.js","assets/inverter-Dt-0cVGJ.js","assets/device-B5V0NVAx.js","assets/counter-C68GXHgb.js","assets/device-D86kZoMv.js","assets/counter-BLEEk5vk.js","assets/device-DgWAC9VW.js","assets/bat-ClqXmjbq.js","assets/counter-CdY4HvNb.js","assets/device-DuOQfDmg.js","assets/inverter-DgFOEAbi.js","assets/counter-DoLu61P3.js","assets/device-MN8XeDgn.js","assets/inverter-D0gOX-_P.js","assets/device-BqKfOrDp.js","assets/device-Ge0sqbOD.js","assets/counter-C7uERgGk.js","assets/device-BcaNUjQJ.js","assets/inverter-ACq6R7xB.js","assets/bat-BFJihL5b.js","assets/device-DsVqYSqX.js","assets/bat-CcOi7qeq.js","assets/counter-BmG9nVGY.js","assets/device-DBsitINB.js","assets/inverter-0RghKIsx.js","assets/bat-DYO-TJpZ.js","assets/counter_sm-CDb5bKKk.js","assets/device-QTYXfo_2.js","assets/inverter_production_meter-Coy7d4cu.js","assets/inverter_secondary-D3yQDLVg.js","assets/bat-C5vCaakP.js","assets/counter-BLIDMuvJ.js","assets/device-C5UrZly-.js","assets/inverter-CbwWOoTg.js","assets/bat-C-8Z5eMd.js","assets/counter-5nvynE8p.js","assets/device-BKXFo9ZM.js","assets/inverter-DJnr53ar.js","assets/bat-BtNiOzPi.js","assets/counter-C7jGbtjK.js","assets/device-CsogXwrs.js","assets/inverter-CTZt8kgW.js","assets/counter-CG8UPJNQ.js","assets/bat-DfC3LldK.js","assets/device-BnxlY63G.js","assets/device-NDckeTVc.js","assets/device-f9fnP_KM.js","assets/device-D89U0LFt.js","assets/bat-Ikmja4Vs.js","assets/counter-PiIXsMjs.js","assets/device-BzBPeuLF.js","assets/inverter-B-NdAxCX.js","assets/device-CFpXw0Yl.js","assets/counter-C5lMgFh-.js","assets/device-D7cbEhiT.js","assets/bat-Cso_FjAB.js","assets/counter-N5EbHNfB.js","assets/device-NkTYsz5d.js","assets/inverter-Ci3SfwIV.js","assets/device-t3OGij3M.js","assets/inverter-hdDYm9Uf.js","assets/counter-CqYIUc0x.js","assets/device-D6aGb8Ub.js","assets/inverter-CbPKaOUd.js","assets/counter-CALcAyno.js","assets/device-jjyvBZq_.js","assets/inverter-AYViTSOI.js","assets/device-Cu_Afhxv.js","assets/bat-BAPssBwn.js","assets/counter-JDvJyDSb.js","assets/device-iH7FSbYH.js","assets/counter-CFHdp5Rg.js","assets/device-B-wUAE96.js","assets/device-3lw2SJGr.js","assets/inverter-DBFgbhVo.js","assets/device-JZQCuW65.js","assets/bat-DM6pfv3v.js","assets/device-BquvfqB_.js","assets/bat-DM7fO5hq.js","assets/counter-B2RD41ZG.js","assets/device-AZcRdq4E.js","assets/inverter-B8AbK5LS.js","assets/device-BIKPUvlF.js","assets/counter-xlfblTPy.js","assets/device-C2Py-T5Y.js","assets/device-DwiBUt_R.js","assets/inverter-CDYkCixE.js","assets/bat-C_Uav9BA.js","assets/bat-BO99Yxvy.js","assets/counter-DbRhyf8N.js","assets/inverter-DMLtmP39.js","assets/bat-BLn3ChiW.js","assets/consumption_counter-s9tb-xVk.js","assets/counter-C9TFKAZS.js","assets/device--YYhIuOQ.js","assets/inverter-D8I4F0kA.js","assets/inverter-9SjCnF3G.js","assets/counter-CBsxLQUz.js","assets/device-uMAcYGWD.js","assets/counter-D_yHfG7M.js","assets/device-B5RB3kWv.js","assets/counter-DqUnAcpd.js","assets/device-CrT-Q_nn.js","assets/inverter-CzPXa6it.js","assets/bat-CrV_lSyl.js","assets/device-CnqEvKdN.js","assets/device-D03RaIUC.js","assets/device-nVYvqlQr.js","assets/counter-CWRQi4AZ.js","assets/device-Djudo4I7.js","assets/device-CUOUt23w.js","assets/device-CT8s8OAc.js","assets/bat-Cjlfvz8n.js","assets/counter-C4Bc-LFa.js","assets/device-DqksrJOB.js","assets/inverter-oQ0jJI7j.js","assets/counter-DlTwNWk_.js","assets/inverter-D8ojL_BV.js","assets/bat-DpnEphe_.js","assets/bat_smart_energy-Czb4GYtP.js","assets/counter-C_KHyjgh.js","assets/device-C7Bv2cYw.js","assets/inverter-DIStW2Xn.js","assets/bat-CjexnhY1.js","assets/device-BwzMCkFy.js","assets/device-BuyzFtIE.js","assets/counter-B08rzQq5.js","assets/device-DriAiQTh.js","assets/inverter-9vdoOv_r.js","assets/device-DrU2EIBQ.js","assets/device-DjFgC3FH.js","assets/bat-g5CpLXKe.js","assets/device-DLe5rJBe.js","assets/inverter-8vpAsJFV.js","assets/counter-C3j9bCHZ.js","assets/device-Bkj5ye31.js","assets/device-DvHqZZk9.js","assets/inverter-DXCXYnzH.js","assets/device-DZbbGgNj.js","assets/device-DW4k7y4-.js","assets/bat-ChvTGfrS.js","assets/counter-D8dbm9sC.js","assets/device-zXBzry27.js","assets/external_inverter-v9N8YFy_.js","assets/inverter-BbajKr0y.js","assets/bat-CA1pDpyc.js","assets/counter_maxstorage-BPEg9Ghm.js","assets/device-Akr-Eknl.js","assets/inverter-D9Thnvbs.js","assets/inverter_maxstorage-DeCO1HV-.js","assets/device-DwFvJqbg.js","assets/bat-DjyCL_fH.js","assets/counter-CDmfO7fm.js","assets/device-ZglIRb13.js","assets/inverter-D8K2CFDi.js","assets/bat-P6JfJZmF.js","assets/counter-BWI3WRrg.js","assets/counter_consumption-DMUt0xYl.js","assets/device-CZhiiWs3.js","assets/bat-CW5lqe8H.js","assets/device-DntiDAu1.js","assets/inverter-ChBLwrbt.js","assets/device-CX454zoq.js","assets/device-D2Tob0bp.js","assets/device-Fu4__SF-.js","assets/device-Cww7LhK6.js","assets/device-fRG5_uqe.js","assets/device-BdzJGZry.js","assets/counter-CAioz9cY.js","assets/device-i-cc32LZ.js","assets/counter-CcBkZQq0.js","assets/device-CkLXsAHJ.js","assets/device-CkVVX1eZ.js","assets/device-ByU2v5ON.js","assets/inverter-YRLdoDau.js","assets/bat-DGxxvF09.js","assets/counter-Bq_4dQ6X.js","assets/device-DiQe2xTf.js","assets/inverter-DSMmU0bk.js","assets/device-BqQNuquo.js","assets/counter-D2NORLkt.js","assets/device-DBTWS1zk.js","assets/inverter-CQscUjQi.js","assets/device-BUqTyqae.js","assets/inverter-BjdsHouB.js"])))=>i.map(i=>d[i]); -import{F as q,l as U,d as S,y as G,as as K,aj as N,a4 as $,a3 as H,a2 as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as e,C as J}from"./index-D_eD74fL.js";import{_ as C}from"./dynamic-import-helper-BheWnx7M.js";import{_ as D,l as p,k as s,e as g,y as E,q as i,A as v,J as O,m as d,x as l,a1 as z,a2 as Z,u as L,K as f,L as k,j as Q}from"./vendor-Bo8v-nQD.js";const X={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},j=D(X,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),Y={name:"DeviceFallback",mixins:[j]},ee={class:"device-fallback"},oe={key:1};function te(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ee,[Object.keys(t.device.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Gerät-Typ "'+O(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",oe,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+O(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=D(Y,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[j],props:{component:{type:Object,required:!0}}},re=D(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ue,[Object.keys(t.component.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Komponenten-Typ "'+O(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",de,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+O(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=D(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){return console.debug(`loading component: ${this.device?.type} / ${this.component?.type}`),this.component!==void 0?z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-I28jsbnC.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/bat.vue":()=>e(()=>import("./bat-LvnuQvaR.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-jAbWqT5Y.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-B3JnKzHE.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/counter.vue":()=>e(()=>import("./counter-CNaWH3hH.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-CTvTEy9o.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DteT1ftK.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-BJXiIXwb.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/bat.vue":()=>e(()=>import("./bat-CWWcSN5h.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-B--mch3K.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-DJRFYW8u.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-Dt-0cVGJ.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-B5V0NVAx.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-C68GXHgb.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-D86kZoMv.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/counter.vue":()=>e(()=>import("./counter-BLEEk5vk.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-DgWAC9VW.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/bat.vue":()=>e(()=>import("./bat-ClqXmjbq.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/counter.vue":()=>e(()=>import("./counter-CdY4HvNb.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-DuOQfDmg.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-DgFOEAbi.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-DoLu61P3.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-MN8XeDgn.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-D0gOX-_P.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-BqKfOrDp.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-Ge0sqbOD.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-C7uERgGk.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-BcaNUjQJ.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-ACq6R7xB.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/bat.vue":()=>e(()=>import("./bat-BFJihL5b.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-DsVqYSqX.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-CcOi7qeq.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-BmG9nVGY.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-DBsitINB.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-0RghKIsx.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-DYO-TJpZ.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-CDb5bKKk.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-QTYXfo_2.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_production_meter.vue":()=>e(()=>import("./inverter_production_meter-Coy7d4cu.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-D3yQDLVg.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10])),"./generic/http/bat.vue":()=>e(()=>import("./bat-C5vCaakP.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10])),"./generic/http/counter.vue":()=>e(()=>import("./counter-BLIDMuvJ.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-C5UrZly-.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-CbwWOoTg.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8,9,10])),"./generic/json/bat.vue":()=>e(()=>import("./bat-C-8Z5eMd.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10])),"./generic/json/counter.vue":()=>e(()=>import("./counter-5nvynE8p.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-BKXFo9ZM.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-DJnr53ar.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-BtNiOzPi.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-C7jGbtjK.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CsogXwrs.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-CTZt8kgW.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8,9,10])),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-CG8UPJNQ.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-DfC3LldK.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-BnxlY63G.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-NDckeTVc.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-f9fnP_KM.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-D89U0LFt.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-Ikmja4Vs.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-PiIXsMjs.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-BzBPeuLF.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-B-NdAxCX.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-CFpXw0Yl.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-C5lMgFh-.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-D7cbEhiT.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/bat.vue":()=>e(()=>import("./bat-Cso_FjAB.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/counter.vue":()=>e(()=>import("./counter-N5EbHNfB.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-NkTYsz5d.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/inverter.vue":()=>e(()=>import("./inverter-Ci3SfwIV.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-t3OGij3M.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-hdDYm9Uf.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-CqYIUc0x.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-D6aGb8Ub.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-CbPKaOUd.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/counter.vue":()=>e(()=>import("./counter-CALcAyno.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-jjyvBZq_.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/inverter.vue":()=>e(()=>import("./inverter-AYViTSOI.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-Cu_Afhxv.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/bat.vue":()=>e(()=>import("./bat-BAPssBwn.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-JDvJyDSb.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-iH7FSbYH.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-CFHdp5Rg.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-B-wUAE96.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-3lw2SJGr.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-DBFgbhVo.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-JZQCuW65.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/bat.vue":()=>e(()=>import("./bat-DM6pfv3v.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-BquvfqB_.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-DM7fO5hq.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-B2RD41ZG.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-AZcRdq4E.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-B8AbK5LS.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-BIKPUvlF.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-xlfblTPy.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-C2Py-T5Y.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DwiBUt_R.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-CDYkCixE.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-C_Uav9BA.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-BO99Yxvy.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-DbRhyf8N.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-DMLtmP39.js"),__vite__mapDeps([110,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-BLn3ChiW.js"),__vite__mapDeps([111,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-s9tb-xVk.js"),__vite__mapDeps([112,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-C9TFKAZS.js"),__vite__mapDeps([113,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device--YYhIuOQ.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-D8I4F0kA.js"),__vite__mapDeps([115,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-9SjCnF3G.js"),__vite__mapDeps([116,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/counter.vue":()=>e(()=>import("./counter-CBsxLQUz.js"),__vite__mapDeps([117,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-uMAcYGWD.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-D_yHfG7M.js"),__vite__mapDeps([119,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-B5RB3kWv.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-DqUnAcpd.js"),__vite__mapDeps([121,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-CrT-Q_nn.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-CzPXa6it.js"),__vite__mapDeps([123,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/bat.vue":()=>e(()=>import("./bat-CrV_lSyl.js"),__vite__mapDeps([124,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-CnqEvKdN.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-D03RaIUC.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-nVYvqlQr.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-CWRQi4AZ.js"),__vite__mapDeps([128,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-Djudo4I7.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-CUOUt23w.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-CT8s8OAc.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-Cjlfvz8n.js"),__vite__mapDeps([132,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-C4Bc-LFa.js"),__vite__mapDeps([133,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-DqksrJOB.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-oQ0jJI7j.js"),__vite__mapDeps([135,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-DlTwNWk_.js"),__vite__mapDeps([136,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-D8ojL_BV.js"),__vite__mapDeps([137,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-DpnEphe_.js"),__vite__mapDeps([138,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-Czb4GYtP.js"),__vite__mapDeps([139,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-C_KHyjgh.js"),__vite__mapDeps([140,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-C7Bv2cYw.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-DIStW2Xn.js"),__vite__mapDeps([142,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-CjexnhY1.js"),__vite__mapDeps([143,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-BwzMCkFy.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-BuyzFtIE.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-B08rzQq5.js"),__vite__mapDeps([146,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-DriAiQTh.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-9vdoOv_r.js"),__vite__mapDeps([148,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-DrU2EIBQ.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-DjFgC3FH.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/bat.vue":()=>e(()=>import("./bat-g5CpLXKe.js"),__vite__mapDeps([151,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-DLe5rJBe.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/inverter.vue":()=>e(()=>import("./inverter-8vpAsJFV.js"),__vite__mapDeps([153,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-C3j9bCHZ.js"),__vite__mapDeps([154,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-Bkj5ye31.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-DvHqZZk9.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-DXCXYnzH.js"),__vite__mapDeps([157,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-DZbbGgNj.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-DW4k7y4-.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-ChvTGfrS.js"),__vite__mapDeps([160,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-D8dbm9sC.js"),__vite__mapDeps([161,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-zXBzry27.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-v9N8YFy_.js"),__vite__mapDeps([163,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-BbajKr0y.js"),__vite__mapDeps([164,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-CA1pDpyc.js"),__vite__mapDeps([165,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/counter_maxstorage.vue":()=>e(()=>import("./counter_maxstorage-BPEg9Ghm.js"),__vite__mapDeps([166,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-Akr-Eknl.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-D9Thnvbs.js"),__vite__mapDeps([168,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter_maxstorage.vue":()=>e(()=>import("./inverter_maxstorage-DeCO1HV-.js"),__vite__mapDeps([169,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DwFvJqbg.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/bat.vue":()=>e(()=>import("./bat-DjyCL_fH.js"),__vite__mapDeps([171,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/counter.vue":()=>e(()=>import("./counter-CDmfO7fm.js"),__vite__mapDeps([172,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-ZglIRb13.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-D8K2CFDi.js"),__vite__mapDeps([174,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-P6JfJZmF.js"),__vite__mapDeps([175,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-BWI3WRrg.js"),__vite__mapDeps([176,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-DMUt0xYl.js"),__vite__mapDeps([177,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-CZhiiWs3.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/bat.vue":()=>e(()=>import("./bat-CW5lqe8H.js"),__vite__mapDeps([179,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-DntiDAu1.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-ChBLwrbt.js"),__vite__mapDeps([181,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-CX454zoq.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-D2Tob0bp.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-Fu4__SF-.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-Cww7LhK6.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-fRG5_uqe.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-BdzJGZry.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-CAioz9cY.js"),__vite__mapDeps([188,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-i-cc32LZ.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-CcBkZQq0.js"),__vite__mapDeps([190,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-CkLXsAHJ.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-CkVVX1eZ.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-ByU2v5ON.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-YRLdoDau.js"),__vite__mapDeps([194,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/bat.vue":()=>e(()=>import("./bat-DGxxvF09.js"),__vite__mapDeps([195,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/counter.vue":()=>e(()=>import("./counter-Bq_4dQ6X.js"),__vite__mapDeps([196,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-DiQe2xTf.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-DSMmU0bk.js"),__vite__mapDeps([198,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-BqQNuquo.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-D2NORLkt.js"),__vite__mapDeps([200,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-DBTWS1zk.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-CQscUjQi.js"),__vite__mapDeps([202,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-BUqTyqae.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-BjdsHouB.js"),__vite__mapDeps([204,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/${this.component?.type}.vue`,4),errorComponent:se}):z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-I28jsbnC.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-jAbWqT5Y.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-B3JnKzHE.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-CTvTEy9o.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DteT1ftK.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-BJXiIXwb.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-B--mch3K.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-DJRFYW8u.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-B5V0NVAx.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-D86kZoMv.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-DgWAC9VW.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-DuOQfDmg.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-MN8XeDgn.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-BqKfOrDp.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-Ge0sqbOD.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-BcaNUjQJ.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-DsVqYSqX.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-DBsitINB.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-QTYXfo_2.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-C5UrZly-.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-BKXFo9ZM.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CsogXwrs.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-BnxlY63G.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-NDckeTVc.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-f9fnP_KM.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-D89U0LFt.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-BzBPeuLF.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-CFpXw0Yl.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-D7cbEhiT.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-NkTYsz5d.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-t3OGij3M.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-D6aGb8Ub.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-jjyvBZq_.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-Cu_Afhxv.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-iH7FSbYH.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-B-wUAE96.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-3lw2SJGr.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-JZQCuW65.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-BquvfqB_.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-AZcRdq4E.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-BIKPUvlF.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-C2Py-T5Y.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-DwiBUt_R.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device--YYhIuOQ.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-uMAcYGWD.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-B5RB3kWv.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-CrT-Q_nn.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-CnqEvKdN.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-D03RaIUC.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-nVYvqlQr.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-Djudo4I7.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-CUOUt23w.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-CT8s8OAc.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-DqksrJOB.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-C7Bv2cYw.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-BwzMCkFy.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-BuyzFtIE.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-DriAiQTh.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-DrU2EIBQ.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-DjFgC3FH.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-DLe5rJBe.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-Bkj5ye31.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-DvHqZZk9.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-DZbbGgNj.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-DW4k7y4-.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-zXBzry27.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-Akr-Eknl.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DwFvJqbg.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-ZglIRb13.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-CZhiiWs3.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-DntiDAu1.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-CX454zoq.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-D2Tob0bp.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-Fu4__SF-.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-Cww7LhK6.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-fRG5_uqe.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-BdzJGZry.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-i-cc32LZ.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-CkLXsAHJ.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-CkVVX1eZ.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-ByU2v5ON.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-DiQe2xTf.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-BqQNuquo.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-DBTWS1zk.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-BUqTyqae.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/device.vue`,4),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,u,m,n,_){return s(),E(Z(_.getComponent()),{device:u.device,component:u.component,"component-id":u.component?u.component.id:void 0,"component-type":u.component?u.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=c=>_.updateConfiguration(c))},null,40,["device","component","component-id","component-type"])}const pe=D(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);U.add(S,G,K,N,$,H,F);const ce={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:q,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/configurable/devices_components",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!0},{topic:"openWB/system/device/+/config",writeable:!0}],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices(){const t=this.getWildcardTopics("openWB/system/device/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},installedComponents(){const t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},vendorList:{get(){const t=this.$store.state.mqtt["openWB/system/configurable/devices_components"];return t?Object.entries(t).map(([o,u])=>{const m=u?.vendors||{};return{label:u?.group_name||"",options:Object.entries(m).map(([n,_])=>({value:[o,n],text:_?.vendor_name||""})).sort((n,_)=>n.text.localeCompare(_.text))}}).sort((o,u)=>-o.label.localeCompare(u.label)):[]}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;const u=this.$store.state.mqtt["openWB/system/configurable/devices_components"]?.[t]?.vendors?.[o]?.devices;return u?Object.entries(u).map(([m,n])=>({value:[o,m],text:n.device_name})).sort((m,n)=>m.text.localeCompare(n.text)):[]}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,u){u.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,u,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:u,deviceVendor:o,type:m}})},removeComponentModal(t,o,u,m,n){n.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:u},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let u=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(u=Object.entries(m.vendors[t].devices[o].components).map(([_,c])=>({value:_,text:c.component_name}))),!1):!0),u},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},le={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},Oe={key:1},Te={key:0};function Ie(t,o,u,m,n,_){const c=p("openwb-base-modal-dialog"),A=p("router-link"),I=p("openwb-base-alert"),P=p("font-awesome-icon"),b=p("openwb-base-avatar"),R=p("openwb-base-text-input"),x=p("openwb-config-proxy"),B=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),M=p("openwb-base-submit-buttons");return s(),g(f,null,[d(c,{show:n.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeDevice},{default:i(()=>[v(' Willst Du das Gerät "'+O(n.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),d(c,{show:n.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeComponent},{default:i(()=>[v(' Willst Du die Komponente "'+O(n.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l("div",le,[l("form",Ee,[u.installAssistantActive?L("",!0):(s(),E(I,{key:0,subtype:"info"},{default:i(()=>[o[7]||(o[7]=v(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),d(A,{to:"/LoadManagementConfiguration"},{default:i(()=>[...o[6]||(o[6]=[v(" Lastmanagement ",-1)])]),_:1}),o[8]||(o[8]=v(" zu prüfen!",-1)),o[9]||(o[9]=l("br",null,null,-1)),o[10]||(o[10]=v(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung von Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1})),d(w,{title:"Geräte und Komponenten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(s(),g("div",ge,[d(I,{subtype:"info"},{default:i(()=>[...o[11]||(o[11]=[v(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(s(),g("div",Ve,[(s(!0),g(f,null,k(_.installedDevices,(r,h)=>(s(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:i(()=>[d(P,{icon:["fas","network-wired"]}),v(" "+O(r?.name),1)]),actions:i(a=>[a.collapsed?(s(),g("div",Oe,[(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),V=>(s(),E(b,{key:V?.id,class:Q("ml-1 bg-"+_.getComponentTypeClass(V?.type))},{default:i(()=>[d(P,{icon:_.getComponentTypeIcon(V?.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:V=>_.removeDeviceModal(r?.id,r?.name,V)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":r?.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=l("hr",null,null,-1)),d(x,{device:r,"onUpdate:configuration":a=>_.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=l("hr",null,null,-1)),d(B,null,{default:i(()=>[...o[12]||(o[12]=[v("Komponenten",-1)])]),_:1}),_.deviceHasConfiguredComponents(r?.id)?L("",!0):(s(),E(I,{key:0,subtype:"warning"},{default:i(()=>[...o[13]||(o[13]=[v(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1})),(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),(a,V)=>(s(),E(w,{key:a?.id,collapsible:!0,collapsed:!0,subtype:_.getComponentTypeClass(a?.type)},{header:i(()=>[d(P,{icon:_.getComponentTypeIcon(a?.type)},null,8,["icon"]),v(" "+O(a?.name),1)]),actions:i(T=>[T.collapsed?L("",!0):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:W=>_.removeComponentModal(r?.id,a?.id,a?.type,a?.name,W)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":a?.name,"onUpdate:modelValue":T=>t.updateState(V,T,"name")},null,8,["model-value","onUpdate:modelValue"]),d(R,{title:"Hersteller",subtype:"text","model-value":a?.info.manufacturer,"onUpdate:modelValue":T=>t.updateState(V,T,"info.manufacturer")},{help:i(()=>[...o[14]||(o[14]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),d(R,{title:"Modell",subtype:"text","model-value":a?.info.model,"onUpdate:modelValue":T=>t.updateState(V,T,"info.model")},{help:i(()=>[...o[15]||(o[15]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=l("hr",null,null,-1)),d(x,{device:r,component:a,"onUpdate:configuration":T=>_.updateConfiguration(V,T)},null,8,["device","component","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),o[21]||(o[21]=l("hr",null,null,-1)),_.getComponentList(r?.vendor,r?.type)?.length?(s(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:_.getComponentList(r?.vendor,r?.type),"model-value":n.componentToAdd[r?.id],"add-button":!0,"onUpdate:modelValue":a=>n.componentToAdd[r?.id]=a,"onInput:add":a=>_.addComponent(r?.id,r?.vendor,r?.type,n.componentToAdd[r?.id])},{help:i(()=>[...o[17]||(o[17]=[v(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue","onInput:add"])):(s(),E(I,{key:2,subtype:"info"},{default:i(()=>[...o[18]||(o[18]=[v(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1}))]),_:2},1024))),128)),Object.keys(_.installedDevices)?.length>0?(s(),g("hr",Te)):L("",!0),d(y,{modelValue:n.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=r=>n.selectedVendor=r),title:"Hersteller","not-selected":"Bitte auswählen",groups:_.vendorList},null,8,["modelValue","groups"]),d(y,{modelValue:n.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=r=>n.deviceToAdd=r),o[2]||(o[2]=r=>n.deviceToAdd=r)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:n.selectedVendor===void 0,options:_.deviceList,"model-value":n.deviceToAdd,"add-button":!0,"onInput:add":_.addDevice},{help:i(()=>[...o[22]||(o[22]=[l("p",null,[v(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),l("br"),v(' 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),l("p",null,[v(' 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.'),l("br"),v(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),l("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])]),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),d(M,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:o[4]||(o[4]=r=>t.$emit("reset")),onDefaults:o[5]||(o[5]=r=>t.$emit("defaults"))})])])],64)}const De=D(ce,[["render",Ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),fe=Object.freeze(Object.defineProperty({__proto__:null,default:De},Symbol.toStringTag,{value:"Module"}));export{re as C,j as D,De as H,fe as a}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/device-BnbWTLTe.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-MVrRMMo2.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/bat-BodHor1L.js","assets/device-BIqpmcKH.js","assets/device-DRKX4yJQ.js","assets/counter-B8QJAgEt.js","assets/device-CbAHx9k5.js","assets/device-DOt-8MOg.js","assets/device-i8-KJ-Ws.js","assets/bat-QqXQiyrh.js","assets/device-BhtRgBIo.js","assets/device-qj1Qycjk.js","assets/inverter-DvXw3D7a.js","assets/device-CpwwCHau.js","assets/counter-CuNF0eOV.js","assets/device-DprB4FVH.js","assets/counter-D-70g2Df.js","assets/device-BVBeJeaC.js","assets/bat-CFqnjfN0.js","assets/counter-DKjZaavu.js","assets/device-xbfmehz1.js","assets/inverter-B4d2P0BT.js","assets/counter-CBhLJ0HX.js","assets/device-C3Gr4pTS.js","assets/inverter-C_8-RWzk.js","assets/device-ChIotMSG.js","assets/device-CPQ3ylFo.js","assets/counter-DfOLZ8wG.js","assets/device-CQUgLNbO.js","assets/inverter-DQZrmUb6.js","assets/bat-BYye6D44.js","assets/device-D13_BqWq.js","assets/bat-DgH1cQZt.js","assets/counter-DOSXCjzW.js","assets/device-D5MbNowE.js","assets/inverter-Ddd-hTPo.js","assets/bat-4cfgum-E.js","assets/counter_sm-pNrELGGt.js","assets/device-bwNUNyPA.js","assets/inverter_production_meter-CuurhLpB.js","assets/inverter_secondary-D81T0iKO.js","assets/bat-nQylh6hI.js","assets/counter-YlkeS6Em.js","assets/device-D6o18n_v.js","assets/inverter-JBoSg5MK.js","assets/bat-Cg0kUFxT.js","assets/counter-BDr0k9oC.js","assets/device-C-2I3miB.js","assets/inverter-DnZJ8VZ2.js","assets/bat-BQtAwRjv.js","assets/counter-CZ5K8g8Z.js","assets/device-CUpyrxDg.js","assets/inverter-3I2lkK_L.js","assets/counter-Cm6ek-bl.js","assets/bat-Ax30Gent.js","assets/device-CrgeMplj.js","assets/device-azgVVgJz.js","assets/device-Bb5dj_A8.js","assets/device-B9NfuMek.js","assets/bat-BrzTqk8M.js","assets/counter-CpadszTy.js","assets/device-CsoeSeMr.js","assets/inverter-iIz-rAKJ.js","assets/device-BLcj2_F_.js","assets/counter-tDR8t7cN.js","assets/device-Com-9Ezv.js","assets/bat-CdX7Dsq8.js","assets/counter-Drr6VJPX.js","assets/device-1i0aaNC5.js","assets/inverter-CJF4atrW.js","assets/device-CBmIgevJ.js","assets/inverter-nJJk1YCc.js","assets/counter-BbIUpB6g.js","assets/device-B8aJ_v6z.js","assets/inverter-BmkLYd0W.js","assets/counter-Dm87iMnq.js","assets/device-gBv6mP6a.js","assets/inverter-BL7QHUdu.js","assets/device-hpmNmTOM.js","assets/bat-fTz5eqR6.js","assets/counter-Cv4G8Tsg.js","assets/device-B2nna1eX.js","assets/counter-DnGmCaut.js","assets/device-DsQ4isEF.js","assets/device-CSpwX2A7.js","assets/inverter-CiPvqfmh.js","assets/device-BTX_U2ze.js","assets/bat-D6j0cSWQ.js","assets/device-ytrtPsOb.js","assets/bat-Y4Bo2-xr.js","assets/counter-C1tkl5FT.js","assets/device-ClJMpktq.js","assets/inverter-CZL0apch.js","assets/device-fle-hzCB.js","assets/counter-D7FnqAtd.js","assets/device-CtUghXi3.js","assets/device-Co7SQh-h.js","assets/inverter-BseXGzyq.js","assets/bat-Np9R5pTH.js","assets/bat-0iJT-x8M.js","assets/counter-B7nJSb8E.js","assets/inverter-C0TqYVpJ.js","assets/bat-W2j8bFF3.js","assets/consumption_counter-CF8sdq_V.js","assets/counter-c-gM0svN.js","assets/device-o47QZlML.js","assets/inverter-BBOKdY28.js","assets/inverter-CF16Zlup.js","assets/counter-DqdzrzXR.js","assets/device-zmmS4Msf.js","assets/counter-BVtC0OIn.js","assets/device-BnuAgz8z.js","assets/counter-CQa_tIvk.js","assets/device-D2x0p5db.js","assets/inverter-BaXH_Y9w.js","assets/bat-VZSm2USJ.js","assets/device-fOYVFPuS.js","assets/device-CBCwFYPC.js","assets/device-BTcCLzsp.js","assets/counter-SFsLwkGI.js","assets/device-BgwGgK4V.js","assets/device-BQJszAHJ.js","assets/device-lj_s42gJ.js","assets/bat-DJLzkMEi.js","assets/counter-CDUqz_Aw.js","assets/device-BLQIpNFk.js","assets/inverter-BZuKTY7H.js","assets/counter-C51HlNOs.js","assets/inverter-C9IbTuw1.js","assets/bat-BGnhimEI.js","assets/bat_smart_energy-Bc52yzFg.js","assets/counter-ClRUzEkm.js","assets/device-DHl3UXR-.js","assets/inverter-Nqq-ojGV.js","assets/bat-DFNKb3el.js","assets/device-DcBHTsLN.js","assets/device-BoRz-h9D.js","assets/counter-B6FDPfsT.js","assets/device-CJ46HRTm.js","assets/inverter-BmdI7f5U.js","assets/device-B6C66MkE.js","assets/device-D9AUjwae.js","assets/bat-D1f46Np3.js","assets/device-CoDgAiu7.js","assets/inverter-DJMrcxw5.js","assets/counter-DV-WMkEG.js","assets/device-Dlv7ykwm.js","assets/device-sNas_qg7.js","assets/inverter-6IxocKCd.js","assets/device-JaS8E22E.js","assets/device-CGFCc-6g.js","assets/bat-Bkdbtauz.js","assets/counter-D0mmwP6N.js","assets/device-BTaZLgZX.js","assets/external_inverter-YjGYqVNZ.js","assets/inverter-pZ3BL9gj.js","assets/bat-nFWbkTuH.js","assets/counter_maxstorage-CTGozg4B.js","assets/device-B25qse-T.js","assets/inverter-DBEU38Ze.js","assets/inverter_maxstorage-21D0TjaH.js","assets/device-DoaiL166.js","assets/bat-CCSl-PUx.js","assets/counter-Bg6xqQnQ.js","assets/device-Cm2E-XJI.js","assets/inverter-CmIS6Rxf.js","assets/bat-DcL07sVl.js","assets/counter-BtazrY2B.js","assets/counter_consumption-Ds8Se4iG.js","assets/device-CzcTMovl.js","assets/bat-Cn1BvUsy.js","assets/device-MHdIpW0v.js","assets/inverter-CBpmmUE2.js","assets/device-CMefLAy2.js","assets/device-Dompx4E-.js","assets/device-CM1a3210.js","assets/device-CrCdeJXU.js","assets/device-BleyPfYn.js","assets/device-CkIrFtXj.js","assets/counter-A_Eha_ow.js","assets/device-zuKsJodY.js","assets/counter-DeNkZ-pw.js","assets/device-B8YHisMb.js","assets/device-D40Fwpnf.js","assets/device-ZJQLxXJQ.js","assets/inverter-Tudrcp8A.js","assets/bat-DZyRWMSA.js","assets/counter-BoOPFIeZ.js","assets/device-DDpMd1e0.js","assets/inverter-C7XZ_DaO.js","assets/device-m9d0bD8m.js","assets/counter-DefcYDVn.js","assets/device-qKrSKUqA.js","assets/inverter-ecQY2yVW.js","assets/device-BzspTrpe.js","assets/inverter-BFfNvObM.js"])))=>i.map(i=>d[i]); +import{F as q,l as U,d as S,y as G,as as K,aj as N,a4 as $,a3 as H,a2 as F}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as e,C as J}from"./index-MVrRMMo2.js";import{_ as C}from"./dynamic-import-helper-BheWnx7M.js";import{_ as D,l as p,k as s,e as g,y as E,q as i,A as v,J as O,m as d,x as l,a1 as z,a2 as Z,u as L,K as f,L as k,j as Q}from"./vendor-Bo8v-nQD.js";const X={props:{device:{type:Object,required:!0}},emits:["update:configuration"],methods:{updateConfiguration(t,o=void 0){this.$emit("update:configuration",{value:t,object:o})}}},j=D(X,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/DeviceConfigMixin.vue"]]),Y={name:"DeviceFallback",mixins:[j]},ee={class:"device-fallback"},oe={key:1};function te(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ee,[Object.keys(t.device.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Gerät-Typ "'+O(t.device.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",oe,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Geräte-Typ "'+O(t.device.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.device.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.device.configuration,void 0,2)),1)]),_:1})]))])}const _e=D(Y,[["render",te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbDeviceConfigFallback.vue"]]),ie={mixins:[j],props:{component:{type:Object,required:!0}}},re=D(ie,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ComponentConfigMixin.vue"]]),ne={name:"ComponentFallback",mixins:[re]},ue={class:"component-fallback"},de={key:1};function ve(t,o,u,m,n,_){const c=p("openwb-base-alert"),A=p("openwb-base-textarea");return s(),g("div",ue,[Object.keys(t.component.configuration).length==0?(s(),E(c,{key:0,subtype:"info"},{default:i(()=>[v(' Der Komponenten-Typ "'+O(t.component.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(s(),g("div",de,[d(c,{subtype:"warning"},{default:i(()=>[v(' Es wurde keine Konfigurationsseite für den Komponenten-Typ "'+O(t.component.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),d(A,{title:"Konfiguration",subtype:"json","model-value":t.component.configuration,"onUpdate:modelValue":o[0]||(o[0]=I=>t.updateConfiguration(I,"configuration"))},{help:i(()=>[...o[1]||(o[1]=[v(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),d(c,{subtype:"info"},{default:i(()=>[l("pre",null,O(JSON.stringify(t.component.configuration,void 0,2)),1)]),_:1})]))])}const se=D(ne,[["render",ve],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbComponentConfigFallback.vue"]]),ae={name:"OpenwbConfigProxy",props:{device:{type:Object,required:!0},component:{type:Object,required:!1,default:void 0}},emits:["update:configuration"],methods:{getComponent(){return console.debug(`loading component: ${this.device?.type} / ${this.component?.type}`),this.component!==void 0?z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-BnbWTLTe.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/bat.vue":()=>e(()=>import("./bat-BodHor1L.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-BIqpmcKH.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-DRKX4yJQ.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/counter.vue":()=>e(()=>import("./counter-B8QJAgEt.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-CbAHx9k5.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DOt-8MOg.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-i8-KJ-Ws.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/bat.vue":()=>e(()=>import("./bat-QqXQiyrh.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-BhtRgBIo.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-qj1Qycjk.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/inverter.vue":()=>e(()=>import("./inverter-DvXw3D7a.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-CpwwCHau.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/counter.vue":()=>e(()=>import("./counter-CuNF0eOV.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-DprB4FVH.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/counter.vue":()=>e(()=>import("./counter-D-70g2Df.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-BVBeJeaC.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/bat.vue":()=>e(()=>import("./bat-CFqnjfN0.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/counter.vue":()=>e(()=>import("./counter-DKjZaavu.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-xbfmehz1.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/inverter.vue":()=>e(()=>import("./inverter-B4d2P0BT.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/counter.vue":()=>e(()=>import("./counter-CBhLJ0HX.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-C3Gr4pTS.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/inverter.vue":()=>e(()=>import("./inverter-C_8-RWzk.js"),__vite__mapDeps([33,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-ChIotMSG.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-CPQ3ylFo.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/counter.vue":()=>e(()=>import("./counter-DfOLZ8wG.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-CQUgLNbO.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/inverter.vue":()=>e(()=>import("./inverter-DQZrmUb6.js"),__vite__mapDeps([38,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/bat.vue":()=>e(()=>import("./bat-BYye6D44.js"),__vite__mapDeps([39,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-D13_BqWq.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/bat.vue":()=>e(()=>import("./bat-DgH1cQZt.js"),__vite__mapDeps([41,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/counter.vue":()=>e(()=>import("./counter-DOSXCjzW.js"),__vite__mapDeps([42,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-D5MbNowE.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/inverter.vue":()=>e(()=>import("./inverter-Ddd-hTPo.js"),__vite__mapDeps([44,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/bat.vue":()=>e(()=>import("./bat-4cfgum-E.js"),__vite__mapDeps([45,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/counter_sm.vue":()=>e(()=>import("./counter_sm-pNrELGGt.js"),__vite__mapDeps([46,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-bwNUNyPA.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_production_meter.vue":()=>e(()=>import("./inverter_production_meter-CuurhLpB.js"),__vite__mapDeps([48,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/inverter_secondary.vue":()=>e(()=>import("./inverter_secondary-D81T0iKO.js"),__vite__mapDeps([49,1,2,3,4,5,6,7,8,9,10])),"./generic/http/bat.vue":()=>e(()=>import("./bat-nQylh6hI.js"),__vite__mapDeps([50,1,2,3,4,5,6,7,8,9,10])),"./generic/http/counter.vue":()=>e(()=>import("./counter-YlkeS6Em.js"),__vite__mapDeps([51,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-D6o18n_v.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/http/inverter.vue":()=>e(()=>import("./inverter-JBoSg5MK.js"),__vite__mapDeps([53,1,2,3,4,5,6,7,8,9,10])),"./generic/json/bat.vue":()=>e(()=>import("./bat-Cg0kUFxT.js"),__vite__mapDeps([54,1,2,3,4,5,6,7,8,9,10])),"./generic/json/counter.vue":()=>e(()=>import("./counter-BDr0k9oC.js"),__vite__mapDeps([55,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-C-2I3miB.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/json/inverter.vue":()=>e(()=>import("./inverter-DnZJ8VZ2.js"),__vite__mapDeps([57,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/bat.vue":()=>e(()=>import("./bat-BQtAwRjv.js"),__vite__mapDeps([58,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/counter.vue":()=>e(()=>import("./counter-CZ5K8g8Z.js"),__vite__mapDeps([59,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CUpyrxDg.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/inverter.vue":()=>e(()=>import("./inverter-3I2lkK_L.js"),__vite__mapDeps([61,1,2,3,4,5,6,7,8,9,10])),"./generic/virtual/counter.vue":()=>e(()=>import("./counter-Cm6ek-bl.js"),__vite__mapDeps([62,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/bat.vue":()=>e(()=>import("./bat-Ax30Gent.js"),__vite__mapDeps([63,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-CrgeMplj.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-azgVVgJz.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-Bb5dj_A8.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-B9NfuMek.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/bat.vue":()=>e(()=>import("./bat-BrzTqk8M.js"),__vite__mapDeps([68,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/counter.vue":()=>e(()=>import("./counter-CpadszTy.js"),__vite__mapDeps([69,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-CsoeSeMr.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/inverter.vue":()=>e(()=>import("./inverter-iIz-rAKJ.js"),__vite__mapDeps([71,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-BLcj2_F_.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/counter.vue":()=>e(()=>import("./counter-tDR8t7cN.js"),__vite__mapDeps([73,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-Com-9Ezv.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/bat.vue":()=>e(()=>import("./bat-CdX7Dsq8.js"),__vite__mapDeps([75,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/counter.vue":()=>e(()=>import("./counter-Drr6VJPX.js"),__vite__mapDeps([76,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-1i0aaNC5.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/inverter.vue":()=>e(()=>import("./inverter-CJF4atrW.js"),__vite__mapDeps([78,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-CBmIgevJ.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/inverter.vue":()=>e(()=>import("./inverter-nJJk1YCc.js"),__vite__mapDeps([80,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/counter.vue":()=>e(()=>import("./counter-BbIUpB6g.js"),__vite__mapDeps([81,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-B8aJ_v6z.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/inverter.vue":()=>e(()=>import("./inverter-BmkLYd0W.js"),__vite__mapDeps([83,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/counter.vue":()=>e(()=>import("./counter-Dm87iMnq.js"),__vite__mapDeps([84,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-gBv6mP6a.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/inverter.vue":()=>e(()=>import("./inverter-BL7QHUdu.js"),__vite__mapDeps([86,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-hpmNmTOM.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/bat.vue":()=>e(()=>import("./bat-fTz5eqR6.js"),__vite__mapDeps([88,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/counter.vue":()=>e(()=>import("./counter-Cv4G8Tsg.js"),__vite__mapDeps([89,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-B2nna1eX.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/counter.vue":()=>e(()=>import("./counter-DnGmCaut.js"),__vite__mapDeps([91,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-DsQ4isEF.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-CSpwX2A7.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/inverter.vue":()=>e(()=>import("./inverter-CiPvqfmh.js"),__vite__mapDeps([94,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-BTX_U2ze.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/bat.vue":()=>e(()=>import("./bat-D6j0cSWQ.js"),__vite__mapDeps([96,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-ytrtPsOb.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/bat.vue":()=>e(()=>import("./bat-Y4Bo2-xr.js"),__vite__mapDeps([98,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/counter.vue":()=>e(()=>import("./counter-C1tkl5FT.js"),__vite__mapDeps([99,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-ClJMpktq.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/inverter.vue":()=>e(()=>import("./inverter-CZL0apch.js"),__vite__mapDeps([101,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-fle-hzCB.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/counter.vue":()=>e(()=>import("./counter-D7FnqAtd.js"),__vite__mapDeps([103,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-CtUghXi3.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-Co7SQh-h.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/inverter.vue":()=>e(()=>import("./inverter-BseXGzyq.js"),__vite__mapDeps([106,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_bat_kit/bat.vue":()=>e(()=>import("./bat-Np9R5pTH.js"),__vite__mapDeps([107,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/bat.vue":()=>e(()=>import("./bat-0iJT-x8M.js"),__vite__mapDeps([108,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/counter.vue":()=>e(()=>import("./counter-B7nJSb8E.js"),__vite__mapDeps([109,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_evu_kit/inverter.vue":()=>e(()=>import("./inverter-C0TqYVpJ.js"),__vite__mapDeps([110,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/bat.vue":()=>e(()=>import("./bat-W2j8bFF3.js"),__vite__mapDeps([111,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/consumption_counter.vue":()=>e(()=>import("./consumption_counter-CF8sdq_V.js"),__vite__mapDeps([112,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/counter.vue":()=>e(()=>import("./counter-c-gM0svN.js"),__vite__mapDeps([113,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-o47QZlML.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/inverter.vue":()=>e(()=>import("./inverter-BBOKdY28.js"),__vite__mapDeps([115,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_pv_kit/inverter.vue":()=>e(()=>import("./inverter-CF16Zlup.js"),__vite__mapDeps([116,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/counter.vue":()=>e(()=>import("./counter-DqdzrzXR.js"),__vite__mapDeps([117,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-zmmS4Msf.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/counter.vue":()=>e(()=>import("./counter-BVtC0OIn.js"),__vite__mapDeps([119,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-BnuAgz8z.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/counter.vue":()=>e(()=>import("./counter-CQa_tIvk.js"),__vite__mapDeps([121,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-D2x0p5db.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/inverter.vue":()=>e(()=>import("./inverter-BaXH_Y9w.js"),__vite__mapDeps([123,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/bat.vue":()=>e(()=>import("./bat-VZSm2USJ.js"),__vite__mapDeps([124,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-fOYVFPuS.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-CBCwFYPC.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-BTcCLzsp.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/counter.vue":()=>e(()=>import("./counter-SFsLwkGI.js"),__vite__mapDeps([128,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-BgwGgK4V.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-BQJszAHJ.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-lj_s42gJ.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/bat.vue":()=>e(()=>import("./bat-DJLzkMEi.js"),__vite__mapDeps([132,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/counter.vue":()=>e(()=>import("./counter-CDUqz_Aw.js"),__vite__mapDeps([133,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-BLQIpNFk.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/inverter.vue":()=>e(()=>import("./inverter-BZuKTY7H.js"),__vite__mapDeps([135,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/counter.vue":()=>e(()=>import("./counter-C51HlNOs.js"),__vite__mapDeps([136,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_shm/inverter.vue":()=>e(()=>import("./inverter-C9IbTuw1.js"),__vite__mapDeps([137,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat.vue":()=>e(()=>import("./bat-BGnhimEI.js"),__vite__mapDeps([138,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/bat_smart_energy.vue":()=>e(()=>import("./bat_smart_energy-Bc52yzFg.js"),__vite__mapDeps([139,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/counter.vue":()=>e(()=>import("./counter-ClRUzEkm.js"),__vite__mapDeps([140,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-DHl3UXR-.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/inverter.vue":()=>e(()=>import("./inverter-Nqq-ojGV.js"),__vite__mapDeps([142,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/bat.vue":()=>e(()=>import("./bat-DFNKb3el.js"),__vite__mapDeps([143,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-DcBHTsLN.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-BoRz-h9D.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/counter.vue":()=>e(()=>import("./counter-B6FDPfsT.js"),__vite__mapDeps([146,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-CJ46HRTm.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/inverter.vue":()=>e(()=>import("./inverter-BmdI7f5U.js"),__vite__mapDeps([148,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-B6C66MkE.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-D9AUjwae.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/bat.vue":()=>e(()=>import("./bat-D1f46Np3.js"),__vite__mapDeps([151,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-CoDgAiu7.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/inverter.vue":()=>e(()=>import("./inverter-DJMrcxw5.js"),__vite__mapDeps([153,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/counter.vue":()=>e(()=>import("./counter-DV-WMkEG.js"),__vite__mapDeps([154,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-Dlv7ykwm.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-sNas_qg7.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/inverter.vue":()=>e(()=>import("./inverter-6IxocKCd.js"),__vite__mapDeps([157,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-JaS8E22E.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-CGFCc-6g.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/bat.vue":()=>e(()=>import("./bat-Bkdbtauz.js"),__vite__mapDeps([160,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/counter.vue":()=>e(()=>import("./counter-D0mmwP6N.js"),__vite__mapDeps([161,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-BTaZLgZX.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/external_inverter.vue":()=>e(()=>import("./external_inverter-YjGYqVNZ.js"),__vite__mapDeps([163,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/inverter.vue":()=>e(()=>import("./inverter-pZ3BL9gj.js"),__vite__mapDeps([164,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/bat.vue":()=>e(()=>import("./bat-nFWbkTuH.js"),__vite__mapDeps([165,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/counter_maxstorage.vue":()=>e(()=>import("./counter_maxstorage-CTGozg4B.js"),__vite__mapDeps([166,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-B25qse-T.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter.vue":()=>e(()=>import("./inverter-DBEU38Ze.js"),__vite__mapDeps([168,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/inverter_maxstorage.vue":()=>e(()=>import("./inverter_maxstorage-21D0TjaH.js"),__vite__mapDeps([169,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DoaiL166.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/bat.vue":()=>e(()=>import("./bat-CCSl-PUx.js"),__vite__mapDeps([171,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/counter.vue":()=>e(()=>import("./counter-Bg6xqQnQ.js"),__vite__mapDeps([172,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-Cm2E-XJI.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/inverter.vue":()=>e(()=>import("./inverter-CmIS6Rxf.js"),__vite__mapDeps([174,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/bat.vue":()=>e(()=>import("./bat-DcL07sVl.js"),__vite__mapDeps([175,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter.vue":()=>e(()=>import("./counter-BtazrY2B.js"),__vite__mapDeps([176,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/counter_consumption.vue":()=>e(()=>import("./counter_consumption-Ds8Se4iG.js"),__vite__mapDeps([177,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-CzcTMovl.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/bat.vue":()=>e(()=>import("./bat-Cn1BvUsy.js"),__vite__mapDeps([179,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-MHdIpW0v.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/inverter.vue":()=>e(()=>import("./inverter-CBpmmUE2.js"),__vite__mapDeps([181,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-CMefLAy2.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-Dompx4E-.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-CM1a3210.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-CrCdeJXU.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-BleyPfYn.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-CkIrFtXj.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/counter.vue":()=>e(()=>import("./counter-A_Eha_ow.js"),__vite__mapDeps([188,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-zuKsJodY.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/counter.vue":()=>e(()=>import("./counter-DeNkZ-pw.js"),__vite__mapDeps([190,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-B8YHisMb.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-D40Fwpnf.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-ZJQLxXJQ.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/inverter.vue":()=>e(()=>import("./inverter-Tudrcp8A.js"),__vite__mapDeps([194,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/bat.vue":()=>e(()=>import("./bat-DZyRWMSA.js"),__vite__mapDeps([195,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/counter.vue":()=>e(()=>import("./counter-BoOPFIeZ.js"),__vite__mapDeps([196,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-DDpMd1e0.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/inverter.vue":()=>e(()=>import("./inverter-C7XZ_DaO.js"),__vite__mapDeps([198,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-m9d0bD8m.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/counter.vue":()=>e(()=>import("./counter-DefcYDVn.js"),__vite__mapDeps([200,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-qKrSKUqA.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/inverter.vue":()=>e(()=>import("./inverter-ecQY2yVW.js"),__vite__mapDeps([202,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-BzspTrpe.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/inverter.vue":()=>e(()=>import("./inverter-BFfNvObM.js"),__vite__mapDeps([204,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/${this.component?.type}.vue`,4),errorComponent:se}):z({loader:()=>C(Object.assign({"./algodue/algodue/device.vue":()=>e(()=>import("./device-BnbWTLTe.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./alpha_ess/alpha_ess/device.vue":()=>e(()=>import("./device-BIqpmcKH.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./ampere/ampere/device.vue":()=>e(()=>import("./device-DRKX4yJQ.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./avm/avm/device.vue":()=>e(()=>import("./device-CbAHx9k5.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs/device.vue":()=>e(()=>import("./device-DOt-8MOg.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./azzurro_zcs/azzurro_zcs_3p/device.vue":()=>e(()=>import("./device-i8-KJ-Ws.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./batterx/batterx/device.vue":()=>e(()=>import("./device-BhtRgBIo.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10])),"./benning/benning/device.vue":()=>e(()=>import("./device-qj1Qycjk.js"),__vite__mapDeps([20,1,2,3,4,5,6,7,8,9,10])),"./byd/byd/device.vue":()=>e(()=>import("./device-CpwwCHau.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./carlo_gavazzi/carlo_gavazzi/device.vue":()=>e(()=>import("./device-DprB4FVH.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./chint/chint/device.vue":()=>e(()=>import("./device-BVBeJeaC.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./deye/deye/device.vue":()=>e(()=>import("./device-xbfmehz1.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10])),"./discovergy/discovergy/device.vue":()=>e(()=>import("./device-C3Gr4pTS.js"),__vite__mapDeps([32,1,2,3,4,5,6,7,8,9,10])),"./e3dc/e3dc/device.vue":()=>e(()=>import("./device-ChIotMSG.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10])),"./elgris/elgris/device.vue":()=>e(()=>import("./device-CPQ3ylFo.js"),__vite__mapDeps([35,1,2,3,4,5,6,7,8,9,10])),"./enphase/enphase/device.vue":()=>e(()=>import("./device-CQUgLNbO.js"),__vite__mapDeps([37,1,2,3,4,5,6,7,8,9,10])),"./fems/fems/device.vue":()=>e(()=>import("./device-D13_BqWq.js"),__vite__mapDeps([40,1,2,3,4,5,6,7,8,9,10])),"./fox_ess/fox_ess/device.vue":()=>e(()=>import("./device-D5MbNowE.js"),__vite__mapDeps([43,1,2,3,4,5,6,7,8,9,10])),"./fronius/fronius/device.vue":()=>e(()=>import("./device-bwNUNyPA.js"),__vite__mapDeps([47,1,2,3,4,5,6,7,8,9,10])),"./generic/http/device.vue":()=>e(()=>import("./device-D6o18n_v.js"),__vite__mapDeps([52,1,2,3,4,5,6,7,8,9,10])),"./generic/json/device.vue":()=>e(()=>import("./device-C-2I3miB.js"),__vite__mapDeps([56,1,2,3,4,5,6,7,8,9,10])),"./generic/mqtt/device.vue":()=>e(()=>import("./device-CUpyrxDg.js"),__vite__mapDeps([60,1,2,3,4,5,6,7,8,9,10])),"./good_we/good_we/device.vue":()=>e(()=>import("./device-CrgeMplj.js"),__vite__mapDeps([64,1,2,3,4,5,6,7,8,9,10])),"./growatt/growatt/device.vue":()=>e(()=>import("./device-azgVVgJz.js"),__vite__mapDeps([65,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei/device.vue":()=>e(()=>import("./device-Bb5dj_A8.js"),__vite__mapDeps([66,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_emma/device.vue":()=>e(()=>import("./device-B9NfuMek.js"),__vite__mapDeps([67,1,2,3,4,5,6,7,8,9,10])),"./huawei/huawei_smartlogger/device.vue":()=>e(()=>import("./device-CsoeSeMr.js"),__vite__mapDeps([70,1,2,3,4,5,6,7,8,9,10])),"./idm/idm/device.vue":()=>e(()=>import("./device-BLcj2_F_.js"),__vite__mapDeps([72,1,2,3,4,5,6,7,8,9,10])),"./janitza/janitza/device.vue":()=>e(()=>import("./device-Com-9Ezv.js"),__vite__mapDeps([74,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_nh/device.vue":()=>e(()=>import("./device-1i0aaNC5.js"),__vite__mapDeps([77,1,2,3,4,5,6,7,8,9,10])),"./kaco/kaco_tx/device.vue":()=>e(()=>import("./device-CBmIgevJ.js"),__vite__mapDeps([79,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko/device.vue":()=>e(()=>import("./device-B8aJ_v6z.js"),__vite__mapDeps([82,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_ci/device.vue":()=>e(()=>import("./device-gBv6mP6a.js"),__vite__mapDeps([85,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_piko_old/device.vue":()=>e(()=>import("./device-hpmNmTOM.js"),__vite__mapDeps([87,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_plenticore/device.vue":()=>e(()=>import("./device-B2nna1eX.js"),__vite__mapDeps([90,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_sem/device.vue":()=>e(()=>import("./device-DsQ4isEF.js"),__vite__mapDeps([92,1,2,3,4,5,6,7,8,9,10])),"./kostal/kostal_steca/device.vue":()=>e(()=>import("./device-CSpwX2A7.js"),__vite__mapDeps([93,1,2,3,4,5,6,7,8,9,10])),"./lg/lg/device.vue":()=>e(()=>import("./device-BTX_U2ze.js"),__vite__mapDeps([95,1,2,3,4,5,6,7,8,9,10])),"./marstek/venus_c_e/device.vue":()=>e(()=>import("./device-ytrtPsOb.js"),__vite__mapDeps([97,1,2,3,4,5,6,7,8,9,10])),"./mtec/mtec/device.vue":()=>e(()=>import("./device-ClJMpktq.js"),__vite__mapDeps([100,1,2,3,4,5,6,7,8,9,10])),"./mystrom/mystrom/device.vue":()=>e(()=>import("./device-fle-hzCB.js"),__vite__mapDeps([102,1,2,3,4,5,6,7,8,9,10])),"./nibe/nibe/device.vue":()=>e(()=>import("./device-CtUghXi3.js"),__vite__mapDeps([104,1,2,3,4,5,6,7,8,9,10])),"./opendtu/opendtu/device.vue":()=>e(()=>import("./device-Co7SQh-h.js"),__vite__mapDeps([105,1,2,3,4,5,6,7,8,9,10])),"./openwb/openwb_flex/device.vue":()=>e(()=>import("./device-o47QZlML.js"),__vite__mapDeps([114,1,2,3,4,5,6,7,8,9,10])),"./orno/orno/device.vue":()=>e(()=>import("./device-zmmS4Msf.js"),__vite__mapDeps([118,1,2,3,4,5,6,7,8,9,10])),"./powerdog/powerdog/device.vue":()=>e(()=>import("./device-BnuAgz8z.js"),__vite__mapDeps([120,1,2,3,4,5,6,7,8,9,10])),"./powerfox/powerfox/device.vue":()=>e(()=>import("./device-D2x0p5db.js"),__vite__mapDeps([122,1,2,3,4,5,6,7,8,9,10])),"./qcells/qcells/device.vue":()=>e(()=>import("./device-fOYVFPuS.js"),__vite__mapDeps([125,1,2,3,4,5,6,7,8,9,10])),"./rct/rct/device.vue":()=>e(()=>import("./device-CBCwFYPC.js"),__vite__mapDeps([126,1,2,3,4,5,6,7,8,9,10])),"./saxpower/saxpower/device.vue":()=>e(()=>import("./device-BTcCLzsp.js"),__vite__mapDeps([127,1,2,3,4,5,6,7,8,9,10])),"./shelly/shelly/device.vue":()=>e(()=>import("./device-BgwGgK4V.js"),__vite__mapDeps([129,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens/device.vue":()=>e(()=>import("./device-BQJszAHJ.js"),__vite__mapDeps([130,1,2,3,4,5,6,7,8,9,10])),"./siemens/siemens_sentron/device.vue":()=>e(()=>import("./device-lj_s42gJ.js"),__vite__mapDeps([131,1,2,3,4,5,6,7,8,9,10])),"./sigenergy/sigenergy/device.vue":()=>e(()=>import("./device-BLQIpNFk.js"),__vite__mapDeps([134,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_boy/device.vue":()=>e(()=>import("./device-DHl3UXR-.js"),__vite__mapDeps([141,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_sunny_island/device.vue":()=>e(()=>import("./device-DcBHTsLN.js"),__vite__mapDeps([144,1,2,3,4,5,6,7,8,9,10])),"./sma/sma_webbox/device.vue":()=>e(()=>import("./device-BoRz-h9D.js"),__vite__mapDeps([145,1,2,3,4,5,6,7,8,9,10])),"./smart_me/smart_me/device.vue":()=>e(()=>import("./device-CJ46HRTm.js"),__vite__mapDeps([147,1,2,3,4,5,6,7,8,9,10])),"./smartfox/smartfox/device.vue":()=>e(()=>import("./device-B6C66MkE.js"),__vite__mapDeps([149,1,2,3,4,5,6,7,8,9,10])),"./sofar/sofar/device.vue":()=>e(()=>import("./device-D9AUjwae.js"),__vite__mapDeps([150,1,2,3,4,5,6,7,8,9,10])),"./solakon/solakon_one/device.vue":()=>e(()=>import("./device-CoDgAiu7.js"),__vite__mapDeps([152,1,2,3,4,5,6,7,8,9,10])),"./solar_log/solar_log/device.vue":()=>e(()=>import("./device-Dlv7ykwm.js"),__vite__mapDeps([155,1,2,3,4,5,6,7,8,9,10])),"./solar_view/solar_view/device.vue":()=>e(()=>import("./device-sNas_qg7.js"),__vite__mapDeps([156,1,2,3,4,5,6,7,8,9,10])),"./solar_watt/solar_watt/device.vue":()=>e(()=>import("./device-JaS8E22E.js"),__vite__mapDeps([158,1,2,3,4,5,6,7,8,9,10])),"./solar_world/solar_world/device.vue":()=>e(()=>import("./device-CGFCc-6g.js"),__vite__mapDeps([159,1,2,3,4,5,6,7,8,9,10])),"./solaredge/solaredge/device.vue":()=>e(()=>import("./device-BTaZLgZX.js"),__vite__mapDeps([162,1,2,3,4,5,6,7,8,9,10])),"./solarmax/solarmax/device.vue":()=>e(()=>import("./device-B25qse-T.js"),__vite__mapDeps([167,1,2,3,4,5,6,7,8,9,10])),"./solax/solax/device.vue":()=>e(()=>import("./device-DoaiL166.js"),__vite__mapDeps([170,1,2,3,4,5,6,7,8,9,10])),"./solis/solis/device.vue":()=>e(()=>import("./device-Cm2E-XJI.js"),__vite__mapDeps([173,1,2,3,4,5,6,7,8,9,10])),"./sonnen/sonnenbatterie/device.vue":()=>e(()=>import("./device-CzcTMovl.js"),__vite__mapDeps([178,1,2,3,4,5,6,7,8,9,10])),"./studer/studer/device.vue":()=>e(()=>import("./device-MHdIpW0v.js"),__vite__mapDeps([180,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_ihm/device.vue":()=>e(()=>import("./device-CMefLAy2.js"),__vite__mapDeps([182,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_micro/device.vue":()=>e(()=>import("./device-Dompx4E-.js"),__vite__mapDeps([183,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sg/device.vue":()=>e(()=>import("./device-CM1a3210.js"),__vite__mapDeps([184,1,2,3,4,5,6,7,8,9,10])),"./sungrow/sungrow_sh/device.vue":()=>e(()=>import("./device-CrCdeJXU.js"),__vite__mapDeps([185,1,2,3,4,5,6,7,8,9,10])),"./sunways/sunways/device.vue":()=>e(()=>import("./device-BleyPfYn.js"),__vite__mapDeps([186,1,2,3,4,5,6,7,8,9,10])),"./tasmota/tasmota/device.vue":()=>e(()=>import("./device-CkIrFtXj.js"),__vite__mapDeps([187,1,2,3,4,5,6,7,8,9,10])),"./tesla/tesla/device.vue":()=>e(()=>import("./device-zuKsJodY.js"),__vite__mapDeps([189,1,2,3,4,5,6,7,8,9,10])),"./thermia/thermia/device.vue":()=>e(()=>import("./device-B8YHisMb.js"),__vite__mapDeps([191,1,2,3,4,5,6,7,8,9,10])),"./upower/upower/device.vue":()=>e(()=>import("./device-D40Fwpnf.js"),__vite__mapDeps([192,1,2,3,4,5,6,7,8,9,10])),"./varta/varta/device.vue":()=>e(()=>import("./device-ZJQLxXJQ.js"),__vite__mapDeps([193,1,2,3,4,5,6,7,8,9,10])),"./victron/victron/device.vue":()=>e(()=>import("./device-DDpMd1e0.js"),__vite__mapDeps([197,1,2,3,4,5,6,7,8,9,10])),"./victron/victron_3p75ct/device.vue":()=>e(()=>import("./device-m9d0bD8m.js"),__vite__mapDeps([199,1,2,3,4,5,6,7,8,9,10])),"./vzlogger/vzlogger/device.vue":()=>e(()=>import("./device-qKrSKUqA.js"),__vite__mapDeps([201,1,2,3,4,5,6,7,8,9,10])),"./youless/youless/device.vue":()=>e(()=>import("./device-BzspTrpe.js"),__vite__mapDeps([203,1,2,3,4,5,6,7,8,9,10]))}),`./${this.device?.vendor}/${this.device?.type}/device.vue`,4),errorComponent:_e})},updateConfiguration(t){this.$emit("update:configuration",t)}}};function me(t,o,u,m,n,_){return s(),E(Z(_.getComponent()),{device:u.device,component:u.component,"component-id":u.component?u.component.id:void 0,"component-type":u.component?u.component.type:void 0,"onUpdate:configuration":o[0]||(o[0]=c=>_.updateConfiguration(c))},null,40,["device","component","component-id","component-type"])}const pe=D(ae,[["render",me],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/OpenwbConfigProxy.vue"]]);U.add(S,G,K,N,$,H,F);const ce={name:"OpenwbHardwareInstallationView",components:{FontAwesomeIcon:q,OpenwbConfigProxy:pe},mixins:[J],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/configurable/devices_components",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!0},{topic:"openWB/system/device/+/config",writeable:!0}],selectedVendor:void 0,deviceToAdd:void 0,showDeviceRemoveModal:!1,modalDevice:void 0,modalDeviceName:"",componentToAdd:[],showComponentRemoveModal:!1,modalComponent:void 0,modalComponentName:""}},computed:{installedDevices(){const t=this.getWildcardTopics("openWB/system/device/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},installedComponents(){const t=this.getWildcardTopics("openWB/system/device/+/component/+/config");return Object.fromEntries(Object.entries(t).filter(([,o])=>o&&typeof o=="object"))},vendorList:{get(){const t=this.$store.state.mqtt["openWB/system/configurable/devices_components"];return t?Object.entries(t).map(([o,u])=>{const m=u?.vendors||{};return{label:u?.group_name||"",options:Object.entries(m).map(([n,_])=>({value:[o,n],text:_?.vendor_name||""})).sort((n,_)=>n.text.localeCompare(_.text))}}).sort((o,u)=>-o.label.localeCompare(u.label)):[]}},deviceList:{get(){if(this.selectedVendor===void 0)return[];let[t,o]=this.selectedVendor;const u=this.$store.state.mqtt["openWB/system/configurable/devices_components"]?.[t]?.vendors?.[o]?.devices;return u?Object.entries(u).map(([m,n])=>({value:[o,m],text:n.device_name})).sort((m,n)=>m.text.localeCompare(n.text)):[]}}},methods:{getComponentTypeClass(t){return t.match(/^(.+_)?counter(_.+)?$/)?"danger":t.match(/^(.+_)?inverter(_.+)?$/)?"success":t.match(/^(.+_)?bat(_.+)?$/)?"warning":"dark"},getComponentTypeIcon(t){return t.match(/^(.+_)?counter(_.+)?$/)?["fas","fa-gauge-high"]:t.match(/^(.+_)?inverter(_.+)?$/)?["fas","fa-solar-panel"]:t.match(/^(.+_)?bat(_.+)?$/)?["fas","fa-car-battery"]:["fas","fa-microchip"]},getMyInstalledComponents(t){return this.getWildcardTopics("openWB/system/device/"+t+"/component/+/config")},deviceHasConfiguredComponents(t){return Object.keys(this.getMyInstalledComponents(t)).length>0},addDevice(){this.$emit("sendCommand",{command:"addDevice",data:{vendor:this.deviceToAdd[0],type:this.deviceToAdd[1]}})},removeDeviceModal(t,o,u){u.stopPropagation(),this.modalDevice=t,this.modalDeviceName=o,this.showDeviceRemoveModal=!0},removeDevice(t){this.showDeviceRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeDevice",data:{id:this.modalDevice}})},addComponent(t,o,u,m){this.$emit("sendCommand",{command:"addComponent",data:{deviceId:t,deviceType:u,deviceVendor:o,type:m}})},removeComponentModal(t,o,u,m,n){n.stopPropagation(),this.modalComponent={deviceId:t,id:o,type:u},this.modalComponentName=m,this.showComponentRemoveModal=!0},removeComponent(t){this.showComponentRemoveModal=!1,t=="confirm"&&this.$emit("sendCommand",{command:"removeComponent",data:this.modalComponent})},getComponentList(t,o){if(t===void 0||o===void 0)return[];let u=[];return Object.values(this.$store.state.mqtt["openWB/system/configurable/devices_components"]).every(m=>m.vendors[t]!==void 0?(m.vendors[t].devices[o]!==void 0&&(u=Object.entries(m.vendors[t].devices[o].components).map(([_,c])=>({value:_,text:c.component_name}))),!1):!0),u},updateConfiguration(t,o){console.debug("updateConfiguration",t,o),this.updateState(t,o.value,o.object)}}},le={class:"hardwareInstallation"},Ee={name:"hardwareInstallationForm"},ge={key:0},Ve={key:1},Oe={key:1},Te={key:0};function Ie(t,o,u,m,n,_){const c=p("openwb-base-modal-dialog"),A=p("router-link"),I=p("openwb-base-alert"),P=p("font-awesome-icon"),b=p("openwb-base-avatar"),R=p("openwb-base-text-input"),x=p("openwb-config-proxy"),B=p("openwb-base-heading"),w=p("openwb-base-card"),y=p("openwb-base-select-input"),M=p("openwb-base-submit-buttons");return s(),g(f,null,[d(c,{show:n.showDeviceRemoveModal,title:"Gerät löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeDevice},{default:i(()=>[v(' Willst Du das Gerät "'+O(n.modalDeviceName)+'" inklusive aller Komponenten wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),d(c,{show:n.showComponentRemoveModal,title:"Komponente löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:_.removeComponent},{default:i(()=>[v(' Willst Du die Komponente "'+O(n.modalComponentName)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l("div",le,[l("form",Ee,[u.installAssistantActive?L("",!0):(s(),E(I,{key:0,subtype:"info"},{default:i(()=>[o[7]||(o[7]=v(" Wenn neue Komponenten - insbesondere Zähler - konfiguriert wurden, ist auch das ",-1)),d(A,{to:"/LoadManagementConfiguration"},{default:i(()=>[...o[6]||(o[6]=[v(" Lastmanagement ",-1)])]),_:1}),o[8]||(o[8]=v(" zu prüfen!",-1)),o[9]||(o[9]=l("br",null,null,-1)),o[10]||(o[10]=v(" Je nach Hersteller muss eventuell die Kommunikation im Wechselrichter freigegeben werden (z.B. Aktivierung von Modbus TCP, Portfreigaben o.Ä.) ",-1))]),_:1})),d(w,{title:"Geräte und Komponenten"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(s(),g("div",ge,[d(I,{subtype:"info"},{default:i(()=>[...o[11]||(o[11]=[v(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(s(),g("div",Ve,[(s(!0),g(f,null,k(_.installedDevices,(r,h)=>(s(),E(w,{key:h,collapsible:!0,collapsed:!0,subtype:"dark"},{header:i(()=>[d(P,{icon:["fas","network-wired"]}),v(" "+O(r?.name),1)]),actions:i(a=>[a.collapsed?(s(),g("div",Oe,[(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),V=>(s(),E(b,{key:V?.id,class:Q("ml-1 bg-"+_.getComponentTypeClass(V?.type))},{default:i(()=>[d(P,{icon:_.getComponentTypeIcon(V?.type)},null,8,["icon"])]),_:2},1032,["class"]))),128))])):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:V=>_.removeDeviceModal(r?.id,r?.name,V)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":r?.name,"onUpdate:modelValue":a=>t.updateState(h,a,"name")},null,8,["model-value","onUpdate:modelValue"]),o[19]||(o[19]=l("hr",null,null,-1)),d(x,{device:r,"onUpdate:configuration":a=>_.updateConfiguration(h,a)},null,8,["device","onUpdate:configuration"]),o[20]||(o[20]=l("hr",null,null,-1)),d(B,null,{default:i(()=>[...o[12]||(o[12]=[v("Komponenten",-1)])]),_:1}),_.deviceHasConfiguredComponents(r?.id)?L("",!0):(s(),E(I,{key:0,subtype:"warning"},{default:i(()=>[...o[13]||(o[13]=[v(" Es wurden noch keine Komponenten zu diesem Gerät angelegt. ",-1)])]),_:1})),(s(!0),g(f,null,k(_.getMyInstalledComponents(r?.id),(a,V)=>(s(),E(w,{key:a?.id,collapsible:!0,collapsed:!0,subtype:_.getComponentTypeClass(a?.type)},{header:i(()=>[d(P,{icon:_.getComponentTypeIcon(a?.type)},null,8,["icon"]),v(" "+O(a?.name),1)]),actions:i(T=>[T.collapsed?L("",!0):(s(),E(b,{key:0,class:"bg-danger clickable",onClick:W=>_.removeComponentModal(r?.id,a?.id,a?.type,a?.name,W)},{default:i(()=>[d(P,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[d(R,{title:"Bezeichnung",subtype:"text","model-value":a?.name,"onUpdate:modelValue":T=>t.updateState(V,T,"name")},null,8,["model-value","onUpdate:modelValue"]),d(R,{title:"Hersteller",subtype:"text","model-value":a?.info.manufacturer,"onUpdate:modelValue":T=>t.updateState(V,T,"info.manufacturer")},{help:i(()=>[...o[14]||(o[14]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),d(R,{title:"Modell",subtype:"text","model-value":a?.info.model,"onUpdate:modelValue":T=>t.updateState(V,T,"info.model")},{help:i(()=>[...o[15]||(o[15]=[v(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o[16]||(o[16]=l("hr",null,null,-1)),d(x,{device:r,component:a,"onUpdate:configuration":T=>_.updateConfiguration(V,T)},null,8,["device","component","onUpdate:configuration"])]),_:2},1032,["subtype"]))),128)),o[21]||(o[21]=l("hr",null,null,-1)),_.getComponentList(r?.vendor,r?.type)?.length?(s(),E(y,{key:1,title:"Verfügbare Komponenten","not-selected":"Bitte auswählen",options:_.getComponentList(r?.vendor,r?.type),"model-value":n.componentToAdd[r?.id],"add-button":!0,"onUpdate:modelValue":a=>n.componentToAdd[r?.id]=a,"onInput:add":a=>_.addComponent(r?.id,r?.vendor,r?.type,n.componentToAdd[r?.id])},{help:i(()=>[...o[17]||(o[17]=[v(" Bitte eine Komponente auswählen, die hinzugefügt werden soll. Für jeden Datensatz, z.B. Wechselrichter- und Batteriedaten, muss eine Wechselrichter- und eine Batteriekomponente hinzugefügt werden. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue","onInput:add"])):(s(),E(I,{key:2,subtype:"info"},{default:i(()=>[...o[18]||(o[18]=[v(" Dieses System bietet keine Komponenten zur Installation an. ",-1)])]),_:1}))]),_:2},1024))),128)),Object.keys(_.installedDevices)?.length>0?(s(),g("hr",Te)):L("",!0),d(y,{modelValue:n.selectedVendor,"onUpdate:modelValue":o[0]||(o[0]=r=>n.selectedVendor=r),title:"Hersteller","not-selected":"Bitte auswählen",groups:_.vendorList},null,8,["modelValue","groups"]),d(y,{modelValue:n.deviceToAdd,"onUpdate:modelValue":[o[1]||(o[1]=r=>n.deviceToAdd=r),o[2]||(o[2]=r=>n.deviceToAdd=r)],title:"Verfügbare Geräte","not-selected":"Bitte auswählen",disabled:n.selectedVendor===void 0,options:_.deviceList,"model-value":n.deviceToAdd,"add-button":!0,"onInput:add":_.addDevice},{help:i(()=>[...o[22]||(o[22]=[l("p",null,[v(' Die openWB-Regelung ist auf Werte von Messpunkten (Zähler, Energy Meter usw.) angewiesen. Hierfür werden "Geräte" und "Komponenten" verwendet.'),l("br"),v(' 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),l("p",null,[v(' 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.'),l("br"),v(' Verfügt dagegen jeder Messpunkt über eine eigene IP-Adresse, wird jeder Messpunkt als eigenes "Gerät" mit nur einer "Komponente" angelegt. ')],-1),l("p",null,' Das "Gerät" wird in der Dropdown-Liste ausgewählt und mit "+" der Regelung hinzugefügt. Im Anschluss erfolgt die Konfiguration des "Gerätes" innerhalb des schwarzen "Geräte"-Reiters. ',-1)])]),_:1},8,["modelValue","disabled","options","model-value","onInput:add"])]))]),_:1}),d(M,{"form-name":"hardwareInstallationForm",onSave:o[3]||(o[3]=r=>t.$emit("save",t.mqttTopicsToPublish)),onReset:o[4]||(o[4]=r=>t.$emit("reset")),onDefaults:o[5]||(o[5]=r=>t.$emit("defaults"))})])])],64)}const De=D(ce,[["render",Ie],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/HardwareInstallation.vue"]]),fe=Object.freeze(Object.defineProperty({__proto__:null,default:De},Symbol.toStringTag,{value:"Module"}));export{re as C,j as D,De as H,fe as a}; diff --git a/web/settings/assets/IdentificationConfiguration-BN_nskUK.js b/web/settings/assets/IdentificationConfiguration-D2_DUB2l.js similarity index 99% rename from web/settings/assets/IdentificationConfiguration-BN_nskUK.js rename to web/settings/assets/IdentificationConfiguration-D2_DUB2l.js index 7b8e7d7568..1ca81d9162 100644 --- a/web/settings/assets/IdentificationConfiguration-BN_nskUK.js +++ b/web/settings/assets/IdentificationConfiguration-D2_DUB2l.js @@ -1,2 +1,2 @@ -import{C as _}from"./index-D_eD74fL.js";import{S as y}from"./SystemVersion-DQAfG1DR.js";import{_ as D,l as m,k as i,e as l,x as r,m as s,q as o,A as a,y as u,u as g,K as B,L as w,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const I={name:"IdentificationConfigView",mixins:[_,y],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid_timestamp",writeable:!1},{topic:"openWB/chargepoint/+/get/vehicle_id",writeable:!1},{topic:"openWB/chargepoint/+/set/rfid",writeable:!1},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!0},{topic:"openWB/vehicle/+/charge_template",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0}],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},L={class:"optionalComponents"},q={name:"optionalComponentsForm"},F=["href"],V={key:2},S={key:0},T={key:2},E={key:0};function C(e,t,A,P,N,f){const d=m("openwb-base-alert"),c=m("openwb-base-button-group-input"),z=m("openwb-base-textarea"),v=m("openwb-base-card"),h=m("openwb-base-heading"),W=m("openwb-base-array-input"),$=m("openwb-base-submit-buttons");return i(),l("div",L,[r("form",q,[s(v,{title:"Identifikation"},{default:o(()=>[s(d,{subtype:"info"},{default:o(()=>[r("p",null,[t[4]||(t[4]=a(" Eine ausführliche Anleitung findest Du hier: ",-1)),r("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${e.systemVersion}:software:einstell-konfig:einstellungen:identifikation`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Identifikation ",8,F)]),t[5]||(t[5]=a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1)),t[6]||(t[6]=r("ul",null,[r("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),r("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),r("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1)),t[7]||(t[7]=r("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1)),t[8]||(t[8]=r("p",null,[a(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein Fragezeichen (?) entspricht dabei einem Zeichen, ein Stern (*) beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),r("br"),a(" Es wird davon abgeraten, Muster für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1))]),_:1}),s(c,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info",class:"mt-3"},{default:o(()=>[...t[9]||(t[9]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(z,{key:1,title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":f.idTagList.join(` +import{C as _}from"./index-MVrRMMo2.js";import{S as y}from"./SystemVersion-DQAfG1DR.js";import{_ as D,l as m,k as i,e as l,x as r,m as s,q as o,A as a,y as u,u as g,K as B,L as w,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const I={name:"IdentificationConfigView",mixins:[_,y],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid",writeable:!1},{topic:"openWB/chargepoint/+/get/rfid_timestamp",writeable:!1},{topic:"openWB/chargepoint/+/get/vehicle_id",writeable:!1},{topic:"openWB/chargepoint/+/set/rfid",writeable:!1},{topic:"openWB/chargepoint/template/+",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!0},{topic:"openWB/vehicle/+/charge_template",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0}],tempIdTagList:{}}},computed:{idTagList(){return Object.values(this.updateIdTagList())},chargePointTemplates:{get(){return this.getWildcardTopics("openWB/chargepoint/template/+")}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/name")}}},methods:{getIdFromTopic(e){return e.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,"")},updateIdTagList(){return Object.entries(this.getWildcardTopics("^openWB/chargepoint/[^+/]+/[gs]et/(rfid|vehicle_id)$",!0)).forEach(e=>{e[1]!==null&&(this.tempIdTagList[e[1]]=`${e[1]} (${e[0].includes("/set/")?"zugewiesen":"erfasst"} an ${this.getChargePointName(this.getIdFromTopic(e[0]))})`)}),this.tempIdTagList},getChargePointName(e){return this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"]?this.$store.state.mqtt["openWB/chargepoint/"+e+"/config"].name:"Ladepunkt "+e},getChargePointTemplateIndex(e){return parseInt(e.match(/([^/]+)$/)[0])},getVehicleName(e){return this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+e+"/name"]:"Fahrzeug "+e}}},L={class:"optionalComponents"},q={name:"optionalComponentsForm"},F=["href"],V={key:2},S={key:0},T={key:2},E={key:0};function C(e,t,A,P,N,f){const d=m("openwb-base-alert"),c=m("openwb-base-button-group-input"),z=m("openwb-base-textarea"),v=m("openwb-base-card"),h=m("openwb-base-heading"),W=m("openwb-base-array-input"),$=m("openwb-base-submit-buttons");return i(),l("div",L,[r("form",q,[s(v,{title:"Identifikation"},{default:o(()=>[s(d,{subtype:"info"},{default:o(()=>[r("p",null,[t[4]||(t[4]=a(" Eine ausführliche Anleitung findest Du hier: ",-1)),r("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${e.systemVersion}:software:einstell-konfig:einstellungen:identifikation`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Identifikation ",8,F)]),t[5]||(t[5]=a(" Die Identifikation kann zum Entsperren von Ladepunkten und/oder zur Zuordnung von Fahrzeugen genutzt werden und kann auf mehreren Wegen erfolgen: ",-1)),t[6]||(t[6]=r("ul",null,[r("li",null,"Über einen RFID-Reader (optional in der openWB verbaut, z.B. anhand des Lieferscheins prüfen)."),r("li",null," Durch die automatische Fahrzeugerkennung der openWB Pro/ Pro+ (in den Einstellungen der openWB Pro aktivieren). "),r("li",null,"Durch manuelle Eingabe einer ID an einer openWB mit Display.")],-1)),t[7]||(t[7]=r("p",null,"Bei openWB Pro/Pro+ werden RFID-Tags nur bei angestecktem Fahrzeug erfasst!",-1)),t[8]||(t[8]=r("p",null,[a(" Für die Erkennung kann auch ein Muster (mittels Wildcards) hinterlegt werden. Ein Fragezeichen (?) entspricht dabei einem Zeichen, ein Stern (*) beliebig vielen Zeichen. So ist bspw. die Erkennung von Fahrzeugen mit wechselnder ID (u.a. Fahrzeuge der VW Gruppe) möglich."),r("br"),a(" Es wird davon abgeraten, Muster für die Entsperrung von öffentlich zugänglichen Ladepunkten zu nutzen, um unbefugten Zugriff zu vermeiden. ")],-1))]),_:1}),s(c,{title:"Identifikation aktivieren","model-value":e.$store.state.mqtt["openWB/optional/rfid/active"],buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":t[0]||(t[0]=n=>e.updateState("openWB/optional/rfid/active",n))},null,8,["model-value"]),e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info",class:"mt-3"},{default:o(()=>[...t[9]||(t[9]=[a(' Weitere Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(z,{key:1,title:"Erkannte ID-Tags",readonly:"",disabled:"","model-value":f.idTagList.join(` `)},null,8,["model-value"])):g("",!0)]),_:1}),s(h,null,{default:o(()=>[...t[10]||(t[10]=[a(" Entsperren von Ladepunkten (gekoppelt an Ladepunkt-Profil) ",-1)])]),_:1}),s(v,{title:"Ladepunkt-Profile",collapsible:!0,collapsed:!0},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info"},{default:o(()=>[...t[11]||(t[11]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' Die Konfiguration zum Entsperren von Ladepunkten bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(i(),u(d,{key:1,subtype:"info"},{default:o(()=>[...t[12]||(t[12]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})):(i(),l("div",V,[s(d,{subtype:"info"},{default:o(()=>[...t[13]||(t[13]=[a(" Hier zugeordnete ID-Tags entsperren beim Scannen das jeweilige Ladepunkt-Profil. Der ID-Tag kann an jedem Ladepunkt genutzt werden, dem das entsprechende Ladepunkt-Profil zugeordnet wurde. ",-1)])]),_:1}),(i(!0),l(B,null,w(f.chargePointTemplates,(n,p)=>(i(),l("div",{key:p},[f.getChargePointTemplateIndex(p)!=0?(i(),l("hr",S)):g("",!0),s(h,{class:"mt-0"},{default:o(()=>[a(b(n.name),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(W,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+n.name+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":n.valid_tags,"onUpdate:modelValue":k=>e.updateState(p,k,"valid_tags")},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),s(c,{title:"Sperre nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.disable_after_unplug,"onUpdate:modelValue":k=>e.updateState(p,k,"disable_after_unplug")},{help:o(()=>[a(' Ist "Sperre nach Abstecken" aktiviert, wird der Ladepunkt mit Ladepunkt-Profil "'+b(n.name)+'" nach Abstecken eines Fahrzeugs automatisch gesperrt. Ist die Funktion deaktiviert, bleibt der Ladepunkt entsperrt. ',1)]),_:2},1032,["model-value","onUpdate:modelValue"])]))),128))]))]),_:1}),s(h,null,{default:o(()=>[...t[14]||(t[14]=[a(" Zuordnung von Fahrzeugen ",-1)])]),_:1}),s(v,{title:"Fahrzeuge",subtype:"info",collapsible:!0,collapsed:!0},{default:o(()=>[e.$store.state.mqtt["openWB/general/extern"]===!0?(i(),u(d,{key:0,subtype:"info"},{default:o(()=>[...t[15]||(t[15]=[a(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet.',-1),r("br",null,null,-1),a(' Die Konfiguration zur Fahrzeugzuordnung bitte auf der "primary" openWB durchführen. ',-1)])]),_:1})):e.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(i(),u(d,{key:1,subtype:"info"},{default:o(()=>[...t[16]||(t[16]=[a(" Diese Einstellungen sind nur verfügbar, wenn Identifikation aktiviert ist. ",-1)])]),_:1})):(i(),l("div",T,[s(d,{subtype:"info"},{default:o(()=>[...t[17]||(t[17]=[a(" Hier zugeordnete ID-Tags weisen dem Ladepunkt beim Scannen automatisch das jeweilige Fahrzeug zu. Ist bei Scannen des ID-Tags noch kein Fahrzeug angeschlossen muss dies zeitnah erfolgen, da der ID-Tag nach 5 Minuten verworfen wird. ",-1)])]),_:1}),(i(!0),l(B,null,w(f.vehicleIndexes,n=>(i(),l("div",{key:n},[n!=f.vehicleIndexes[0]?(i(),l("hr",E)):g("",!0),s(h,{class:"mt-0"},{default:o(()=>[a(b(e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]),1)]),_:2},1024),e.$store.state.mqtt["openWB/optional/rfid/active"]===!0?(i(),u(W,{key:1,title:"Zugeordnete ID-Tags","no-elements-message":'"'+e.$store.state.mqtt["openWB/vehicle/"+n+"/name"]+'" sind keine ID-Tags zugeordnet.',pattern:"^[^\\s].*[^\\s]$","model-value":e.$store.state.mqtt["openWB/vehicle/"+n+"/tag_id"],"onUpdate:modelValue":p=>e.updateState("openWB/vehicle/"+n+"/tag_id",p)},null,8,["no-elements-message","model-value","onUpdate:modelValue"])):g("",!0),n!=0?(i(),u(c,{key:2,title:"Standard-Fahrzeug nach Abstecken zuordnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default,"onUpdate:modelValue":p=>e.updateState("openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"],p,"load_default")},{help:o(()=>[a(' Ist diese Option aktiviert, wird am Ladepunkt nach Abstecken auf das Standard-Fahrzeug zurückgesetzt. Die Option ist im Lade-Profil "'+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].name)+'" gespeichert.',1),t[18]||(t[18]=r("br",null,null,-1)),a(' "Standard-Fahrzeug nach Abstecken" ist für alle Fahrzeuge '+b(e.$store.state.mqtt["openWB/vehicle/template/charge_template/"+e.$store.state.mqtt["openWB/vehicle/"+n+"/charge_template"]].load_default===!0?"aktiviert":"deaktiviert")+" , denen dieses Lade-Profil zugeordnet wurde. ",1)]),_:2},1032,["model-value","onUpdate:modelValue"])):g("",!0)]))),128))]))]),_:1}),s($,{"form-name":"optionalComponentsForm",onSave:t[1]||(t[1]=n=>e.$emit("save",e.mqttTopicsToPublish)),onReset:t[2]||(t[2]=n=>e.$emit("reset")),onDefaults:t[3]||(t[3]=n=>e.$emit("defaults"))})])])}const H=D(I,[["render",C],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IdentificationConfiguration.vue"]]);export{H as default}; diff --git a/web/settings/assets/InstallAssistant-C4J4yr5X.js b/web/settings/assets/InstallAssistant-DLIY5fno.js similarity index 64% rename from web/settings/assets/InstallAssistant-C4J4yr5X.js rename to web/settings/assets/InstallAssistant-DLIY5fno.js index bd8673b6d6..19619ab12b 100644 --- a/web/settings/assets/InstallAssistant-C4J4yr5X.js +++ b/web/settings/assets/InstallAssistant-DLIY5fno.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/InstallAssistantStep0-CdrgO-v9.js","assets/index-D_eD74fL.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/InstallAssistantStepTemplate-DXqdRjEv.js","assets/InstallAssistantStepTemplate-DIMIp8sn.css","assets/InstallAssistantStep1-CsFGL7lM.js","assets/DataManagement-C57poL-r.js","assets/dynamic-import-helper-BheWnx7M.js","assets/InstallAssistantStep10-BlCtHrWc.js","assets/InstallAssistantStep2-DEKmkA7t.js","assets/SystemConfiguration-BN4gvHU6.js","assets/SystemConfiguration-BWslT2W-.css","assets/InstallAssistantStep20-7rhZVz9G.js","assets/ChargePointInstallation-BeNMkMOi.js","assets/SystemVersion-DQAfG1DR.js","assets/ChargePointInstallation-37TSBtDo.css","assets/InstallAssistantStep3-aOTEH1Z9.js","assets/GeneralConfiguration-b09cPY_w.js","assets/InstallAssistantStep4-Ct4UOsV9.js","assets/IoConfiguration-hMQZDwaS.js","assets/InstallAssistantStep5-DEDexAYx.js","assets/HardwareInstallation-DrK-NlWu.js","assets/InstallAssistantStep6-ODuKRKj5.js","assets/InstallAssistantStep7--rx4TlHA.js","assets/LoadManagementConfiguration-DKZ9eznX.js","assets/OpenwbSortableList-CSUuyi79.js","assets/OpenwbSortableList-C11EhIQj.css","assets/InstallAssistantStep8-5_UXcXLV.js","assets/VehicleConfiguration-B3d9qly5.js","assets/InstallAssistantStep9-HIXLScoE.js"])))=>i.map(i=>d[i]); -import{C as r,_ as t}from"./index-D_eD74fL.js";import{_}from"./dynamic-import-helper-BheWnx7M.js";import{_ as m,l as p,k as i,e as d,m as u,q as A,A as v,y as E,a2 as I,a1 as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),c({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-CdrgO-v9.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-CsFGL7lM.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-BlCtHrWc.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-DEKmkA7t.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11,17,18])),"../components/install_assistant/InstallAssistantStep20.vue":()=>t(()=>import("./InstallAssistantStep20-7rhZVz9G.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-aOTEH1Z9.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,24,21,14])),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-Ct4UOsV9.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,26,14])),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-DEDexAYx.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,28,14])),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-ODuKRKj5.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7--rx4TlHA.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,11,31,32,33])),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-5_UXcXLV.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10,11,35,14])),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-HIXLScoE.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-DXqdRjEv.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8,9,11]))}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`,4)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,a){const l=p("openwb-base-modal-dialog");return i(),d("div",null,[u(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:a.endAssistant},{default:A(()=>[...n[4]||(n[4]=[v(" Willst Du den Assistenten wirklich vorzeitig beenden? ",-1)])]),_:1},8,["show","onModalResult"]),(i(),E(I(a.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=e=>s.$emit("sendCommand",e)),onSave:n[1]||(n[1]=e=>s.$emit("save",e)),onReset:n[2]||(n[2]=e=>s.$emit("reset")),onDefaults:n[3]||(n[3]=e=>s.$emit("defaults")),onSwitchPage:a.switchPage,onEndAssistant:a.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const O=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{O as default}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/InstallAssistantStep0-DBvPI_yM.js","assets/index-MVrRMMo2.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/InstallAssistantStepTemplate-D7oyrk_N.js","assets/InstallAssistantStepTemplate-DIMIp8sn.css","assets/InstallAssistantStep1-CUcCAaDn.js","assets/DataManagement-lM5_tcaR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/InstallAssistantStep10-CnvGxjV6.js","assets/InstallAssistantStep2-BimXLSB-.js","assets/SystemConfiguration-C-kqn4RK.js","assets/SystemConfiguration-BWslT2W-.css","assets/InstallAssistantStep20-Bl6LbGVo.js","assets/ChargePointInstallation-Cmc7sApi.js","assets/SystemVersion-DQAfG1DR.js","assets/ChargePointInstallation-37TSBtDo.css","assets/InstallAssistantStep3-DN9k42g8.js","assets/GeneralConfiguration-d2XsWBRc.js","assets/InstallAssistantStep4-DKMqhBf-.js","assets/IoConfiguration-CuIvy4Hb.js","assets/InstallAssistantStep5-Cv6-_Kq3.js","assets/HardwareInstallation-DW5TYu17.js","assets/InstallAssistantStep6-DJNqrH3b.js","assets/InstallAssistantStep7-1vUjaedx.js","assets/LoadManagementConfiguration-DkVfCmRF.js","assets/OpenwbSortableList-B4YWn8p9.js","assets/OpenwbSortableList-C11EhIQj.css","assets/InstallAssistantStep8-CRhJhWLx.js","assets/VehicleConfiguration-DZuJgE9z.js","assets/InstallAssistantStep9-DRxmVHSA.js"])))=>i.map(i=>d[i]); +import{C as r,_ as t}from"./index-MVrRMMo2.js";import{_}from"./dynamic-import-helper-BheWnx7M.js";import{_ as m,l as p,k as i,e as d,m as u,q as A,A as v,y as E,a2 as I,a1 as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const P={name:"InstallAssistantView",mixins:[r],emits:["sendCommand","save","reset","defaults"],data(){return{currentPage:0,lastPage:10,showEndAssistantModal:!1}},methods:{getInstallAssistantStepComponent(){return console.debug(`loading assistant page: ${this.currentPage}`),c({loader:()=>_(Object.assign({"../components/install_assistant/InstallAssistantStep0.vue":()=>t(()=>import("./InstallAssistantStep0-DBvPI_yM.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep1.vue":()=>t(()=>import("./InstallAssistantStep1-CUcCAaDn.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStep10.vue":()=>t(()=>import("./InstallAssistantStep10-CnvGxjV6.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10,11])),"../components/install_assistant/InstallAssistantStep2.vue":()=>t(()=>import("./InstallAssistantStep2-BimXLSB-.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10,11,17,18])),"../components/install_assistant/InstallAssistantStep20.vue":()=>t(()=>import("./InstallAssistantStep20-Bl6LbGVo.js"),__vite__mapDeps([19,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep3.vue":()=>t(()=>import("./InstallAssistantStep3-DN9k42g8.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10,11,24,21,14])),"../components/install_assistant/InstallAssistantStep4.vue":()=>t(()=>import("./InstallAssistantStep4-DKMqhBf-.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10,11,26,14])),"../components/install_assistant/InstallAssistantStep5.vue":()=>t(()=>import("./InstallAssistantStep5-Cv6-_Kq3.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10,11,28,14])),"../components/install_assistant/InstallAssistantStep6.vue":()=>t(()=>import("./InstallAssistantStep6-DJNqrH3b.js"),__vite__mapDeps([29,1,2,3,4,5,6,7,8,9,10,11,20,21,14,22])),"../components/install_assistant/InstallAssistantStep7.vue":()=>t(()=>import("./InstallAssistantStep7-1vUjaedx.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10,11,31,32,33])),"../components/install_assistant/InstallAssistantStep8.vue":()=>t(()=>import("./InstallAssistantStep8-CRhJhWLx.js"),__vite__mapDeps([34,1,2,3,4,5,6,7,8,9,10,11,35,14])),"../components/install_assistant/InstallAssistantStep9.vue":()=>t(()=>import("./InstallAssistantStep9-DRxmVHSA.js"),__vite__mapDeps([36,1,2,3,4,5,6,7,8,9,10,11,13,14])),"../components/install_assistant/InstallAssistantStepTemplate.vue":()=>t(()=>import("./InstallAssistantStepTemplate-D7oyrk_N.js"),__vite__mapDeps([10,1,2,3,4,5,6,7,8,9,11]))}),`../components/install_assistant/InstallAssistantStep${this.currentPage}.vue`,4)})},switchPage(s){s>=0&&s<=this.lastPage?this.currentPage=s:console.error(`invalid assistant page number: ${s}`)},endAssistantModal(){this.currentPage!=this.lastPage?this.showEndAssistantModal=!0:this.endAssistant("confirm")},endAssistant(s){this.showEndAssistantModal=!1,s=="confirm"&&(this.updateState("openWB/system/installAssistantDone",!0),this.$root.doPublish("openWB/set/system/installAssistantDone",!0),this.$router.push("/Status"))}}};function S(s,n,f,g,o,a){const l=p("openwb-base-modal-dialog");return i(),d("div",null,[u(l,{show:o.showEndAssistantModal,title:"Assistent beenden",subtype:"danger",buttons:[{text:"Beenden",event:"confirm",subtype:"danger"}],onModalResult:a.endAssistant},{default:A(()=>[...n[4]||(n[4]=[v(" Willst Du den Assistenten wirklich vorzeitig beenden? ",-1)])]),_:1},8,["show","onModalResult"]),(i(),E(I(a.getInstallAssistantStepComponent()),{onSendCommand:n[0]||(n[0]=e=>s.$emit("sendCommand",e)),onSave:n[1]||(n[1]=e=>s.$emit("save",e)),onReset:n[2]||(n[2]=e=>s.$emit("reset")),onDefaults:n[3]||(n[3]=e=>s.$emit("defaults")),onSwitchPage:a.switchPage,onEndAssistant:a.endAssistantModal},null,40,["onSwitchPage","onEndAssistant"]))])}const O=m(P,[["render",S],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/InstallAssistant.vue"]]);export{O as default}; diff --git a/web/settings/assets/InstallAssistantStep0-CdrgO-v9.js b/web/settings/assets/InstallAssistantStep0-DBvPI_yM.js similarity index 95% rename from web/settings/assets/InstallAssistantStep0-CdrgO-v9.js rename to web/settings/assets/InstallAssistantStep0-DBvPI_yM.js index f9dec91ebe..31c5817663 100644 --- a/web/settings/assets/InstallAssistantStep0-CdrgO-v9.js +++ b/web/settings/assets/InstallAssistantStep0-DBvPI_yM.js @@ -1 +1 @@ -import{C as m}from"./index-D_eD74fL.js";import g from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,l as i,k as c,y as w,q as r,m as a,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopics:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,P,v,t){const l=i("openwb-base-modal-dialog"),d=i("FontAwesomeIcon"),u=i("InstallAssistantStepTemplate");return c(),w(u,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>[...e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])]),_:1},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(d,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const D=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{D as default}; +import{C as m}from"./index-MVrRMMo2.js";import g from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,l as i,k as c,y as w,q as r,m as a,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const A={name:"InstallAssistantStep0",components:{InstallAssistantStepTemplate:g,FontAwesomeIcon:f},mixins:[m],emits:["switchPage","endAssistant"],data:()=>({mqttTopics:[],showModalWarning:!1}),methods:{requestNextPage(){this.showModalWarning=!0},nextPage(s){this.showModalWarning=!1,s==="confirm"&&this.$emit("switchPage",1)},previousPage(){},endAssistant(){this.$emit("endAssistant")}}},b={class:"font-weight-bold"};function k(s,e,x,P,v,t){const l=i("openwb-base-modal-dialog"),d=i("FontAwesomeIcon"),u=i("InstallAssistantStepTemplate");return c(),w(u,{title:"Start","hide-previous":!0,onNextPage:t.requestNextPage,onPreviousPage:t.previousPage,onEndAssistant:t.endAssistant},{content:r(()=>[a(l,{show:s.showModalWarning,title:"Achtung!",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"success"}],onModalResult:e[0]||(e[0]=p=>t.nextPage(p))},{default:r(()=>[...e[1]||(e[1]=[o(" Bevor der Assistent gestartet wird, ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)])]),_:1},8,["show"]),e[4]||(e[4]=n("h2",null,"Vielen Dank, dass Du Dich für openWB entschieden hast.",-1)),e[5]||(e[5]=n("p",null,"Dieser Assistent führt durch die Konfiguration der einzelnen Module:",-1)),e[6]||(e[6]=n("ol",null,[n("li",null,"Datensicherung der bestehenden Konfiguration"),n("li",null,"Aktualisierung des openWB-Systems"),n("li",null,"Allgemeine Einstellungen: Auswahl des Betriebsmodus primary (steuernd) bzw. secondary (gesteuerte WB)")],-1)),e[7]||(e[7]=n("p",null," Wird diese openWB als secondary betrieben, so werden nur die lokalen Ladepunkte eingerichtet. Im Betriebsmodus primary werden die folgenden zusätzlichen Schritte durchlaufen: ",-1)),e[8]||(e[8]=n("ol",{start:"4"},[n("li",null,"Ein- und Ausgänge konfigurieren"),n("li",null,"Energiesystem - Geräte und Komponenten einrichten"),n("li",null,"Einrichten der Ladepunkte (openWB als primary)"),n("li",null,"Konfiguration des Lastmanagements"),n("li",null,"Einrichten der Fahrzeuge"),n("li",null,"Datensicherung der neuen Konfiguration")],-1)),e[9]||(e[9]=n("p",null,"Danach ist die Grundkonfiguration abgeschlossen.",-1)),n("p",b,[e[2]||(e[2]=o(" Bitte während der Einrichtung auch die jeweiligen Hilfstexte lesen, welche durch Klick auf ",-1)),a(d,{icon:["far","question-circle"]}),e[3]||(e[3]=o(" erscheinen. Hier sind weiterführende Informationen zu den Eingabefeldern zu finden. ",-1))])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const D=h(A,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep0.vue"]]);export{D as default}; diff --git a/web/settings/assets/InstallAssistantStep1-CsFGL7lM.js b/web/settings/assets/InstallAssistantStep1-CUcCAaDn.js similarity index 89% rename from web/settings/assets/InstallAssistantStep1-CsFGL7lM.js rename to web/settings/assets/InstallAssistantStep1-CUcCAaDn.js index 1371e51d50..bc198acc54 100644 --- a/web/settings/assets/InstallAssistantStep1-CsFGL7lM.js +++ b/web/settings/assets/InstallAssistantStep1-CUcCAaDn.js @@ -1 +1 @@ -import{C as m}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{D as l}from"./DataManagement-C57poL-r.js";import{_ as d,l as a,k as u,y as g,q as o,m as f,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(s,e,c,w,S,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[v("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])]),content:o(()=>[f(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; +import{C as m}from"./index-MVrRMMo2.js";import p from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{D as l}from"./DataManagement-lM5_tcaR.js";import{_ as d,l as a,k as u,y as g,q as o,m as f,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep1",components:{InstallAssistantStepTemplate:p,DataManagement:l},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",2)},previousPage(){this.$emit("switchPage",0)},endAssistant(){this.$emit("endAssistant")}}};function P(s,e,c,w,S,n){const i=a("DataManagement"),r=a("InstallAssistantStepTemplate");return u(),g(r,{title:"1. Datensicherung der bestehenden Konfiguration",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...e[4]||(e[4]=[v("p",null," Wir empfehlen an dieser Stelle eine Sicherung der openWB zu erstellen, auf welche später zurückgegriffen werden kann, insbesondere, wenn die openWB schon konfiguriert war und der Assistent nun erneut ausgeführt wird. ",-1)])]),content:o(()=>[f(i,{"install-assistant-active":!0,"show-backup-cloud-section":!1,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const N=d(A,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep1.vue"]]);export{N as default}; diff --git a/web/settings/assets/InstallAssistantStep10-BlCtHrWc.js b/web/settings/assets/InstallAssistantStep10-CnvGxjV6.js similarity index 91% rename from web/settings/assets/InstallAssistantStep10-BlCtHrWc.js rename to web/settings/assets/InstallAssistantStep10-CnvGxjV6.js index 399c01a561..86a7953689 100644 --- a/web/settings/assets/InstallAssistantStep10-BlCtHrWc.js +++ b/web/settings/assets/InstallAssistantStep10-CnvGxjV6.js @@ -1 +1 @@ -import{C as a}from"./index-D_eD74fL.js";import o from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{_ as r,l,k as m,y as p,q as d,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const g={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopics:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function u(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>[...s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(g,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; +import{C as a}from"./index-MVrRMMo2.js";import o from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{_ as r,l,k as m,y as p,q as d,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const g={name:"InstallAssistantStep10",components:{InstallAssistantStepTemplate:o},mixins:[a],emits:["switchPage","endAssistant","sendCommand"],data:()=>({mqttTopics:[]}),methods:{nextPage(){},previousPage(){this.$emit("switchPage",9)},sendCommand(t){this.$emit("sendCommand",t)},endAssistant(){this.$emit("endAssistant")}}};function u(t,s,c,f,A,e){const i=l("InstallAssistantStepTemplate");return m(),p(i,{title:"Abgeschlossen","hide-next":!0,onNextPage:e.nextPage,onPreviousPage:e.previousPage,onEndAssistant:e.endAssistant},{content:d(()=>[...s[0]||(s[0]=[n("h2",null,"Die Grundkonfiguration ist abgeschlossen.",-1),n("p",null," Die grundlegende Konfiguration der openWB ist abgeschlossen. Du wirst mit Beendigung dieses Assistenten auf die Statusseite weitergeleitet. Bitte überprüfe die dargestellten Informationen und passe bei Unstimmigkeiten die Einstellungen in den jeweiligen Konfigurationsseiten an (openWB -> Einstellungen -> Konfiguration). ",-1)])]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const w=r(g,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep10.vue"]]);export{w as default}; diff --git a/web/settings/assets/InstallAssistantStep2-DEKmkA7t.js b/web/settings/assets/InstallAssistantStep2-BimXLSB-.js similarity index 89% rename from web/settings/assets/InstallAssistantStep2-DEKmkA7t.js rename to web/settings/assets/InstallAssistantStep2-BimXLSB-.js index 05f7f0a0a2..8fc43f3044 100644 --- a/web/settings/assets/InstallAssistantStep2-DEKmkA7t.js +++ b/web/settings/assets/InstallAssistantStep2-BimXLSB-.js @@ -1 +1 @@ -import{C as l}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import d from"./SystemConfiguration-BN4gvHU6.js";import{_ as u,l as i,k as f,y as g,q as o,m as S,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const w={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function A(s,t,v,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...t[4]||(t[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null," Bitte warten, bis die Versionsliste aktualisiert wurde. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ",-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])]),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:t[0]||(t[0]=e=>s.$emit("sendCommand",e)),onSave:t[1]||(t[1]=e=>s.$emit("save",e)),onReset:t[2]||(t[2]=e=>s.$emit("reset")),onDefaults:t[3]||(t[3]=e=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(w,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{I as default}; +import{C as l}from"./index-MVrRMMo2.js";import p from"./InstallAssistantStepTemplate-D7oyrk_N.js";import d from"./SystemConfiguration-C-kqn4RK.js";import{_ as u,l as i,k as f,y as g,q as o,m as S,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const w={name:"InstallAssistantStep2",components:{InstallAssistantStepTemplate:p,SystemView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",3)},previousPage(){this.$emit("switchPage",1)},endAssistant(){this.$emit("endAssistant")}}};function A(s,t,v,P,c,n){const r=i("SystemView"),m=i("InstallAssistantStepTemplate");return f(),g(m,{title:"2. Aktualisierung des openWB-Systems",onNextPage:n.nextPage,onPreviousPage:n.previousPage,onEndAssistant:n.endAssistant},{help:o(()=>[...t[4]||(t[4]=[a("p",null,"Bitte ein System-Update durchführen, um die Software auf den neuesten Stand zu bringen.",-1),a("p",null," Bitte warten, bis die Versionsliste aktualisiert wurde. Falls ein Update verfügbar ist, wird der Update-Button grün (zum Update bereit). ",-1),a("p",null,' Ein Klick auf "Update" startet die Aktualisierung, welche auch einen automatischen Reboot initiiert (bitte ca. 5 Minuten warten). Danach muss der Assistent neu gestartet werden. ',-1)])]),content:o(()=>[S(r,{"install-assistant-active":!0,onSendCommand:t[0]||(t[0]=e=>s.$emit("sendCommand",e)),onSave:t[1]||(t[1]=e=>s.$emit("save",e)),onReset:t[2]||(t[2]=e=>s.$emit("reset")),onDefaults:t[3]||(t[3]=e=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const I=u(w,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep2.vue"]]);export{I as default}; diff --git a/web/settings/assets/InstallAssistantStep20-7rhZVz9G.js b/web/settings/assets/InstallAssistantStep20-Bl6LbGVo.js similarity index 91% rename from web/settings/assets/InstallAssistantStep20-7rhZVz9G.js rename to web/settings/assets/InstallAssistantStep20-Bl6LbGVo.js index 9e2ba088a1..064701dd90 100644 --- a/web/settings/assets/InstallAssistantStep20-7rhZVz9G.js +++ b/web/settings/assets/InstallAssistantStep20-Bl6LbGVo.js @@ -1 +1 @@ -import{C as l}from"./index-D_eD74fL.js";import d from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{b as m}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function k(s,e,v,B,c,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),t("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),t("p",null,' Trage unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wähle die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),t("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(P,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep20.vue"]]);export{z as default}; +import{C as l}from"./index-MVrRMMo2.js";import d from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{b as m}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:d,ChargePointInstallationView:m},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function k(s,e,v,B,c,i){const r=a("ChargePointInstallationView"),p=a("InstallAssistantStepTemplate");return g(),f(p,{title:"4. Einrichten der Ladepunkte (openWB als secondary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,' Diese openWB wurde als "secondary" eingestellt und wird von einer anderen openWB oder standalone ferngesteuert. ',-1),t("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),t("p",null,' Trage unter Ladepunkte bei verfügbare Ladepunkte "Interne openWB" ein und wähle die Bauart der openWB (z.B. openWB series 1/2 custom, Standard (+), Buchse oder Pro+) aus. ',-1),t("p",null,"Wenn eine openWB Duo gewählt wird, so sind zwei Ladepunkte mit Ladepunkt-Nummer 1 und 2 zu konfigurieren.",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const z=u(P,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep20.vue"]]);export{z as default}; diff --git a/web/settings/assets/InstallAssistantStep3-aOTEH1Z9.js b/web/settings/assets/InstallAssistantStep3-DN9k42g8.js similarity index 91% rename from web/settings/assets/InstallAssistantStep3-aOTEH1Z9.js rename to web/settings/assets/InstallAssistantStep3-DN9k42g8.js index 110871122d..4124031a46 100644 --- a/web/settings/assets/InstallAssistantStep3-aOTEH1Z9.js +++ b/web/settings/assets/InstallAssistantStep3-DN9k42g8.js @@ -1 +1 @@ -import{C as p}from"./index-D_eD74fL.js";import d from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{G as m}from"./GeneralConfiguration-b09cPY_w.js";import{_ as u,l as i,k as g,y as f,q as r,m as w,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigurationView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:4)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function P(n,e,S,A,c,s){const o=i("GeneralConfigurationView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>[...e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=u(k,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{E as default}; +import{C as p}from"./index-MVrRMMo2.js";import d from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{G as m}from"./GeneralConfiguration-d2XsWBRc.js";import{_ as u,l as i,k as g,y as f,q as r,m as w,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"InstallAssistantStep3",components:{InstallAssistantStepTemplate:d,GeneralConfigurationView:m},mixins:[p],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),methods:{nextPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:4)},previousPage(){this.$emit("switchPage",2)},endAssistant(){this.$emit("endAssistant")}}};function P(n,e,S,A,c,s){const o=i("GeneralConfigurationView"),l=i("InstallAssistantStepTemplate");return g(),f(l,{title:"3. Auswahl des Steuerungsmodus",onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:r(()=>[...e[4]||(e[4]=[a("p",null,' Hier festlegen, ob die openWB als "steuernd" (primary) oder als ferngesteuert (secondary) arbeiten soll. Die Einstellung gilt für genau die WB, auf der aktuell konfiguriert wird (korrekte IP-Adresse beachten). ',-1),a("p",null," Eine openWB standalone hat keinen Ladepunkt und arbeitet nur als Steuerteil (primary). Eine openWB Standard(+), custom, Duo (2 Ladepunkte) und Buchse können sowohl als steuernde primary oder als ferngesteuerte secondary betrieben werden. Eine openWB Pro und Satellit können nur als s.g. Ladepunkt genutzt werden und benötigen zwingend einen separaten primary als Steuerteil. ",-1),a("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=u(k,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep3.vue"]]);export{E as default}; diff --git a/web/settings/assets/InstallAssistantStep4-Ct4UOsV9.js b/web/settings/assets/InstallAssistantStep4-DKMqhBf-.js similarity index 91% rename from web/settings/assets/InstallAssistantStep4-Ct4UOsV9.js rename to web/settings/assets/InstallAssistantStep4-DKMqhBf-.js index 9371766eab..9b842b56df 100644 --- a/web/settings/assets/InstallAssistantStep4-Ct4UOsV9.js +++ b/web/settings/assets/InstallAssistantStep4-DKMqhBf-.js @@ -1 +1 @@ -import{C as l}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{I as d}from"./IoConfiguration-hMQZDwaS.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const S={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(s,e,A,h,P,i){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),t("p",{class:"font-weight-bold"},"Optional:",-1),t("p",null,[c(" Wird die openWB nicht als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet, "),t("span",{class:"font-weight-bold"},"kann dieser Schritt übersprungen werden.")],-1),t("p",null," Soll die openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const W=u(S,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{W as default}; +import{C as l}from"./index-MVrRMMo2.js";import p from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{I as d}from"./IoConfiguration-CuIvy4Hb.js";import{_ as u,l as a,k as g,y as f,q as o,m as w,x as t,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const S={name:"InstallAssistantStep4",components:{InstallAssistantStepTemplate:p,IoConfigView:d},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",5)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(s,e,A,h,P,i){const r=a("IoConfigView"),m=a("InstallAssistantStepTemplate");return g(),f(m,{title:"4. Ein- und Ausgänge konfigurieren",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:o(()=>[...e[4]||(e[4]=[t("p",null,'Diese openWB ist als "primary" konfiguriert und übernimmt die Regelung des Systems.',-1),t("p",{class:"font-weight-bold"},"Optional:",-1),t("p",null,[c(" Wird die openWB nicht als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet, "),t("span",{class:"font-weight-bold"},"kann dieser Schritt übersprungen werden.")],-1),t("p",null," Soll die openWB als Energiemanagementsystem für steuerbare Verbrauchseinrichtungen (SteuVE) gemäß §14a EnWG verwendet werden, so ist für die VNB-Signaleingänge die entsprechende Hardware auszuwählen. ",-1),t("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:o(()=>[w(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=n=>s.$emit("sendCommand",n)),onSave:e[1]||(e[1]=n=>s.$emit("save",n)),onReset:e[2]||(e[2]=n=>s.$emit("reset")),onDefaults:e[3]||(e[3]=n=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const W=u(S,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep4.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStep5-DEDexAYx.js b/web/settings/assets/InstallAssistantStep5-Cv6-_Kq3.js similarity index 92% rename from web/settings/assets/InstallAssistantStep5-DEDexAYx.js rename to web/settings/assets/InstallAssistantStep5-Cv6-_Kq3.js index 30af514b66..821c259507 100644 --- a/web/settings/assets/InstallAssistantStep5-DEDexAYx.js +++ b/web/settings/assets/InstallAssistantStep5-Cv6-_Kq3.js @@ -1 +1 @@ -import{C as d}from"./index-D_eD74fL.js";import m from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{H as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as r,k as g,y as w,q as a,m as f,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(n,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const x=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{x as default}; +import{C as d}from"./index-MVrRMMo2.js";import m from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{H as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as r,k as g,y as w,q as a,m as f,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"InstallAssistantStep5",components:{InstallAssistantStepTemplate:m,HardwareInstallationView:p},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",6)},previousPage(){this.$emit("switchPage",3)},endAssistant(){this.$emit("endAssistant")}}};function v(n,e,c,A,P,i){const o=r("HardwareInstallationView"),l=r("InstallAssistantStepTemplate");return g(),w(l,{title:"5. Energiesystem - Geräte und Komponenten einrichten",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[...e[4]||(e[4]=[s("p",null," Für die Regelung werden aktuelle Leistungswerte des EVU-Zählers, der PV-Anlage und ggf. eines Speichers benötigt. ",-1),s("p",null," Sofern das System nicht zurückgesetzt wurde, ist im Auslieferungszustand für erste Ladetests ein virtueller Zähler vorkonfiguriert. Dieser muss zuerst gelöscht werden, wenn das im Gebäude installierte Energiesystem konfiguriert wird. ",-1),s("p",null," Alle Komponenten, welche über die gleiche IP-Adresse erreichbar sind werden als ein Gerät verstanden. Dieses Gerät ist über den Herstellernamen des Energiesystems im Auswahlmenü der verfügbaren Geräte auszuwählen. Unterhalb des Gerätes werden die zugehörigen Komponenten EVU-Zähler, WR und Speicher konfiguriert. Es können je nach Bedarf beliebig viele Geräte und Komponenten miteinander kombiniert werden. ",-1),s("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:a(()=>[f(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const x=u(h,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep5.vue"]]);export{x as default}; diff --git a/web/settings/assets/InstallAssistantStep6-ODuKRKj5.js b/web/settings/assets/InstallAssistantStep6-DJNqrH3b.js similarity index 94% rename from web/settings/assets/InstallAssistantStep6-ODuKRKj5.js rename to web/settings/assets/InstallAssistantStep6-DJNqrH3b.js index 98368c703d..e039dcaeac 100644 --- a/web/settings/assets/InstallAssistantStep6-ODuKRKj5.js +++ b/web/settings/assets/InstallAssistantStep6-DJNqrH3b.js @@ -1 +1 @@ -import{C as d}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{b as u}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as m,l as a,k as h,y as g,q as r,m as w,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:p,ChargePointInstallationView:u},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(s,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const C=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{C as default}; +import{C as d}from"./index-MVrRMMo2.js";import p from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{b as u}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as m,l as a,k as h,y as g,q as r,m as w,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep6",components:{InstallAssistantStepTemplate:p,ChargePointInstallationView:u},mixins:[d],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",7)},previousPage(){this.$emit("switchPage",5)},endAssistant(){this.$emit("endAssistant")}}};function f(s,e,c,b,k,i){const o=a("ChargePointInstallationView"),l=a("InstallAssistantStepTemplate");return h(),g(l,{title:"6. Einrichten der Ladepunkte (openWB als primary)",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null,' Enthält die steuernde openWB (primary) Ladetechnik, wird bei "Verfügbare Ladepunkte" "Interne openWB" ausgewählt. Weitere LP werden im primary als "Secondary openWB" oder andere WB-Typen wie "openWB Pro", "openwB Satellit" eingebunden. ',-1),n("p",null,"Bei openWBs ab Werk ist hier bereits ein Ladepunkt eingetragen.",-1),n("p",null," Nachfolgend werden die Eigenschaften des Ladepunktes wie IP-Adresse und elektrischer Anschluss definiert. Die meisten openWB werden 3-phasig angeschlossen! Bei mehreren Ladepunkten ist auf phasenrotierten Anschluss der openWB-Zuleitung zu achten! Abschließend wird die korrekte Zuordnung der Phase 1 des Ladekabels zur zugehörigen EVU-Zählerphase konfiguriert. Dies ist sehr wichtig, um optimales Lastmanagement sicherzustellen! ",-1),n("p",null," Tipp zur Zuordnung: Verwende ein nur 1-phasig ladendes Auto (z.B. Hybrid) oder stelle bei openWB mit 1p3p-Phasenumschaltung temporär unter Sofortladen (s. Einstellungen -> Ladeeinstellungen) auf einphasig, um eine 1-phasige Ladung zu erzwingen. Gehe unter Status und vergleiche die Leistungen bzw. Ströme der 3 Phasen am EVU-Zähler (rot) beim und nach dem Autoladen (Sofortladen mit 16A/ Stop). Diejenige EVU-Phase, die deutlich erhöhte Werte anzeigt, ist die auszuwählende EVU-Phase. ",-1),n("p",null,' Im grauen Abschnitt "Ladepunkt-Profile" können neben dem Standard-Ladepunkt-Profil auch weitere Ladepunkt-Profile, die andere WB-Typen abbilden, erstellt werden. Dort sind Eintragungen bzgl. des Ladepunkt-Maximalstroms bei einer Phase bzw. mehreren Phasen vorzunehmen. Die Profile werden abschließend im jeweiligen blauen Ladepunkt mittels Auswahlmenü zugeordnet. ',-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[w(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const C=m(P,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep6.vue"]]);export{C as default}; diff --git a/web/settings/assets/InstallAssistantStep7--rx4TlHA.js b/web/settings/assets/InstallAssistantStep7-1vUjaedx.js similarity index 91% rename from web/settings/assets/InstallAssistantStep7--rx4TlHA.js rename to web/settings/assets/InstallAssistantStep7-1vUjaedx.js index ab0cd8a8a2..19c1de3f32 100644 --- a/web/settings/assets/InstallAssistantStep7--rx4TlHA.js +++ b/web/settings/assets/InstallAssistantStep7-1vUjaedx.js @@ -1 +1 @@ -import{C as l}from"./index-D_eD74fL.js";import m from"./InstallAssistantStepTemplate-DXqdRjEv.js";import u from"./LoadManagementConfiguration-DKZ9eznX.js";import{_ as p,l as a,k as g,y as h,q as r,m as c,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./OpenwbSortableList-CSUuyi79.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigurationView:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(s,e,S,w,A,i){const o=a("LoadManagementConfigurationView"),d=a("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{$ as default}; +import{C as l}from"./index-MVrRMMo2.js";import m from"./InstallAssistantStepTemplate-D7oyrk_N.js";import u from"./LoadManagementConfiguration-DkVfCmRF.js";import{_ as p,l as a,k as g,y as h,q as r,m as c,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./OpenwbSortableList-B4YWn8p9.js";const f={name:"InstallAssistantStep7",components:{InstallAssistantStepTemplate:m,LoadManagementConfigurationView:u},mixins:[l],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",8)},previousPage(){this.$emit("switchPage",6)},endAssistant(){this.$emit("endAssistant")}}};function b(s,e,S,w,A,i){const o=a("LoadManagementConfigurationView"),d=a("InstallAssistantStepTemplate");return g(),h(d,{title:"7. Konfiguration des Lastmanagements",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:r(()=>[...e[4]||(e[4]=[n("p",null," Im Lastmanagement werden die maximale Leistung sowie die maximalen Ströme für jede Phase des Zählermoduls sowie bei Hybrid-Systemen (per DC-angebundener Speicher) die maximale Ausgangsleistung des Wechselrichters der PV-Anlage eingetragen, falls eine solche vorhanden ist. ",-1),n("p",null,' Der erste Zähler ist in der Regel der Zähler am EVU-Punkt (Position des PV/Speicher-Smartmeters direkt hinter dem VNB-Zähler). In openWB ist hierzu auf die unterhalb der "Vorhandene Zählermodule" liegende (rote) EVU-Zähler-Komponente zu klicken, in welche die maximale EVU-Leistung sowie die Phasenströme eingetragen werden, für die der Hausanschluss abgesichert ist (Elektriker fragen, typisch f. EFH: 24kW/3x35A, 43kW/3x63A). ',-1),n("p",null," Ist ein Wechselrichter mit DC-angebundenem Speicher unter Geräte hinzugefügt worden, dann ist unter der (grünen) WR-Komponente noch die maximale Ausgangsleistung des WR einzutragen. ",-1),n("p",null,' Der EVU-Zähler (rot) schließt alle weiteren Komponenten wie WR und Speicher unter sich ein. Bei AC-eingebundenen Speichern befinden sich WR und Speicher in derselben Ebene, bei DC-eingebundenen Speichern (Hybrid) der Speicher unterhalb des WR. Die Ladepunkte (z.B. "secondary openWB") befinden sich auf derselben Ebene wie der WR und unterhalb des EVU-Zählers. Anpassungen der Anordnungen sind über die Pfeil-Bereiche der Komponenten durch einfaches Verschieben mit der Maus oder am Smartphone möglich. ',-1),n("p",null,null,-1),n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1)])]),content:r(()=>[c(o,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const $=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep7.vue"]]);export{$ as default}; diff --git a/web/settings/assets/InstallAssistantStep8-5_UXcXLV.js b/web/settings/assets/InstallAssistantStep8-CRhJhWLx.js similarity index 93% rename from web/settings/assets/InstallAssistantStep8-5_UXcXLV.js rename to web/settings/assets/InstallAssistantStep8-CRhJhWLx.js index 53510f051d..6bcd547663 100644 --- a/web/settings/assets/InstallAssistantStep8-5_UXcXLV.js +++ b/web/settings/assets/InstallAssistantStep8-CRhJhWLx.js @@ -1 +1 @@ -import{C as g}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{a as h}from"./VehicleConfiguration-B3d9qly5.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as z,l as r,k as w,y as P,q as a,m as o,x as n,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigurationView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(s,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigurationView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=d(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),o(l,{icon:["far","question-circle"]}),e[5]||(e[5]=d(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[o(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{E as default}; +import{C as g}from"./index-MVrRMMo2.js";import p from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{a as h}from"./VehicleConfiguration-DZuJgE9z.js";import{F as f}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as z,l as r,k as w,y as P,q as a,m as o,x as n,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"InstallAssistantStep8",components:{InstallAssistantStepTemplate:p,VehicleConfigurationView:h,FontAwesomeIcon:f},mixins:[g],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[]}),methods:{nextPage(){this.$emit("switchPage",9)},previousPage(){this.$emit("switchPage",7)},endAssistant(){this.$emit("endAssistant")}}},F={class:"font-weight-bold"};function v(s,e,c,S,V,i){const l=r("FontAwesomeIcon"),u=r("VehicleConfigurationView"),m=r("InstallAssistantStepTemplate");return w(),P(m,{title:"8. Einrichten der Fahrzeuge",onNextPage:i.nextPage,onPreviousPage:i.previousPage,onEndAssistant:i.endAssistant},{help:a(()=>[e[6]||(e[6]=n("p",null,"Vor dem eigentlichen Fahrzeug werden zuerst die Fahrzeug- und Lade-Profile konfiguriert.",-1)),e[7]||(e[7]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Fahrzeug-Profil aus. Bei mehreren Fahrzeugtypen werden weitere Fahrzeug-Profile hinzugefügt. Im Anschluss werden die Fahrzeug-Profile mit den passenden Einstellungen des Fahrzeugtyps versehen (Mindeststromstärke, Maximalstromstärke bei einer/mehreren Phase/n sowie Angaben zur Batterie und Handhabung der Phasen entsprechend den Daten des Automobilherstellers. Im Zweifelsfall den Hersteller des Autos oder im openWB-Forum nachfragen). ",-1)),n("p",F,[e[4]||(e[4]=d(' Wichtig: Die "Angaben zur Handhabung von Phasen" des Fahrzeugs sind richtig einzutragen! Beachte die Hilfstexte, die Du durch Klick auf ',-1)),o(l,{icon:["far","question-circle"]}),e[5]||(e[5]=d(" anzeigen kannst. ",-1))]),e[8]||(e[8]=n("p",null," Bei nur einem Fahrzeug reicht das Standard-Lade-Profil aus. Bei mehreren Fahrzeugen können weitere Lade-Profile hinzugefügt werden. Dies erlaubt die Nutzung unterschiedlicher Lademodi je Fahrzeug (z.B. EV1 = Sofortladen, EV2 = PV-Laden). Im Anschluss werden die Voreinstellungen zu den verschiedenen Lademodi konfiguriert. ",-1)),e[9]||(e[9]=n("p",null," Nun wird das eigentliche Fahrzeug angelegt und mit dem gewünschten Fahrzeug-Profil / Lade-Profil versehen. Ist nur ein Fahrzeug vorhanden, reicht das Standard-Fahrzeug aus. ",-1)),e[10]||(e[10]=n("p",{class:"font-weight-bold"},"Änderungen werden nur durch Klicken auf Speichern wirksam!",-1))]),content:a(()=>[o(u,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>s.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>s.$emit("save",t)),onReset:e[2]||(e[2]=t=>s.$emit("reset")),onDefaults:e[3]||(e[3]=t=>s.$emit("defaults"))})]),_:1},8,["onNextPage","onPreviousPage","onEndAssistant"])}const E=z(A,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep8.vue"]]);export{E as default}; diff --git a/web/settings/assets/InstallAssistantStep9-HIXLScoE.js b/web/settings/assets/InstallAssistantStep9-DRxmVHSA.js similarity index 90% rename from web/settings/assets/InstallAssistantStep9-HIXLScoE.js rename to web/settings/assets/InstallAssistantStep9-DRxmVHSA.js index 2d37ccb6d5..79d2e7a906 100644 --- a/web/settings/assets/InstallAssistantStep9-HIXLScoE.js +++ b/web/settings/assets/InstallAssistantStep9-DRxmVHSA.js @@ -1 +1 @@ -import{C as m}from"./index-D_eD74fL.js";import p from"./InstallAssistantStepTemplate-DXqdRjEv.js";import{D as u}from"./DataManagement-C57poL-r.js";import{_ as d,l as a,k as g,y as f,q as i,m as v,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:8)},endAssistant(){this.$emit("endAssistant")}}};function A(n,e,$,S,c,s){const r=a("DataManagement"),l=a("InstallAssistantStepTemplate");return g(),f(l,{title:`${s.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:i(()=>[...e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])]),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(P,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; +import{C as m}from"./index-MVrRMMo2.js";import p from"./InstallAssistantStepTemplate-D7oyrk_N.js";import{D as u}from"./DataManagement-lM5_tcaR.js";import{_ as d,l as a,k as g,y as f,q as i,m as v,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const P={name:"InstallAssistantStep9",components:{InstallAssistantStepTemplate:p,DataManagement:u},mixins:[m],emits:["save","reset","defaults","sendCommand","switchPage","endAssistant"],data:()=>({mqttTopics:[{topic:"openWB/general/extern",writeable:!1}]}),computed:{stepNumber(){return this.$store.state.mqtt["openWB/general/extern"]?5:9}},methods:{nextPage(){this.$emit("switchPage",10)},previousPage(){this.$emit("switchPage",this.$store.state.mqtt["openWB/general/extern"]?20:8)},endAssistant(){this.$emit("endAssistant")}}};function A(n,e,$,S,c,s){const r=a("DataManagement"),l=a("InstallAssistantStepTemplate");return g(),f(l,{title:`${s.stepNumber}. Datensicherung der neuen Konfiguration`,onNextPage:s.nextPage,onPreviousPage:s.previousPage,onEndAssistant:s.endAssistant},{help:i(()=>[...e[4]||(e[4]=[o("p",null," Wir empfehlen an dieser Stelle eine manuell initiierte Sicherung der neu konfigurierten openWB zu erstellen. ",-1),o("p",null," Dieser Vorgang sollte im Betrieb regelmäßig wiederholt werden (mindestens vor Updates), um sowohl die individuellen Log-Daten als auch auf ältere Konfigurationen zurückgreifen zu können (Backups). ",-1)])]),content:i(()=>[v(r,{"install-assistant-active":!0,onSendCommand:e[0]||(e[0]=t=>n.$emit("sendCommand",t)),onSave:e[1]||(e[1]=t=>n.$emit("save",t)),onReset:e[2]||(e[2]=t=>n.$emit("reset")),onDefaults:e[3]||(e[3]=t=>n.$emit("defaults"))})]),_:1},8,["title","onNextPage","onPreviousPage","onEndAssistant"])}const W=d(P,[["render",A],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStep9.vue"]]);export{W as default}; diff --git a/web/settings/assets/InstallAssistantStepTemplate-DXqdRjEv.js b/web/settings/assets/InstallAssistantStepTemplate-D7oyrk_N.js similarity index 97% rename from web/settings/assets/InstallAssistantStepTemplate-DXqdRjEv.js rename to web/settings/assets/InstallAssistantStepTemplate-D7oyrk_N.js index 2c5d12d023..322a15019f 100644 --- a/web/settings/assets/InstallAssistantStepTemplate-DXqdRjEv.js +++ b/web/settings/assets/InstallAssistantStepTemplate-D7oyrk_N.js @@ -1 +1 @@ -import{C as g}from"./index-D_eD74fL.js";import{F as v,l as w,aH as y,aI as x}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as k,l as r,k as a,e as i,m as t,q as s,x as n,f as _,A as c,u as p}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const B="/openWB/web/settings/img/openWB_logo_light.png";w.add(y,x);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:v},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},I={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},N={class:"row justify-content-center"},S={class:"page-help-text col-md-3 py-2"},T={class:"col py-2"};function $(u,e,o,j,q,l){const m=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=f=>l.previousPage())},{default:s(()=>[t(m,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=f=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(m,{icon:["fas","caret-right"]})]),_:1})])),o.hideEnd?p("",!0):(a(),i("div",I,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=f=>l.endAssistant())},{default:s(()=>[...e[5]||(e[5]=[c(" Assistent beenden ",-1)])]),_:1})]))])]),default:s(()=>[n("div",N,[n("div",S,[_(u.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",T,[_(u.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; +import{C as g}from"./index-MVrRMMo2.js";import{F as v,l as w,aH as y,aI as x}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as k,l as r,k as a,e as i,m as t,q as s,x as n,f as _,A as c,u as p}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const B="/openWB/web/settings/img/openWB_logo_light.png";w.add(y,x);const h={name:"InstallAssistantStepTemplate",components:{FontAwesomeIcon:v},mixins:[g],props:{title:{type:String,required:!0},hidePrevious:{type:Boolean,required:!1,default:!1},hideNext:{type:Boolean,required:!1,default:!1},hideEnd:{type:Boolean,required:!1,default:!1}},emits:["previousPage","nextPage","endAssistant"],methods:{nextPage(){window.scrollTo(0,0),this.$emit("nextPage")},previousPage(){window.scrollTo(0,0),this.$emit("previousPage")},endAssistant(){this.$emit("endAssistant")}}},A={class:"row justify-content-center mb-1"},C={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},P={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},I={key:2,class:"col-md-4 d-flex py-1 justify-content-center"},N={class:"row justify-content-center"},S={class:"page-help-text col-md-3 py-2"},T={class:"col py-2"};function $(u,e,o,j,q,l){const m=r("font-awesome-icon"),d=r("openwb-base-click-button"),b=r("openwb-base-card");return a(),i("div",null,[t(b,{title:o.title,"body-bg":"white",class:"p-0 mx-3"},{footer:s(()=>[n("div",A,[o.hidePrevious?p("",!0):(a(),i("div",C,[t(d,{class:"btn-block btn-warning",onButtonClicked:e[0]||(e[0]=f=>l.previousPage())},{default:s(()=>[t(m,{icon:["fas","caret-left"]}),e[3]||(e[3]=c(" Zurück ",-1))]),_:1})])),o.hideNext?p("",!0):(a(),i("div",P,[t(d,{class:"btn-block btn-success",onButtonClicked:e[1]||(e[1]=f=>l.nextPage())},{default:s(()=>[e[4]||(e[4]=c(" Weiter ",-1)),t(m,{icon:["fas","caret-right"]})]),_:1})])),o.hideEnd?p("",!0):(a(),i("div",I,[t(d,{class:"btn-block btn-danger",onButtonClicked:e[2]||(e[2]=f=>l.endAssistant())},{default:s(()=>[...e[5]||(e[5]=[c(" Assistent beenden ",-1)])]),_:1})]))])]),default:s(()=>[n("div",N,[n("div",S,[_(u.$slots,"help",{},()=>[e[6]||(e[6]=n("img",{src:B,alt:"openWB Logo",class:"w-100"},null,-1))],!0)]),n("div",T,[_(u.$slots,"content",{},void 0,!0)])])]),_:3},8,["title"])])}const R=k(h,[["render",$],["__scopeId","data-v-db9e78cb"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/install_assistant/InstallAssistantStepTemplate.vue"]]);export{R as default}; diff --git a/web/settings/assets/IoConfiguration-hMQZDwaS.js b/web/settings/assets/IoConfiguration-CuIvy4Hb.js similarity index 94% rename from web/settings/assets/IoConfiguration-hMQZDwaS.js rename to web/settings/assets/IoConfiguration-CuIvy4Hb.js index f29cae9ce0..3d2a1790b6 100644 --- a/web/settings/assets/IoConfiguration-hMQZDwaS.js +++ b/web/settings/assets/IoConfiguration-CuIvy4Hb.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/io_device-ByQHLYHY.js","assets/index-D_eD74fL.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/io_device-mvR1tJtP.js","assets/io_device-BBOT5GiC.js","assets/io_action-B9LeEnBs.js","assets/OpenwbIoSinglePattern-C4hsIwwW.js","assets/io_action-JT1W0Hwl.js","assets/io_action-BWKUJ45t.js","assets/OpenwbIoPattern-DAvfzRSb.js","assets/OpenwbIoPattern-01UVkHjE.css","assets/io_action-Des8D82O.js"])))=>i.map(i=>d[i]); -import{F as q,l as L,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,C as j}from"./index-D_eD74fL.js";import{_ as E}from"./dynamic-import-helper-BheWnx7M.js";import{_ as I,l as d,k as o,e as c,y as f,q as i,A as r,J as p,m as a,x as v,a1 as T,K as C,L as B,u as D,a2 as M}from"./vendor-Bo8v-nQD.js";const z={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})},sendSystemCommand(t,e){this.$emit("sendCommand",{command:t,data:e})}}},F=I(z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),$={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},R={class:"io-device-config-fallback"},N={key:1};function G(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",R,[Object.keys(t.ioDevice.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Das I/O-Modul "'+p(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",N,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+p(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=I($,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),Q={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),T({loader:()=>E(Object.assign({"./add_on/io_device.vue":()=>h(()=>import("./io_device-ByQHLYHY.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./dimm_kit/io_device.vue":()=>h(()=>import("./io_device-mvR1tJtP.js"),__vite__mapDeps([11,2,3,4,1,5,6,7,8,9,10])),"./eebus/io_device.vue":()=>h(()=>import("./io_device-BBOT5GiC.js"),__vite__mapDeps([12,2,3,4,1,5,6,7,8,9,10]))}),`./${this.ioDevice.type}/io_device.vue`,3),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function H(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-copy-to-clipboard"),b=d("openwb-base-alert");return o(),c("div",null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Modul "'+p(l.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(o(),f(b,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=r(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),v("ul",null,[(o(!0),c(C,null,B(n.outputs,_=>(o(),c("li",{key:_},[a(y,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[r(p(_),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=r(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=v("br",null,null,-1)),e[5]||(e[5]=r(" Beispiel: ",-1)),e[6]||(e[6]=v("span",{class:"text-info"},"false",-1))]),_:1})):D("",!0),a(b,{subtype:"warning"},{default:i(()=>[e[7]||(e[7]=r(" Ist die ",-1)),e[8]||(e[8]=v("strong",null,"Benutzerverwaltung",-1)),e[9]||(e[9]=r(" aktiviert und sollen die Ausgänge über MQTT gesteuert werden, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),v("strong",null,`"Daten: Ein-/Ausgangs Gerät '`+p(l.ioDevice.name)+"' ("+p(l.ioDevice.id)+') MQTT-Input"',1),e[10]||(e[10]=r(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),(o(),f(M(n.myComponent),{"io-device":l.ioDevice,"onUpdate:configuration":e[0]||(e[0]=_=>n.updateConfiguration(_)),onSendCommand:e[1]||(e[1]=_=>n.sendCommand(_))},null,40,["io-device"]))])}const X=I(Q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[j],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=I(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function ne(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",ee,[Object.keys(t.ioAction?.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Die I/O-Aktion "'+p(t.ioAction?.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",te,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+p(t.ioAction?.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioAction?.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioAction?.configuration,void 0,2)),1)]),_:1})]))])}const oe=I(K,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io action: ${this.ioAction?.group} / ${this.ioAction?.type}`),T({loader:()=>E(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>h(()=>import("./io_action-B9LeEnBs.js"),__vite__mapDeps([13,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>h(()=>import("./io_action-JT1W0Hwl.js"),__vite__mapDeps([15,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>h(()=>import("./io_action-BWKUJ45t.js"),__vite__mapDeps([16,17,4,2,3,18,1,5,6,7,8,9,10])),"./generator_systems/stepwise_control/io_action.vue":()=>h(()=>import("./io_action-Des8D82O.js"),__vite__mapDeps([19,17,4,2,3,18,1,5,6,7,8,9,10]))}),`./${this.ioAction?.group}/${this.ioAction?.type}/io_action.vue`,4),errorComponent:oe})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>({value:this.ioDevices[t]?.id,text:this.ioDevices[t]?.name}))},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t?.id,text:t?.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t?.id,text:t?.name,type:t?.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray(this.ioAction.configuration?.input_pattern)){let e=this.ioAction.configuration.input_pattern.map(l=>({value:l.value,matrix:{}}));this.updateConfiguration(e,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-select-input");return o(),c(C,null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Aktion "'+p(l.ioAction?.name)+'" ',1)]),_:1}),a(y,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":l.ioAction?.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateIoDevice(b))},{help:i(()=>[...e[2]||(e[2]=[r(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])]),_:1},8,["options","model-value"]),l.ioAction?.configuration.io_device!==null?(o(),c("div",ae,[e[3]||(e[3]=v("hr",null,null,-1)),(o(),f(M(n.myComponent),{"io-action":l.ioAction,"io-device":l.ioDevices[`openWB/system/io/${l.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=b=>n.updateConfiguration(b))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):D("",!0)],64)}const re=I(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);L.add(U);const le={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:q,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[j],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!0},{topic:"openWB/system/configurable/io_actions",writeable:!1},{topic:"openWB/system/configurable/io_devices",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!0}],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){let t=this.$store.state.mqtt["openWB/system/configurable/io_devices"];return this.$store.state.mqtt["openWB/general/extern"]===!0?t?.filter(e=>e.value=="add_on"):t}},installedIoDevices(){const t=this.getWildcardTopics("openWB/system/io/+/config");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(l=>({value:[t,l.value],text:l.text})).sort((l,A)=>l.text.localeCompare(A.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.sendSystemCommand("addIoDevice",{type:this.ioDeviceToAdd})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoDevice",{id:t})},addIoAction(){this.sendSystemCommand("addIoAction",{type:this.ioActionToAdd})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoAction",{id:t})},sendSystemCommand(t,e){this.$emit("send-command",{command:t,data:e})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},de={class:"ioConfig"},ue={name:"ioConfigForm"},ce={key:0},pe={key:1},me={key:0};function ge(t,e,l,A,u,n){const m=d("openwb-base-modal-dialog"),y=d("font-awesome-icon"),b=d("openwb-base-avatar"),_=d("openwb-base-text-input"),P=d("openwb-io-device-proxy"),k=d("openwb-base-card"),x=d("openwb-base-select-input"),W=d("openwb-base-alert"),S=d("openwb-io-action-proxy"),V=d("openwb-base-submit-buttons");return o(),c(C,null,[a(m,{show:u.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeIoDevice(u.modalIoDeviceIndex,s))},{default:i(()=>[r(' Willst Du das Ein-/Ausgangs-Gerät "'+p(n.getIoDeviceName(u.modalIoDeviceIndex))+'" (ID: '+p(u.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(m,{show:u.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeIoAction(u.modalIoActionIndex,s))},{default:i(()=>[r(' Willst Du die Aktion "'+p(n.getIoDeviceName(u.modalIoActionIndex))+'" (ID: '+p(u.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),v("div",de,[v("form",ue,[a(k,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(o(!0),c(C,null,B(n.installedIoDevices,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoDeviceModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[w].type},null,8,["model-value"]),e[8]||(e[8]=v("hr",null,null,-1)),a(P,{"io-device":s,"onUpdate:configuration":g=>n.updateConfiguration(w,g),onSendCommand:e[2]||(e[2]=g=>n.sendSystemCommand(g.command,g.data))},null,8,["io-device","onUpdate:configuration"])]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(o(),c("hr",ce)):D("",!0),a(x,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":u.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=s=>u.ioDeviceToAdd=s),"onInput:add":n.addIoDevice},{help:i(()=>[...e[9]||(e[9]=[r(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1}),a(k,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),f(W,{key:0,subtype:"info"},{default:i(()=>[...e[10]||(e[10]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(o(),c("div",pe,[(o(!0),c(C,null,B(n.installedIoActions,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoActionModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[s?.group,s?.type].join(" / ")},null,8,["model-value"]),e[11]||(e[11]=v("hr",null,null,-1)),s!==void 0?(o(),f(S,{key:0,"io-action":s,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":g=>n.updateConfiguration(w,g)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):D("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(o(),c("hr",me)):D("",!0),Object.keys(n.installedIoDevices).length>0?(o(),f(x,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":u.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[4]||(e[4]=s=>u.ioActionToAdd=s),"onInput:add":n.addIoAction},{help:i(()=>[...e[12]||(e[12]=[r(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])]),_:1},8,["groups","model-value","onInput:add"])):(o(),f(W,{key:2,subtype:"warning"},{default:i(()=>[...e[13]||(e[13]=[r(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),v("br",null,null,-1),r(" Bitte füge zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Du Aktionen konfigurierst. ",-1)])]),_:1}))]))]),_:1}),a(V,{"form-name":"ioConfigForm",onSave:e[5]||(e[5]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[6]||(e[6]=s=>t.$emit("reset")),onDefaults:e[7]||(e[7]=s=>t.$emit("defaults"))})])])],64)}const be=I(le,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfiguration.vue"]]),we=Object.freeze(Object.defineProperty({__proto__:null,default:be},Symbol.toStringTag,{value:"Module"}));export{be as I,F as O,Z as a,we as b}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/io_device-CUm9h4iq.js","assets/index-MVrRMMo2.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/io_device-Df6mTI7P.js","assets/io_device-DCk4IaIJ.js","assets/io_action-B4e-bIRM.js","assets/OpenwbIoSinglePattern-C4hsIwwW.js","assets/io_action-CMnVuT9A.js","assets/io_action-iOBI7on-.js","assets/OpenwbIoPattern-DAvfzRSb.js","assets/OpenwbIoPattern-01UVkHjE.css","assets/io_action-Cfwq0HWR.js"])))=>i.map(i=>d[i]); +import{F as q,l as L,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as h,C as j}from"./index-MVrRMMo2.js";import{_ as E}from"./dynamic-import-helper-BheWnx7M.js";import{_ as I,l as d,k as o,e as c,y as f,q as i,A as r,J as p,m as a,x as v,a1 as T,K as C,L as B,u as D,a2 as M}from"./vendor-Bo8v-nQD.js";const z={props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})},sendSystemCommand(t,e){this.$emit("sendCommand",{command:t,data:e})}}},F=I(z,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigMixin.vue"]]),$={name:"OpenwbIoDeviceConfigFallback",mixins:[F]},R={class:"io-device-config-fallback"},N={key:1};function G(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",R,[Object.keys(t.ioDevice.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Das I/O-Modul "'+p(t.ioDevice.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",N,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für das I/O-Modul "'+p(t.ioDevice.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioDevice.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioDevice.configuration,void 0,2)),1)]),_:1})]))])}const J=I($,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceConfigFallback.vue"]]),Q={name:"OpenwbIoDeviceProxy",props:{ioDevice:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io device: ${this.ioDevice.type}`),T({loader:()=>E(Object.assign({"./add_on/io_device.vue":()=>h(()=>import("./io_device-CUm9h4iq.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./dimm_kit/io_device.vue":()=>h(()=>import("./io_device-Df6mTI7P.js"),__vite__mapDeps([11,2,3,4,1,5,6,7,8,9,10])),"./eebus/io_device.vue":()=>h(()=>import("./io_device-DCk4IaIJ.js"),__vite__mapDeps([12,2,3,4,1,5,6,7,8,9,10]))}),`./${this.ioDevice.type}/io_device.vue`,3),errorComponent:J})},outputs(){const t=[];if(this.ioDevice.output){if(this.ioDevice.output.analog)for(const e in this.ioDevice.output.analog)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/analog_output/${e}`);if(this.ioDevice.output.digital)for(const e in this.ioDevice.output.digital)t.push(`openWB/set/system/io/${this.ioDevice.id}/set/manual/digital_output/${e}`)}return t}},methods:{updateConfiguration(t){this.$emit("update:configuration",t)},sendCommand(t){this.$emit("sendCommand",t)}}};function H(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-copy-to-clipboard"),b=d("openwb-base-alert");return o(),c("div",null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Modul "'+p(l.ioDevice.name)+'" ',1)]),_:1}),n.outputs.length?(o(),f(b,{key:0,subtype:"info"},{default:i(()=>[e[2]||(e[2]=r(" Die Ausgänge können über die folgenden Topics manuell per MQTT geschaltet werden. Falls Ausgänge in Aktionen konfiguriert werden, überschreibt das manuelle Setzen den Status. ",-1)),v("ul",null,[(o(!0),c(C,null,B(n.outputs,_=>(o(),c("li",{key:_},[a(y,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[r(p(_),1)]),_:2},1024)]))),128))]),e[3]||(e[3]=r(" Als Wert wird ein boolean als json oder 0/1 akzeptiert.",-1)),e[4]||(e[4]=v("br",null,null,-1)),e[5]||(e[5]=r(" Beispiel: ",-1)),e[6]||(e[6]=v("span",{class:"text-info"},"false",-1))]),_:1})):D("",!0),a(b,{subtype:"warning"},{default:i(()=>[e[7]||(e[7]=r(" Ist die ",-1)),e[8]||(e[8]=v("strong",null,"Benutzerverwaltung",-1)),e[9]||(e[9]=r(" aktiviert und sollen die Ausgänge über MQTT gesteuert werden, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),v("strong",null,`"Daten: Ein-/Ausgangs Gerät '`+p(l.ioDevice.name)+"' ("+p(l.ioDevice.id)+') MQTT-Input"',1),e[10]||(e[10]=r(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),(o(),f(M(n.myComponent),{"io-device":l.ioDevice,"onUpdate:configuration":e[0]||(e[0]=_=>n.updateConfiguration(_)),onSendCommand:e[1]||(e[1]=_=>n.sendCommand(_))},null,40,["io-device"]))])}const X=I(Q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/OpenwbIoDeviceProxy.vue"]]),Y={mixins:[j],props:{ioAction:{type:Object,required:!0},ioDevice:{type:Object,required:!0},availableChargePoints:{type:Array,required:!1,default:()=>[]},availableComponents:{type:Array,required:!1,default:()=>[]},availableIoDevices:{type:Array,required:!1,default:()=>[]}},emits:["update:configuration","sendCommand"],methods:{updateConfiguration(t,e=void 0){this.$emit("update:configuration",{value:t,object:e})}}},Z=I(Y,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigMixin.vue"]]),K={name:"OpenwbIoActionConfigFallback",mixins:[Z]},ee={class:"io-action-config-fallback"},te={key:1};function ne(t,e,l,A,u,n){const m=d("openwb-base-alert"),y=d("openwb-base-textarea");return o(),c("div",ee,[Object.keys(t.ioAction?.configuration).length==0?(o(),f(m,{key:0,subtype:"info"},{default:i(()=>[r(' Die I/O-Aktion "'+p(t.ioAction?.name)+'" bietet keine Einstellungen. ',1)]),_:1})):(o(),c("div",te,[a(m,{subtype:"warning"},{default:i(()=>[r(' Es wurde keine Konfigurationsseite für die I/O-Aktion "'+p(t.ioAction?.name)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),a(y,{title:"Konfiguration",subtype:"json","model-value":t.ioAction?.configuration,"onUpdate:modelValue":e[0]||(e[0]=b=>t.updateConfiguration(b,"configuration"))},{help:i(()=>[...e[1]||(e[1]=[r(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),a(m,{subtype:"info"},{default:i(()=>[v("pre",null,p(JSON.stringify(t.ioAction?.configuration,void 0,2)),1)]),_:1})]))])}const oe=I(K,[["render",ne],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionConfigFallback.vue"]]),ie={name:"OpenwbIoActionProxy",props:{ioAction:{type:Object,required:!0},ioDevices:{type:Object,required:!0},installedChargePoints:{type:Object,required:!0},installedComponents:{type:Object,required:!0}},emits:["update:configuration","sendCommand"],computed:{myComponent(){return console.debug(`loading io action: ${this.ioAction?.group} / ${this.ioAction?.type}`),T({loader:()=>E(Object.assign({"./controllable_consumers/dimming/io_action.vue":()=>h(()=>import("./io_action-B4e-bIRM.js"),__vite__mapDeps([13,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/dimming_direct_control/io_action.vue":()=>h(()=>import("./io_action-CMnVuT9A.js"),__vite__mapDeps([15,14,2,3,4,1,5,6,7,8,9,10])),"./controllable_consumers/ripple_control_receiver/io_action.vue":()=>h(()=>import("./io_action-iOBI7on-.js"),__vite__mapDeps([16,17,4,2,3,18,1,5,6,7,8,9,10])),"./generator_systems/stepwise_control/io_action.vue":()=>h(()=>import("./io_action-Cfwq0HWR.js"),__vite__mapDeps([19,17,4,2,3,18,1,5,6,7,8,9,10]))}),`./${this.ioAction?.group}/${this.ioAction?.type}/io_action.vue`,4),errorComponent:oe})},ioDeviceList(){return Object.keys(this.ioDevices).map(t=>({value:this.ioDevices[t]?.id,text:this.ioDevices[t]?.name}))},availableIoDevices(){return Object.values(this.ioDevices)},availableChargePoints(){return Object.values(this.installedChargePoints).map(t=>({value:t?.id,text:t?.name}))},availableComponents(){return Object.values(this.installedComponents).map(t=>({value:t?.id,text:t?.name,type:t?.type}))}},methods:{updateConfiguration(t,e=void 0){e?this.$emit("update:configuration",{value:t,object:e}):this.$emit("update:configuration",t)},updateIoDevice(t){if(this.updateConfiguration(t,"configuration.io_device"),Array.isArray(this.ioAction.configuration?.input_pattern)){let e=this.ioAction.configuration.input_pattern.map(l=>({value:l.value,matrix:{}}));this.updateConfiguration(e,"configuration.input_pattern")}Object.prototype.hasOwnProperty.call(this.ioAction.configuration,"digital_input")&&this.updateConfiguration(null,"configuration.digital_input")}}},ae={key:0};function se(t,e,l,A,u,n){const m=d("openwb-base-heading"),y=d("openwb-base-select-input");return o(),c(C,null,[a(m,null,{default:i(()=>[r(' Einstellungen für I/O-Aktion "'+p(l.ioAction?.name)+'" ',1)]),_:1}),a(y,{title:"Eingangs-Gerät","not-selected":"Bitte auswählen","empty-value":null,required:"",options:n.ioDeviceList,"model-value":l.ioAction?.configuration.io_device,"onUpdate:modelValue":e[0]||(e[0]=b=>n.updateIoDevice(b))},{help:i(()=>[...e[2]||(e[2]=[r(" Bitte das Gerät auswählen, über das der Schaltbefehl empfangen werden soll. Für jede Aktion kann nur ein Gerät ausgewählt werden. ",-1)])]),_:1},8,["options","model-value"]),l.ioAction?.configuration.io_device!==null?(o(),c("div",ae,[e[3]||(e[3]=v("hr",null,null,-1)),(o(),f(M(n.myComponent),{"io-action":l.ioAction,"io-device":l.ioDevices[`openWB/system/io/${l.ioAction.configuration.io_device}/config`],"available-charge-points":n.availableChargePoints,"available-components":n.availableComponents,"available-io-devices":n.availableIoDevices,"onUpdate:configuration":e[1]||(e[1]=b=>n.updateConfiguration(b))},null,40,["io-action","io-device","available-charge-points","available-components","available-io-devices"]))])):D("",!0)],64)}const re=I(ie,[["render",se],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/OpenwbIoActionProxy.vue"]]);L.add(U);const le={name:"OpenwbIoConfigView",components:{FontAwesomeIcon:q,OpenwbIoDeviceProxy:X,OpenwbIoActionProxy:re},mixins:[j],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","send-command"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!0},{topic:"openWB/system/configurable/io_actions",writeable:!1},{topic:"openWB/system/configurable/io_devices",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!0}],showIoDeviceDeleteModal:!1,modalIoDeviceIndex:void 0,ioDeviceToAdd:void 0,showIoActionDeleteModal:!1,modalIoActionIndex:void 0,ioActionToAdd:void 0}},computed:{ioDeviceList:{get(){let t=this.$store.state.mqtt["openWB/system/configurable/io_devices"];return this.$store.state.mqtt["openWB/general/extern"]===!0?t?.filter(e=>e.value=="add_on"):t}},installedIoDevices(){const t=this.getWildcardTopics("openWB/system/io/+/config");return Object.fromEntries(Object.entries(t).filter(([,e])=>e&&typeof e=="object"))},ioActionList:{get(){return this.$store.state.mqtt["openWB/system/configurable/io_actions"]===void 0?[]:Object.entries(this.$store.state.mqtt["openWB/system/configurable/io_actions"]).map(([t,e])=>({label:e.group_name,options:e.actions.map(l=>({value:[t,l.value],text:l.text})).sort((l,A)=>l.text.localeCompare(A.text))})).sort((t,e)=>t.label.localeCompare(e.label))}},installedIoActions:{get(){return this.getWildcardTopics("openWB/io/action/+/config")}},installedChargePoints:{get(){return this.getWildcardTopics("openWB/chargepoint/+/config")}},installedComponents:{get(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")}}},methods:{getIoDeviceName(t){return this.$store.state.mqtt["openWB/system/io/"+t+"/config"]?this.$store.state.mqtt["openWB/system/io/"+t+"/config"].name:"I/O-Gerät "+t},addIoDevice(){this.sendSystemCommand("addIoDevice",{type:this.ioDeviceToAdd})},removeIoDeviceModal(t,e){e.stopPropagation(),this.modalIoDeviceIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoDeviceDeleteModal=!0},removeIoDevice(t,e){this.showIoDeviceDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoDevice",{id:t})},addIoAction(){this.sendSystemCommand("addIoAction",{type:this.ioActionToAdd})},removeIoActionModal(t,e){e.stopPropagation(),this.modalIoActionIndex=parseInt(t.match(/(?:\/)(\d+)(?=\/)/)[1]),this.showIoActionDeleteModal=!0},removeIoAction(t,e){this.showIoActionDeleteModal=!1,e=="confirm"&&this.sendSystemCommand("removeIoAction",{id:t})},sendSystemCommand(t,e){this.$emit("send-command",{command:t,data:e})},updateConfiguration(t,e){console.debug("updateConfiguration",t,e),this.updateState(t,e.value,e.object)}}},de={class:"ioConfig"},ue={name:"ioConfigForm"},ce={key:0},pe={key:1},me={key:0};function ge(t,e,l,A,u,n){const m=d("openwb-base-modal-dialog"),y=d("font-awesome-icon"),b=d("openwb-base-avatar"),_=d("openwb-base-text-input"),P=d("openwb-io-device-proxy"),k=d("openwb-base-card"),x=d("openwb-base-select-input"),W=d("openwb-base-alert"),S=d("openwb-io-action-proxy"),V=d("openwb-base-submit-buttons");return o(),c(C,null,[a(m,{show:u.showIoDeviceDeleteModal,title:"Modul löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=s=>n.removeIoDevice(u.modalIoDeviceIndex,s))},{default:i(()=>[r(' Willst Du das Ein-/Ausgangs-Gerät "'+p(n.getIoDeviceName(u.modalIoDeviceIndex))+'" (ID: '+p(u.modalIoDeviceIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),a(m,{show:u.showIoActionDeleteModal,title:"Aktion löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=s=>n.removeIoAction(u.modalIoActionIndex,s))},{default:i(()=>[r(' Willst Du die Aktion "'+p(n.getIoDeviceName(u.modalIoActionIndex))+'" (ID: '+p(u.modalIoActionIndex)+") wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ",1)]),_:1},8,["show"]),v("div",de,[v("form",ue,[a(k,{title:"Ein-/Ausgangs-Geräte"},{default:i(()=>[(o(!0),c(C,null,B(n.installedIoDevices,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoDeviceModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":t.$store.state.mqtt[w].type},null,8,["model-value"]),e[8]||(e[8]=v("hr",null,null,-1)),a(P,{"io-device":s,"onUpdate:configuration":g=>n.updateConfiguration(w,g),onSendCommand:e[2]||(e[2]=g=>n.sendSystemCommand(g.command,g.data))},null,8,["io-device","onUpdate:configuration"])]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoDevices).length>0?(o(),c("hr",ce)):D("",!0),a(x,{title:"Verfügbare Geräte","not-selected":"Bitte auswählen",options:n.ioDeviceList,"model-value":u.ioDeviceToAdd,"add-button":!0,"onUpdate:modelValue":e[3]||(e[3]=s=>u.ioDeviceToAdd=s),"onInput:add":n.addIoDevice},{help:i(()=>[...e[9]||(e[9]=[r(" Bitte ein Ein-/Ausgangs-Modul auswählen, das hinzugefügt werden soll. ",-1)])]),_:1},8,["options","model-value","onInput:add"])]),_:1}),a(k,{title:"Ein-/Ausgangs-Aktionen"},{default:i(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(o(),f(W,{key:0,subtype:"info"},{default:i(()=>[...e[10]||(e[10]=[r(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})):(o(),c("div",pe,[(o(!0),c(C,null,B(n.installedIoActions,(s,w)=>(o(),f(k,{key:w,title:s?.name+" (ID: "+s?.id+")",collapsible:!0,collapsed:!0,subtype:"primary"},{actions:i(g=>[g.collapsed?D("",!0):(o(),f(b,{key:0,class:"bg-danger clickable",onClick:O=>n.removeIoActionModal(w,O)},{default:i(()=>[a(y,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),default:i(()=>[a(_,{title:"Bezeichnung",subtype:"text","model-value":s?.name,"onUpdate:modelValue":g=>t.updateState(w,g,"name")},null,8,["model-value","onUpdate:modelValue"]),a(_,{title:"Modul",subtype:"text",disabled:"",readonly:"","model-value":[s?.group,s?.type].join(" / ")},null,8,["model-value"]),e[11]||(e[11]=v("hr",null,null,-1)),s!==void 0?(o(),f(S,{key:0,"io-action":s,"io-devices":n.installedIoDevices,"installed-charge-points":n.installedChargePoints,"installed-components":n.installedComponents,"onUpdate:configuration":g=>n.updateConfiguration(w,g)},null,8,["io-action","io-devices","installed-charge-points","installed-components","onUpdate:configuration"])):D("",!0)]),_:2},1032,["title"]))),128)),Object.keys(n.installedIoActions).length>0?(o(),c("hr",me)):D("",!0),Object.keys(n.installedIoDevices).length>0?(o(),f(x,{key:1,title:"Verfügbare Aktionen","not-selected":"Bitte auswählen",groups:n.ioActionList,"model-value":u.ioActionToAdd,"add-button":!0,"onUpdate:modelValue":e[4]||(e[4]=s=>u.ioActionToAdd=s),"onInput:add":n.addIoAction},{help:i(()=>[...e[12]||(e[12]=[r(" Bitte eine Ein-/Ausgangs-Aktion auswählen, die hinzugefügt werden soll. ",-1)])]),_:1},8,["groups","model-value","onInput:add"])):(o(),f(W,{key:2,subtype:"warning"},{default:i(()=>[...e[13]||(e[13]=[r(" Keine Ein-/Ausgangs-Geräte vorhanden!",-1),v("br",null,null,-1),r(" Bitte füge zuerst ein Ein-/Ausgangs-Gerät hinzu, bevor Du Aktionen konfigurierst. ",-1)])]),_:1}))]))]),_:1}),a(V,{"form-name":"ioConfigForm",onSave:e[5]||(e[5]=s=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[6]||(e[6]=s=>t.$emit("reset")),onDefaults:e[7]||(e[7]=s=>t.$emit("defaults"))})])])],64)}const be=I(le,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/IoConfiguration.vue"]]),we=Object.freeze(Object.defineProperty({__proto__:null,default:be},Symbol.toStringTag,{value:"Module"}));export{be as I,F as O,Z as a,we as b}; diff --git a/web/settings/assets/LegalSettings-DvE2H9Xw.js b/web/settings/assets/LegalSettings-DqdcFet8.js similarity index 98% rename from web/settings/assets/LegalSettings-DvE2H9Xw.js rename to web/settings/assets/LegalSettings-DqdcFet8.js index 88b63c370d..92731785b3 100644 --- a/web/settings/assets/LegalSettings-DvE2H9Xw.js +++ b/web/settings/assets/LegalSettings-DqdcFet8.js @@ -1 +1 @@ -import{F as k,l as y,an as v}from"./vendor-fortawesome-CBc-2W7w.js";import{C as B}from"./index-D_eD74fL.js";import{_ as $,l as n,k as u,e as W,x as o,m as s,q as a,y as g,A as d,u as b}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";y.add(v);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:k},mixins:[B],emits:["sendCommand","save"],data(){return{mqttTopics:[{topic:"openWB/system/dataprotection_acknowledged",writeable:!0},{topic:"openWB/system/usage_terms_acknowledged",writeable:!0}]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},async onSaveLegal(){this.$emit("save",this.mqttTopicsToPublish),await new Promise(e=>{const i=this.$watch(()=>this.$store.state.local.savingData,r=>{r===!1&&(i(),e())})}),this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]||await new Promise(e=>{const i=this.$watch(()=>this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],r=>{r&&(i(),e())})}),await this.$store.getters.installAssistantDone||this.$router.push({name:"InstallAssistant"})}}},z={class:"dataProtection"},A={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function D(t,e,i,r,q,m){const p=n("openwb-base-button-group-input"),w=n("font-awesome-icon"),_=n("openwb-base-click-button"),c=n("openwb-base-alert"),f=n("openwb-base-submit-buttons"),h=n("openwb-base-card");return u(),W("div",z,[o("form",A,[s(h,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[s(f,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:m.onSaveLegal},null,8,["onSave"])]),default:a(()=>[e[6]||(e[6]=o("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[7]||(e[7]=o("hr",null,null,-1)),s(p,{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]=l=>t.updateState("openWB/system/usage_terms_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?b("",!0):(u(),g(c,{key:0,subtype:"danger",class:"mb-1"},{default:a(()=>[e[4]||(e[4]=d(" Du musst die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),o("div",C,[o("div",V,[s(_,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=l=>m.sendSystemCommand("systemShutdown"))},{default:a(()=>[e[3]||(e[3]=d(" Nicht akzeptieren und ausschalten ",-1)),s(w,{icon:["fas","power-off"]})]),_:1})])])]),_:1})),s(p,{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]=l=>t.updateState("openWB/system/dataprotection_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?b("",!0):(u(),g(c,{key:1,subtype:"warning"},{default:a(()=>[...e[5]||(e[5]=[d(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])]),_:1}))]),_:1})])])}const j=$(S,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{j as default}; +import{F as k,l as y,an as v}from"./vendor-fortawesome-CBc-2W7w.js";import{C as B}from"./index-MVrRMMo2.js";import{_ as $,l as n,k as u,e as W,x as o,m as s,q as a,y as g,A as d,u as b}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";y.add(v);const S={name:"OpenwbDataProtectionView",components:{FontAwesomeIcon:k},mixins:[B],emits:["sendCommand","save"],data(){return{mqttTopics:[{topic:"openWB/system/dataprotection_acknowledged",writeable:!0},{topic:"openWB/system/usage_terms_acknowledged",writeable:!0}]}},methods:{sendSystemCommand(t,e={}){this.$emit("sendCommand",{command:t,data:e})},async onSaveLegal(){this.$emit("save",this.mqttTopicsToPublish),await new Promise(e=>{const i=this.$watch(()=>this.$store.state.local.savingData,r=>{r===!1&&(i(),e())})}),this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]||await new Promise(e=>{const i=this.$watch(()=>this.$store.state.mqtt["openWB/system/usage_terms_acknowledged"],r=>{r&&(i(),e())})}),await this.$store.getters.installAssistantDone||this.$router.push({name:"InstallAssistant"})}}},z={class:"dataProtection"},A={name:"dataProtectionForm"},C={class:"row justify-content-center"},V={class:"col-md-4 d-flex justify-content-center"};function D(t,e,i,r,q,m){const p=n("openwb-base-button-group-input"),w=n("font-awesome-icon"),_=n("openwb-base-click-button"),c=n("openwb-base-alert"),f=n("openwb-base-submit-buttons"),h=n("openwb-base-card");return u(),W("div",z,[o("form",A,[s(h,{title:"Nutzungsbedingungen & Datenschutzerklärung"},{footer:a(()=>[s(f,{"form-name":"dataProtectionForm","hide-reset":!0,"hide-defaults":!0,onSave:m.onSaveLegal},null,8,["onSave"])]),default:a(()=>[e[6]||(e[6]=o("iframe",{src:"dataProtection-usageTerms.html",width:"100%",height:"400px",class:"bg-light"},null,-1)),e[7]||(e[7]=o("hr",null,null,-1)),s(p,{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]=l=>t.updateState("openWB/system/usage_terms_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/usage_terms_acknowledged"]?b("",!0):(u(),g(c,{key:0,subtype:"danger",class:"mb-1"},{default:a(()=>[e[4]||(e[4]=d(" Du musst die Nutzungsbedingungen akzeptieren, bevor openWB eingesetzt werden kann. ",-1)),o("div",C,[o("div",V,[s(_,{class:"btn-danger",onButtonClicked:e[1]||(e[1]=l=>m.sendSystemCommand("systemShutdown"))},{default:a(()=>[e[3]||(e[3]=d(" Nicht akzeptieren und ausschalten ",-1)),s(w,{icon:["fas","power-off"]})]),_:1})])])]),_:1})),s(p,{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]=l=>t.updateState("openWB/system/dataprotection_acknowledged",l))},null,8,["model-value"]),t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]?b("",!0):(u(),g(c,{key:1,subtype:"warning"},{default:a(()=>[...e[5]||(e[5]=[d(" Wenn Du nicht einwilligst, wird eine ggf. konfigurierte Cloud-Anbindung gelöscht. Die openWB arbeitet autark wie gewohnt weiter. Fernzugriff und Remote-Support sind dann nicht mehr möglich! ",-1)])]),_:1}))]),_:1})])])}const j=$(S,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LegalSettings.vue"]]);export{j as default}; diff --git a/web/settings/assets/LoadManagementConfiguration-DKZ9eznX.js b/web/settings/assets/LoadManagementConfiguration-DkVfCmRF.js similarity index 99% rename from web/settings/assets/LoadManagementConfiguration-DKZ9eznX.js rename to web/settings/assets/LoadManagementConfiguration-DkVfCmRF.js index fe2e2364bd..130d56087c 100644 --- a/web/settings/assets/LoadManagementConfiguration-DKZ9eznX.js +++ b/web/settings/assets/LoadManagementConfiguration-DkVfCmRF.js @@ -1 +1 @@ -import{F as L,l as V,a3 as x,a2 as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as Z}from"./index-D_eD74fL.js";import{S as $}from"./OpenwbSortableList-CSUuyi79.js";import{_ as A,l as u,k as l,e as m,x as d,m as o,q as r,A as i,y as f,u as M,K as v,L as W,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";V.add(x,q);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:$,FontAwesomeIcon:L},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/config/max_power",writeable:!0},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/counter/+/config/max_currents",writeable:!0},{topic:"openWB/counter/+/config/max_power_errorcase",writeable:!0},{topic:"openWB/counter/+/config/max_total_power",writeable:!0},{topic:"openWB/counter/config/consider_less_charging",writeable:!0},{topic:"openWB/counter/config/home_consumption_source_id",writeable:!0},{topic:"openWB/counter/get/hierarchy",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/pv/+/config/max_ac_out",writeable:!0},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},componentConfigs:{get(){return t=>{let e=this.componentConfigurations;return Object.keys(e).filter(s=>e[s]?.type.includes(t)).reduce((s,b)=>({...s,[b]:e[b]}),{})}}},counterConfigs:{get(){return this.componentConfigs("counter")}},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.sort((e,s)=>e.text==s.text?0:e.text>s.text?1:-1)},inverterConfigs:{get(){return this.componentConfigs("inverter")}},batConfigs:{get(){return this.componentConfigs("bat")}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let s=this.getChargePoint(t.id);s&&(e[t.id]=s.name)}else{let s=this.getComponent(t.id);s&&(e[t.id]=s.name)}return t.children.forEach(s=>{e={...e,...this.getElementTreeNames(s)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},isComponentType(t,e){return t?.split("_").includes(e)}}},U={class:"loadManagementConfig"},D={name:"loadManagementConfigForm"},F={key:0},P={key:1},O={key:0},H={key:1};function N(t,e,s,b,T,g){const h=u("openwb-base-alert"),B=u("router-link"),S=u("openwb-base-button-group-input"),z=u("openwb-base-select-input"),w=u("openwb-base-heading"),k=u("font-awesome-icon"),p=u("openwb-base-number-input"),c=u("openwb-base-card"),y=u("sortable-list"),C=u("openwb-base-submit-buttons");return l(),m("div",U,[d("form",D,[o(c,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",F,[o(h,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",P,[s.installAssistantActive?M("",!0):(l(),f(h,{key:0,subtype:"info"},{default:r(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),o(B,{to:"/IoConfiguration"},{default:r(()=>[...e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])]),_:1}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1})),o(S,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/counter/config/consider_less_charging",n))},{help:r(()=>[...e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])]),_:1},8,["model-value"]),o(z,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateState("openWB/counter/config/home_consumption_source_id",n))},{help:r(()=>[...e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])]),_:1},8,["options","groups","model-value"]),o(w,null,{default:r(()=>[...e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])]),_:1}),o(h,{subtype:"info"},{default:r(()=>[...e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Üblicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])]),_:1}),(l(!0),m(v,null,W(g.counterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:r(()=>[o(k,{icon:["fas","gauge-high"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:r(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:r(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:r(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:r(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_power_errorcase",a*1e3)},{help:r(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.inverterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:r(()=>[o(k,{icon:["fas","solar-panel"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:r(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[21]||(e[21]=[i(" Vorhandene Speichermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.batConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[o(k,{icon:["fas","car-battery"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung des Speichers",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/config/max_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/bat/"+n.id+"/config/max_power",a*1e3)},{help:r(()=>[...e[22]||(e[22]=[i(" Die maximale Leistung wird lediglich für eine Plausibilitätsprüfung der Speicherwerte genutzt. Bei 0kW erfolgt keine Prüfung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),o(c,{title:"Struktur",collapsible:!0,collapsed:!0},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",O,[o(h,{subtype:"info"},{default:r(()=>[...e[23]||(e[23]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",H,[o(y,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateState("openWB/counter/get/hierarchy",n))},{help:r(()=>[...e[24]||(e[24]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])]),_:1},8,["model-value","labels"])]))]),_:1}),o(C,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[4]||(e[4]=n=>t.$emit("reset")),onDefaults:e[5]||(e[5]=n=>t.$emit("defaults"))})])])}const X=A(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfiguration.vue"]]);export{X as default}; +import{F as L,l as V,a3 as x,a2 as q}from"./vendor-fortawesome-CBc-2W7w.js";import{C as Z}from"./index-MVrRMMo2.js";import{S as $}from"./OpenwbSortableList-B4YWn8p9.js";import{_ as A,l as u,k as l,e as m,x as d,m as o,q as r,A as i,y as f,u as M,K as v,L as W,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";V.add(x,q);const E={name:"OpenwbLoadManagementConfigView",components:{SortableList:$,FontAwesomeIcon:L},mixins:[Z],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/bat/+/config/max_power",writeable:!0},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/counter/+/config/max_currents",writeable:!0},{topic:"openWB/counter/+/config/max_power_errorcase",writeable:!0},{topic:"openWB/counter/+/config/max_total_power",writeable:!0},{topic:"openWB/counter/config/consider_less_charging",writeable:!0},{topic:"openWB/counter/config/home_consumption_source_id",writeable:!0},{topic:"openWB/counter/get/hierarchy",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/pv/+/config/max_ac_out",writeable:!0},{topic:"openWB/system/device/+/component/+/config",writeable:!1}]}},computed:{componentConfigurations(){return this.getWildcardTopics("openWB/system/device/+/component/+/config")},componentConfigs:{get(){return t=>{let e=this.componentConfigurations;return Object.keys(e).filter(s=>e[s]?.type.includes(t)).reduce((s,b)=>({...s,[b]:e[b]}),{})}}},counterConfigs:{get(){return this.componentConfigs("counter")}},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.sort((e,s)=>e.text==s.text?0:e.text>s.text?1:-1)},inverterConfigs:{get(){return this.componentConfigs("inverter")}},batConfigs:{get(){return this.componentConfigs("bat")}},hierarchyLabels:{get(){let t={};for(const e of Object.values(this.$store.state.mqtt["openWB/counter/get/hierarchy"]))t={...t,...this.getElementTreeNames(e)};return t}},getHcSourceIdOptions(){let t=[{value:null,text:"von openWB berechnen (in 99% der Fälle die richtige Einstellung)"}],e=[{label:"Eingerichtete Zähler-Komponenten",options:[...this.counterOptions]}];return{options:t,groups:e}}},methods:{getElementTreeNames(t){let e={};if(t.type=="cp"){let s=this.getChargePoint(t.id);s&&(e[t.id]=s.name)}else{let s=this.getComponent(t.id);s&&(e[t.id]=s.name)}return t.children.forEach(s=>{e={...e,...this.getElementTreeNames(s)}}),e},getComponent(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/system/device/[0-9]+/component/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},getChargePoint(t){let e;return Object.keys(this.$store.state.mqtt).forEach(s=>{s.match("^openWB/chargepoint/"+t+"/config$")&&(e=this.$store.state.mqtt[s])}),e},isComponentType(t,e){return t?.split("_").includes(e)}}},U={class:"loadManagementConfig"},D={name:"loadManagementConfigForm"},F={key:0},P={key:1},O={key:0},H={key:1};function N(t,e,s,b,T,g){const h=u("openwb-base-alert"),B=u("router-link"),S=u("openwb-base-button-group-input"),z=u("openwb-base-select-input"),w=u("openwb-base-heading"),k=u("font-awesome-icon"),p=u("openwb-base-number-input"),c=u("openwb-base-card"),y=u("sortable-list"),C=u("openwb-base-submit-buttons");return l(),m("div",U,[d("form",D,[o(c,{title:"Einstellungen",collapsible:!0,collapsed:!1},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",F,[o(h,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",P,[s.installAssistantActive?M("",!0):(l(),f(h,{key:0,subtype:"info"},{default:r(()=>[e[8]||(e[8]=i(" Die Konfiguration für die externe Steuerung durch den Netzbetreiber (RSE, EMS, §14a) erfolgt in den ",-1)),o(B,{to:"/IoConfiguration"},{default:r(()=>[...e[7]||(e[7]=[i("Einstellungen der Ein-/Ausgänge",-1)])]),_:1}),e[9]||(e[9]=i(" im Bereich der Aktionen. ",-1))]),_:1})),o(S,{title:"Fahrzeuge, die nicht mit Sollstrom laden",buttons:[{buttonValue:!1,text:"nicht berücksichtigen",class:"btn-outline-danger"},{buttonValue:!0,text:"berücksichtigen",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/counter/config/consider_less_charging"],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateState("openWB/counter/config/consider_less_charging",n))},{help:r(()=>[...e[10]||(e[10]=[d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, im Lastmanagement berücksichtigt werden, wird für diese der Sollstrom reserviert. Dadurch können bei Eingreifen des Lastmanagements andere Fahrzeuge möglicherweise nur mit reduzierter Stromstärke laden und der reservierte Strom wird nicht genutzt. Wenn die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, nutzen sie den für sie reservierten Strom. ",-1),d("p",null," Wenn angesteckte Fahrzeuge, die nicht oder nicht mit der Sollstromstärke laden, nicht im Lastmanagement berücksichtigt werden, wird für diese auch kein Strom bei vorliegender Ladefreigabe reserviert bzw. es wird nur der tatsächlich genutzte Strom im Lastmanagement berücksichtigt. Andere Fahrzeuge können dadurch mit höherer Stromstärke laden. Wenn die maximalen Lastmanagement-Grenzen fast erreicht sind und die Fahrzeuge wieder Leistung beziehen, z.B. um zu klimatisieren, kann es zu einer kurzzeitigen Überschreitung der Lastmanagement-Grenzen kommen, bis im nächsten Zyklus die Stromstärken aller Ladepunkte an die neue Situation angepasst wurden. Das kurzzeitige Überschreiten der Maximal-Werte stellt für die Sicherungen in der Regel kein Problem dar. ",-1)])]),_:1},8,["model-value"]),o(z,{title:"Hausverbrauch",options:g.getHcSourceIdOptions.options,groups:g.getHcSourceIdOptions.groups,"model-value":t.$store.state.mqtt["openWB/counter/config/home_consumption_source_id"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateState("openWB/counter/config/home_consumption_source_id",n))},{help:r(()=>[...e[11]||(e[11]=[i(" Meist ist der Zähler am EVU-Punkt installiert, dann muss hier 'von openWB berechnen' ausgewählt werden. Wenn der Zähler im Hausverbrauchszweig installiert ist, die Struktur wie im ",-1),d("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"}," Wiki ",-1),i(" beschrieben anordnen und hier den Hausverbrauchszähler auswählen. Dann wird dieser Wert abzüglich der Ladeleistung als Hausverbrauch erfasst. ",-1)])]),_:1},8,["options","groups","model-value"]),o(w,null,{default:r(()=>[...e[12]||(e[12]=[i(" Vorhandene Zählermodule ",-1)])]),_:1}),o(h,{subtype:"info"},{default:r(()=>[...e[13]||(e[13]=[i(" Die maximale Leistung wird nur für den EVU-Zähler berücksichtigt. Bei Zwischenzählern begrenzt das Lastmanagement rein anhand der maximalen Phasenströme.",-1),d("br",null,null,-1),i(" Wenn ein Zähler nicht auslesbar ist, wird weiterhin versucht, diesen auszulesen und nach 60s die angenommene Leistung im Fehlerfall verwendet, die unten für jeden Zähler eingestellt wird, um eine Überlast zu vermeiden. Die angenommene Leistung wird gleichmäßig auf die Phasen verteilt.",-1),d("br",null,null,-1),i(" Üblicherweise sind Hausanschlüsse mit 24kW und 3*35A bzw. 43kW und 3*63A abgesichert. ",-1)])]),_:1}),(l(!0),m(v,null,W(g.counterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"danger"},{header:r(()=>[o(k,{icon:["fas","gauge-high"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung",min:1,step:.1,required:"",unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_total_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_total_power",a*1e3)},{help:r(()=>[...e[14]||(e[14]=[i(" Maximal zulässige Leistung für diesen (Zwischen-)Zähler. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L1",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][0],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"0")},{help:r(()=>[...e[15]||(e[15]=[i(" Maximal zulässiger Strom für die Phase 1 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L2",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][1],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"1")},{help:r(()=>[...e[16]||(e[16]=[i(" Maximal zulässiger Strom für die Phase 2 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximaler Strom L3",min:6,step:1,unit:"A",required:"","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_currents"][2],"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_currents",a,"2")},{help:r(()=>[...e[17]||(e[17]=[i(" Maximal zulässiger Strom für die Phase 3 dieses (Zwischen-)Zählers. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),o(p,{title:"Maximale Leistung im Fehlerfall",min:0,step:.1,unit:"kW","model-value":t.$store.state.mqtt["openWB/counter/"+n.id+"/config/max_power_errorcase"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/counter/"+n.id+"/config/max_power_errorcase",a*1e3)},{help:r(()=>[...e[18]||(e[18]=[i(" Angenommen Leistung für diesen (Zwischen-)Zähler, falls vom Zähler keine Werte abgefragt werden können. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[19]||(e[19]=[i(" Vorhandene Wechselrichtermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.inverterConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"success"},{header:r(()=>[o(k,{icon:["fas","solar-panel"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Ausgangsleistung des Wechselrichters",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/pv/"+n.id+"/config/max_ac_out"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/pv/"+n.id+"/config/max_ac_out",a*1e3)},{help:r(()=>[...e[20]||(e[20]=[i(" Bei 0 kW erfolgt keine Berücksichtigung der maximalen Ausgangsleistung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128)),o(w,null,{default:r(()=>[...e[21]||(e[21]=[i(" Vorhandene Speichermodule ",-1)])]),_:1}),(l(!0),m(v,null,W(g.batConfigs,n=>(l(),f(c,{key:n.id,collapsible:!0,collapsed:!0,subtype:"warning"},{header:r(()=>[o(k,{icon:["fas","car-battery"]}),i(" "+_(n.name),1)]),default:r(()=>[o(p,{title:"Maximale Leistung des Speichers",min:0,step:.1,unit:"kW",required:"","model-value":t.$store.state.mqtt["openWB/bat/"+n.id+"/config/max_power"]/1e3,"onUpdate:modelValue":a=>t.updateState("openWB/bat/"+n.id+"/config/max_power",a*1e3)},{help:r(()=>[...e[22]||(e[22]=[i(" Die maximale Leistung wird lediglich für eine Plausibilitätsprüfung der Speicherwerte genutzt. Bei 0kW erfolgt keine Prüfung. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1024))),128))]))]),_:1}),o(c,{title:"Struktur",collapsible:!0,collapsed:!0},{default:r(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(l(),m("div",O,[o(h,{subtype:"info"},{default:r(()=>[...e[23]||(e[23]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(l(),m("div",H,[o(y,{title:"Anordnung der Komponenten","model-value":t.$store.state.mqtt["openWB/counter/get/hierarchy"],labels:g.hierarchyLabels,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateState("openWB/counter/get/hierarchy",n))},{help:r(()=>[...e[24]||(e[24]=[i(" Durch die Anordnung der Komponenten werden Abhängigkeiten abgebildet.",-1),d("br",null,null,-1),i(" An erster Stelle muss eine Zählerkomponente stehen, die den Netzanschlusspunkt erfasst. Dafür kann auch ein virtueller Zähler genutzt werden.",-1),d("br",null,null,-1),i(" Die weiteren Komponenten müssen hierarchisch so angeordnet werden, wie sie auch physisch im Stromnetz angeschlossen werden.",-1),d("br",null,null,-1),i(" Bei DC-gekoppelten Speichern sind diese hinter dem zugehörigen Wechselrichter zu platzieren, damit die Abhängigkeit in der Regelung berücksichtigt werden kann. ",-1)])]),_:1},8,["model-value","labels"])]))]),_:1}),o(C,{"form-name":"loadManagementConfigForm",onSave:e[3]||(e[3]=n=>t.$emit("save",t.mqttTopicsToPublish)),onReset:e[4]||(e[4]=n=>t.$emit("reset")),onDefaults:e[5]||(e[5]=n=>t.$emit("defaults"))})])])}const X=A(E,[["render",N],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/LoadManagementConfiguration.vue"]]);export{X as default}; diff --git a/web/settings/assets/MqttBridgeConfiguration-DpHaWJdF.js b/web/settings/assets/MqttBridgeConfiguration-CDPcpDOw.js similarity index 99% rename from web/settings/assets/MqttBridgeConfiguration-DpHaWJdF.js rename to web/settings/assets/MqttBridgeConfiguration-CDPcpDOw.js index ad6c8de39f..a1c4850a26 100644 --- a/web/settings/assets/MqttBridgeConfiguration-DpHaWJdF.js +++ b/web/settings/assets/MqttBridgeConfiguration-CDPcpDOw.js @@ -1 +1 @@ -import{F as z,l as D,d as A,aj as C}from"./vendor-fortawesome-CBc-2W7w.js";import{C as W}from"./index-D_eD74fL.js";import{_ as q,l as u,k as m,e as b,m as a,q as o,A as s,J as L,x as g,y as _,u as B,K as T,L as Q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";D.add(A,C);const Z={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:z},mixins:[W],emits:["sendCommand","save","reset"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0}],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){const t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");if(!t||typeof t!="object")return{};const e={...t};for(const[v,h]of Object.entries(e))h?.remote?.is_openwb_cloud&&delete e[v];return e}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},y={class:"mqttBridgeConfiguration"},E={key:0},I={key:1},N=["name"];function P(t,e,v,h,f,i){const S=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),w=u("font-awesome-icon"),k=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),U=u("openwb-base-number-input"),x=u("openwb-base-submit-buttons"),M=u("openwb-base-card");return m(),b(T,null,[a(S,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Willst Du die MQTT-Brücke "'+L(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",y,[a(c,{subtype:"danger"},{default:o(()=>[...e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])]),_:1}),a(M,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),_(k,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(w,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",E,[a(c,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),_(c,{key:0,subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])]),_:1})):B("",!0),(m(!0),b(T,null,Q(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(M,{title:l?.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(k,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(w,{icon:["fas","trash"]})]),_:1},8,["onClick"])]),footer:o(()=>[a(x,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l?.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l?.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l?.remote?.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l?.remote?.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l?.remote?.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l?.remote?.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l?.remote?.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l?.remote?.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l?.remote?.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l?.remote?.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.remote?.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=q(Z,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfiguration.vue"]]);export{J as default}; +import{F as z,l as D,d as A,aj as C}from"./vendor-fortawesome-CBc-2W7w.js";import{C as W}from"./index-MVrRMMo2.js";import{_ as q,l as u,k as m,e as b,m as a,q as o,A as s,J as L,x as g,y as _,u as B,K as T,L as Q}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";D.add(A,C);const Z={name:"OpenwbMqttBridgeConfigurationView",components:{FontAwesomeIcon:z},mixins:[W],emits:["sendCommand","save","reset"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/mqtt/bridge/+",writeable:!0}],showMqttBridgeModal:!1,modalMqttBridgeIndex:void 0}},computed:{configuredMqttBridges:{get(){const t=this.getWildcardTopics("openWB/system/mqtt/bridge/+");if(!t||typeof t!="object")return{};const e={...t};for(const[v,h]of Object.entries(e))h?.remote?.is_openwb_cloud&&delete e[v];return e}}},methods:{addMqttBridge(t){t.stopPropagation(),this.$emit("sendCommand",{command:"addMqttBridge",data:{}})},getMqttBridgeIndex(t){return parseInt(t.match(/(?:\/)(\d+)$/)[1])},removeMqttBridgeModal(t,e){e.stopPropagation(),this.modalMqttBridgeIndex=this.getMqttBridgeIndex(t),this.showMqttBridgeModal=!0},removeMqttBridge(t,e){this.showMqttBridgeModal=!1,e=="confirm"&&this.$emit("sendCommand",{command:"removeMqttBridge",data:{bridge:t}})},getMqttBridgeName(t){return this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t]?this.$store.state.mqtt["openWB/system/mqtt/bridge/"+t].name:t}}},y={class:"mqttBridgeConfiguration"},E={key:0},I={key:1},N=["name"];function P(t,e,v,h,f,i){const S=u("openwb-base-modal-dialog"),c=u("openwb-base-alert"),w=u("font-awesome-icon"),k=u("openwb-base-avatar"),p=u("openwb-base-text-input"),d=u("openwb-base-button-group-input"),V=u("openwb-base-heading"),U=u("openwb-base-number-input"),x=u("openwb-base-submit-buttons"),M=u("openwb-base-card");return m(),b(T,null,[a(S,{show:f.showMqttBridgeModal,title:"MQTT-Brücke löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=l=>i.removeMqttBridge(f.modalMqttBridgeIndex,l))},{default:o(()=>[s(' Willst Du die MQTT-Brücke "'+L(i.getMqttBridgeName(f.modalMqttBridgeIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",y,[a(c,{subtype:"danger"},{default:o(()=>[...e[1]||(e[1]=[s(" ACHTUNG: Die Konfiguration einer MQTT-Brücke erlaubt allen Nutzern mit Zugang zum entfernten MQTT-Server alle weitergeleiteten Daten dieser openWB einzusehen!",-1),g("br",null,null,-1),s(' Es wird dringend empfohlen, dies nur für nicht-öffentliche MQTT-Server unter Verwendung starker Transport-Verschlüsselung (TLS) mit persönlichem Login und strenger Zugriffskontrolle (zumindest für die MQTT-Themen unterhalb von "Entfernter Präfix") zu aktivieren! ',-1)])]),_:1}),a(M,{title:"Konfigurierte MQTT-Brücken"},{actions:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!1?(m(),_(k,{key:0,class:"bg-success clickable",onClick:i.addMqttBridge},{default:o(()=>[a(w,{icon:["fas","plus"]})]),_:1},8,["onClick"])):B("",!0)]),default:o(()=>[t.$store.state.mqtt["openWB/general/extern"]===!0?(m(),b("div",E,[a(c,{subtype:"info"},{default:o(()=>[...e[2]||(e[2]=[s(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(m(),b("div",I,[Object.keys(i.configuredMqttBridges).length===0?(m(),_(c,{key:0,subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[s(" Es wurde noch keine MQTT-Brücke konfiguriert. ",-1)])]),_:1})):B("",!0),(m(!0),b(T,null,Q(i.configuredMqttBridges,(l,r)=>(m(),b("form",{key:r,name:"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r)},[a(M,{title:l?.name,collapsible:!0,collapsed:!0,subtype:"primary"},{actions:o(()=>[a(k,{class:"bg-danger clickable",onClick:n=>i.removeMqttBridgeModal(r,n)},{default:o(()=>[a(w,{icon:["fas","trash"]})]),_:1},8,["onClick"])]),footer:o(()=>[a(x,{"form-name":"mqttBridgeConfigurationForm"+i.getMqttBridgeIndex(r),"hide-defaults":!0,onSave:n=>t.$emit("save",[r]),onReset:n=>t.$emit("reset",[r])},null,8,["form-name","onSave","onReset"])]),default:o(()=>[a(p,{title:"Bezeichnung",subtype:"text",required:"",pattern:"[A-Za-z0-9]+","model-value":l?.name,"onUpdate:modelValue":n=>t.updateState(r,n,"name")},{help:o(()=>[...e[4]||(e[4]=[s(" Die Bezeichnung darf nur aus Buchstaben ohne Umlaute und Zahlen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke aktivieren",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l?.active,"onUpdate:modelValue":n=>t.updateState(r,n,"active")},null,8,["model-value","onUpdate:modelValue"]),e[14]||(e[14]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[5]||(e[5]=[s(" Einstellungen zur Verbindung ",-1)])]),_:1}),a(p,{title:"Entfernter Server",subtype:"host",required:"","model-value":l?.remote?.host,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.host")},null,8,["model-value","onUpdate:modelValue"]),a(U,{title:"Entfernter Port",required:"",min:1,max:65535,"model-value":l?.remote?.port,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.port")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Benutzername",subtype:"user",required:"",pattern:"[a-zA-Z0-9_\\-+.]+","model-value":l?.remote?.username,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.username")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Passwort",subtype:"password",required:"","model-value":l?.remote?.password,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.password")},null,8,["model-value","onUpdate:modelValue"]),a(p,{title:"Präfix",subtype:"text",pattern:"[A-Za-z0-9_\\-]+(\\/[A-Za-z0-9_\\-]+)?\\/","model-value":l?.remote?.prefix,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.prefix")},{help:o(()=>[...e[6]||(e[6]=[s(' Das Präfix darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. Optional kann mit einem Schrägstrich "/" eine Topic-Struktur abgebildet werden. Am Ende des Präfixes muss ein Schrägstrich "/" stehen. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(p,{title:"Client ID",subtype:"text",required:"",pattern:"[A-Za-z0-9_\\-]+","model-value":l?.remote?.client_id,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.client_id")},{help:o(()=>[...e[7]||(e[7]=[s(" Die Client ID darf nur aus Buchstaben ohne Umlaute, Zahlen, Binde- und Unterstrichen bestehen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"MQTT Protokoll",required:"required",buttons:[{buttonValue:"mqttv31",text:"v3.1"},{buttonValue:"mqttv311",text:"v3.1.1"}],"model-value":l?.remote?.protocol,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.protocol")},null,8,["model-value","onUpdate:modelValue"]),a(d,{title:"TLS Version",buttons:[{buttonValue:"auto",text:"Automatisch",class:"btn-outline-success"},{buttonValue:"tlsv1.0",text:"v1.0",class:"btn-outline-warning"},{buttonValue:"tlsv1.1",text:"v1.1",class:"btn-outline-warning"},{buttonValue:"tlsv1.2",text:"v1.2"}],"model-value":l?.remote?.tls_version,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.tls_version")},{help:o(()=>[...e[8]||(e[8]=[s(' In der Einstellung "Automatisch" wird die Version zwischen Client und Server ausgehandelt. Wenn erforderlich, kann eine spezielle Version erzwungen werden. Versionen kleiner 1.2 gelten als veraltet und sollten nicht mehr verwendet werden. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Brücke signalisieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.remote?.try_private,"onUpdate:modelValue":n=>t.updateState(r,n,"remote.try_private")},{help:o(()=>[...e[9]||(e[9]=[s(" Aktiviert eine proprietäre Protokoll-Erweiterung des Mosquitto Brokers, welche dem entfernten Broker signalisiert, dass es sich um eine MQTT Brücke handelt. Ergibt bessere Leistung mit Mosquitto-Brokern, ist jedoch inkompatibel mit vielen anderen MQTT-Brokern. Daher bitte nur aktivieren, wenn der Ziel-Broker sicher ein Mosquitto-Broker ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[15]||(e[15]=g("hr",null,null,-1)),a(V,null,{default:o(()=>[...e[10]||(e[10]=[s(" Datenübertragung ",-1)])]),_:1}),a(d,{title:"Alle Statusdaten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.status,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.status")},{help:o(()=>[...e[11]||(e[11]=[s(" Wenn aktiviert, werden alle Statusdaten (z.B. Ladezustand, Leistung, Spannungen, Ströme, etc.) der angeschlossenen Komponenten und Ladepunkte übertragen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Datenserien für Diagramme",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.graph,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.graph")},{help:o(()=>[...e[12]||(e[12]=[s(" Wenn aktiviert, werden alle Datenserien für die Diagramme (z.B. Leistung über Zeit) der angeschlossenen Komponenten und Ladepunkte übertragen. Dies sind deutlich mehr Daten als bei den Statusdaten allein.",-1),g("br",null,null,-1),s(" Diese Einstellung sollte nur aktiviert werden, wenn die Daten auch tatsächlich benötigt und interpretiert werden können. In der Regel werden die Daten nur für die Web- und Display-Themes benötigt und können daher bei einer MQTT-Brücke deaktiviert bleiben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),a(d,{title:"Fernkonfiguration ermöglichen",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":l?.data_transfer?.configuration,"onUpdate:modelValue":n=>t.updateState(r,n,"data_transfer.configuration")},{help:o(()=>[...e[13]||(e[13]=[s(' Wenn aktiviert, können über die MQTT-Brücke auch Konfigurationsänderungen (z.B. Ladeleistung, Zeitsteuerungen, etc.) an die openWB über die Topics "openWB/set/*" gesendet werden. Dies sollte nur aktiviert werden, wenn der entfernte MQTT-Server und alle Nutzer, welche darauf Zugriff haben, absolut vertrauenswürdig sind. Ansonsten besteht die Gefahr, dass unbefugte Nutzer die Konfiguration der openWB verändern und z.B. den Ladevorgang manipulieren. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1032,["title"])],8,N))),128))]))]),_:1})])],64)}const J=q(Z,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/MqttBridgeConfiguration.vue"]]);export{J as default}; diff --git a/web/settings/assets/OpenwbSortableList-CSUuyi79.js b/web/settings/assets/OpenwbSortableList-B4YWn8p9.js similarity index 97% rename from web/settings/assets/OpenwbSortableList-CSUuyi79.js rename to web/settings/assets/OpenwbSortableList-B4YWn8p9.js index 727b0368e9..5d00de1302 100644 --- a/web/settings/assets/OpenwbSortableList-CSUuyi79.js +++ b/web/settings/assets/OpenwbSortableList-B4YWn8p9.js @@ -1 +1 @@ -import{O as V}from"./index-D_eD74fL.js";import{_ as b,a4 as v,l as o,k as l,y as r,q as d,x as f,j as k,m as S,u as p,A as g,J as _,D as B,f as m,e as O}from"./vendor-Bo8v-nQD.js";import{F as L,l as A,at as C,au as E,X as N,a4 as q,a3 as j,a2 as x}from"./vendor-fortawesome-CBc-2W7w.js";A.add(C,E,N,q,j,x);const D={name:"OpenwbNestedList",components:{draggable:v,FontAwesomeIcon:L},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0},nesting:{type:Boolean,default:!0}},methods:{classes(e){var a="";switch(e.type){case"bat":a+="battery";break;case"cp":a+="charge-point";break;default:a+=e.type;break}return a},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function U(e,a,t,w,h,n){const i=o("font-awesome-icon"),u=o("openwb-nested-list",!0),c=o("draggable");return l(),r(c,{class:"dragArea w-100 mb-0",tag:"ul",list:t.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[f("li",null,[f("div",{class:k(["element-titel",n.classes(s)])},[f("span",null,[S(i,{class:"handle",icon:["fas",t.nesting?"arrows-alt":"arrows-up-down"]},null,8,["icon"]),n.getElementIcon(s)?(l(),r(i,{key:0,icon:n.getElementIcon(s)},null,8,["icon"])):p("",!0),g(" "+_(n.getElementLabel(s.id)),1)])],2),t.nesting&&s.children?(l(),r(u,{key:0,modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:t.labels,nesting:t.nesting},null,8,["modelValue","onUpdate:modelValue","labels","nesting"])):p("",!0)])]),_:1},8,["list"])}const I=b(D,[["render",U],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),W={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:V,OpenwbNestedList:I},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0},nesting:{type:Boolean,default:!0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},F={key:1};function z(e,a,t,w,h,n){const i=o("openwb-nested-list"),u=o("openwb-base-setting-element");return l(),r(u,null,B({title:d(()=>[m(e.$slots,"title",{},()=>[g(_(t.title),1)])]),default:d(()=>[n.value!==void 0?(l(),r(i,{key:0,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=c=>n.value=c),labels:t.labels,nesting:t.nesting},null,8,["modelValue","labels","nesting"])):(l(),O("div",F,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[m(e.$slots,"help")]),key:"0"}:void 0]),1024)}const P=b(W,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{P as S}; +import{O as V}from"./index-MVrRMMo2.js";import{_ as b,a4 as v,l as o,k as l,y as r,q as d,x as f,j as k,m as S,u as p,A as g,J as _,D as B,f as m,e as O}from"./vendor-Bo8v-nQD.js";import{F as L,l as A,at as C,au as E,X as N,a4 as q,a3 as j,a2 as x}from"./vendor-fortawesome-CBc-2W7w.js";A.add(C,E,N,q,j,x);const D={name:"OpenwbNestedList",components:{draggable:v,FontAwesomeIcon:L},props:{list:{type:Object,required:!1,default:void 0},labels:{type:Object,required:!1,default:void 0},nesting:{type:Boolean,default:!0}},methods:{classes(e){var a="";switch(e.type){case"bat":a+="battery";break;case"cp":a+="charge-point";break;default:a+=e.type;break}return a},getElementLabel(e){return this.labels&&e in this.labels?this.labels[e]:e},getElementIcon(e){switch(e.type){case"bat":return["fas","car-battery"];case"counter":return["fas","gauge-high"];case"cp":return["fas","charging-station"];case"inverter":return["fas","solar-panel"];default:return}}}};function U(e,a,t,w,h,n){const i=o("font-awesome-icon"),u=o("openwb-nested-list",!0),c=o("draggable");return l(),r(c,{class:"dragArea w-100 mb-0",tag:"ul",list:t.list,group:{name:"g1"},"item-key":"id",handle:".handle"},{item:d(({element:s})=>[f("li",null,[f("div",{class:k(["element-titel",n.classes(s)])},[f("span",null,[S(i,{class:"handle",icon:["fas",t.nesting?"arrows-alt":"arrows-up-down"]},null,8,["icon"]),n.getElementIcon(s)?(l(),r(i,{key:0,icon:n.getElementIcon(s)},null,8,["icon"])):p("",!0),g(" "+_(n.getElementLabel(s.id)),1)])],2),t.nesting&&s.children?(l(),r(u,{key:0,modelValue:s.children,"onUpdate:modelValue":y=>s.children=y,labels:t.labels,nesting:t.nesting},null,8,["modelValue","onUpdate:modelValue","labels","nesting"])):p("",!0)])]),_:1},8,["list"])}const I=b(D,[["render",U],["__scopeId","data-v-82c9421a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbNestedList.vue"]]),W={name:"OpenwbSortableList",components:{OpenwbBaseSettingElement:V,OpenwbNestedList:I},props:{id:{type:String,required:!1,default:void 0},title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:void 0},labels:{type:Object,default:void 0},nesting:{type:Boolean,default:!0}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},F={key:1};function z(e,a,t,w,h,n){const i=o("openwb-nested-list"),u=o("openwb-base-setting-element");return l(),r(u,null,B({title:d(()=>[m(e.$slots,"title",{},()=>[g(_(t.title),1)])]),default:d(()=>[n.value!==void 0?(l(),r(i,{key:0,modelValue:n.value,"onUpdate:modelValue":a[0]||(a[0]=c=>n.value=c),labels:t.labels,nesting:t.nesting},null,8,["modelValue","labels","nesting"])):(l(),O("div",F,"Warte auf Daten..."))]),_:2},[e.$slots.help?{name:"help",fn:d(()=>[m(e.$slots,"help")]),key:"0"}:void 0]),1024)}const P=b(W,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbSortableList.vue"]]);export{P as S}; diff --git a/web/settings/assets/SecurityConfiguration-Ckkg6YKx.js b/web/settings/assets/SecurityConfiguration-Dlmaxpov.js similarity index 99% rename from web/settings/assets/SecurityConfiguration-Ckkg6YKx.js rename to web/settings/assets/SecurityConfiguration-Dlmaxpov.js index 2e5619d685..0b7f716a6f 100644 --- a/web/settings/assets/SecurityConfiguration-Ckkg6YKx.js +++ b/web/settings/assets/SecurityConfiguration-Dlmaxpov.js @@ -1,2 +1,2 @@ -import{F as q,l as M,A as _,af as E,B as P,ao as L,d as T,aj as Z}from"./vendor-fortawesome-CBc-2W7w.js";import{C as I}from"./index-D_eD74fL.js";import{_ as O,l as w,k as u,e as f,m as i,q as r,A as l,x as d,y as g,J as k,u as b,K as U,L as W,z as N,j as H}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";M.add(_,E,P,L,T,Z);const F={name:"OpenwbSecurityView",components:{FontAwesomeIcon:q},mixins:[I],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","sendCommand"],data(){return{mqttTopics:[{topic:"$CONTROL/dynamic-security/v1/response",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/allow_unencrypted_access",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/web_theme",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!1},{topic:"openWB/optional/int_display/theme",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!1}],activeControlCommand:null,controlCommandsQueue:[],clients:[],clientDetails:{},groups:[],groupDetails:{},rawRoles:[],roleDetails:{},rolesVersion:null,showAddUserModal:!1,newClientName:null,newClientEmail:null,newClientPassword:null,newClientPasswordConfirmation:null,showAddGroupModal:!1,newGroupName:null,anonymousGroupName:null,dynSecAdminRoleName:"dynsec-admin",userGroupName:"user",displayGroupName:"display",defaultAclAccess:[],showResetModal:!1,skipInit:!1}},computed:{dynSecResponse(){return this.$store.state.mqtt["$CONTROL/dynamic-security/v1/response"]},loggedInUser(){return this.$store.state.local.username||null},userManagementActive:{get(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},set(t){this.skipInit=!0,this.updateState("openWB/system/security/user_management_active",t)}},addUserDisabled(){return!this.newClientName||!this.newClientEmail||!this.newClientPassword||!this.newClientPasswordConfirmation||this.newClientPassword!==this.newClientPasswordConfirmation||this.clients.includes(this.newClientName)},addGroupDisabled(){return!this.newGroupName||this.groups.includes(this.newGroupName)},readableAcls(){return t=>!t||!Array.isArray(t)?"":t.sort((e,h)=>e.topich.topic?1:0).map(e=>{const v={publishClientSend:"Veröffentlichen",publishClientReceive:"Empfangen",subscribe:"Abonnieren",unsubscribe:"Abonnement aufheben",subscribeLiteral:"Abonnieren (exakt)",unsubscribeLiteral:"Abonnement aufheben (exakt)",subscribePattern:"Abonnieren (Muster)",unsubscribePattern:"Abonnement aufheben (Muster)"}[e.acltype]||e.acltype,s=e.allow===!0?"erlaubt":e.allow===!1?"verboten":"unbekannt";return`${e.topic?'"'+e.topic+'"':""} -> ${v} ${s}`}).join(` +import{F as q,l as M,A as _,af as E,B as P,ao as L,d as T,aj as Z}from"./vendor-fortawesome-CBc-2W7w.js";import{C as I}from"./index-MVrRMMo2.js";import{_ as O,l as w,k as u,e as f,m as i,q as r,A as l,x as d,y as g,J as k,u as b,K as U,L as W,z as N,j as H}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";M.add(_,E,P,L,T,Z);const F={name:"OpenwbSecurityView",components:{FontAwesomeIcon:q},mixins:[I],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","defaults","sendCommand"],data(){return{mqttTopics:[{topic:"$CONTROL/dynamic-security/v1/response",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/allow_unencrypted_access",writeable:!0},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/general/web_theme",writeable:!1},{topic:"openWB/io/action/+/config",writeable:!1},{topic:"openWB/optional/int_display/theme",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!1}],activeControlCommand:null,controlCommandsQueue:[],clients:[],clientDetails:{},groups:[],groupDetails:{},rawRoles:[],roleDetails:{},rolesVersion:null,showAddUserModal:!1,newClientName:null,newClientEmail:null,newClientPassword:null,newClientPasswordConfirmation:null,showAddGroupModal:!1,newGroupName:null,anonymousGroupName:null,dynSecAdminRoleName:"dynsec-admin",userGroupName:"user",displayGroupName:"display",defaultAclAccess:[],showResetModal:!1,skipInit:!1}},computed:{dynSecResponse(){return this.$store.state.mqtt["$CONTROL/dynamic-security/v1/response"]},loggedInUser(){return this.$store.state.local.username||null},userManagementActive:{get(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},set(t){this.skipInit=!0,this.updateState("openWB/system/security/user_management_active",t)}},addUserDisabled(){return!this.newClientName||!this.newClientEmail||!this.newClientPassword||!this.newClientPasswordConfirmation||this.newClientPassword!==this.newClientPasswordConfirmation||this.clients.includes(this.newClientName)},addGroupDisabled(){return!this.newGroupName||this.groups.includes(this.newGroupName)},readableAcls(){return t=>!t||!Array.isArray(t)?"":t.sort((e,h)=>e.topich.topic?1:0).map(e=>{const v={publishClientSend:"Veröffentlichen",publishClientReceive:"Empfangen",subscribe:"Abonnieren",unsubscribe:"Abonnement aufheben",subscribeLiteral:"Abonnieren (exakt)",unsubscribeLiteral:"Abonnement aufheben (exakt)",subscribePattern:"Abonnieren (Muster)",unsubscribePattern:"Abonnement aufheben (Muster)"}[e.acltype]||e.acltype,s=e.allow===!0?"erlaubt":e.allow===!1?"verboten":"unbekannt";return`${e.topic?'"'+e.topic+'"':""} -> ${v} ${s}`}).join(` `)},componentName(){return t=>{const e=`openWB/system/device/+/component/${t}/config`;return Object.values(this.getWildcardTopics(e))[0]?.name||void 0}},chargePointName(){return t=>{const e=`openWB/chargepoint/${t}/config`;return this.$store.state.mqtt[e]?.name||void 0}},vehicleName(){return t=>{const e=`openWB/vehicle/${t}/name`;return this.$store.state.mqtt[e]||void 0}},ioDeviceName(){return t=>{const e=`openWB/system/io/${t}/config`;return this.$store.state.mqtt[e]?.name||void 0}},ioActionName(){return t=>{const e=`openWB/io/action/${t}/config`;return this.$store.state.mqtt[e]?.name||void 0}},routes(){return this.$router.getRoutes()},routeName(){return t=>{const e=t.split("-").map(v=>v.charAt(0).toUpperCase()+v.slice(1)).join(""),h=this.routes.find(v=>v.name===e);if(h===void 0){console.warn("No route found for view:",t,"(searched for route name:",e+")");return}return h.meta.heading}},friendlyRoleName(){return t=>{const e=o=>{switch(o[0]){case"counter":return"Zähler";case"inverter":return"Wechselrichter";case"bat":return"Speicher";case"chargepoint":return"Ladepunkt";case"vehicle":return"Fahrzeug";case"io":switch(o[1]){case"device":return"Ein-/Ausgangs Gerät";case"action":return"Ein-/Ausgangs Aktion"}break;default:return o[0]}},h=o=>{let c=o[1],p=e(o),m="",z;switch(o[0]){case"counter":case"inverter":case"bat":m=this.componentName(c)||c;break;case"chargepoint":m=this.chargePointName(c)||c;break;case"vehicle":m=this.vehicleName(c)||c;break;case"io":switch(c=o[2],o[1]){case"device":m=this.ioDeviceName(c)||c;break;case"action":m=this.ioActionName(c)||c;break;default:m=c}break}return s[s.length-2]=="write"?z="MQTT-Input":(z="lesen",["chargepoint","vehicle"].includes(o[0])&&(z+=" und bedienen")),`Daten: ${p} '${m}' (${c}) ${z}`};let v=null;switch(t){case"charge-log-access":case"install-assistant-access":case"data-management-access":case"legal-settings-access":v=t.replace("-access","");break;case"settings-access":return"Einstellungen: Zugang ermöglichen";case"legacy-smart-home-configuration-access":return"Einstellungen: Konfiguration - SmartHome";case"full-access":return"Voller Zugang lesen und schreiben";case this.dynSecAdminRoleName:return"Sicherheits-Administrator";case"basic-display-data":return"Basisdaten: Display";case"basic-system-data":return"Basisdaten: System";case"basic-theme-data":return"Basisdaten: Hauptseite/Theme";case"basic-user-data":return"Basisdaten: Benutzer";case"other-data":return"Daten: Externe Anwendungen lesen und schreiben";case"electricity-price-access":return"Daten: Strompreise lesen";case"graph-access":return"Daten: Verlaufsdiagramm lesen";case"home-consumption-access":return"Daten: Hausverbrauch lesen"}const s=t.split("-");if((t.endsWith("-configuration-access")||t.endsWith("-installation-access")||t.endsWith("-access")&&s.length==2)&&(v=t.replace("-access","")),v!==null){const o=this.routeName(v);if(o!==void 0)return`Einstellungen: ${o}`}if(s[1]=="sum")switch(s[0]){case"inverter":return"Daten: Wechselrichter Summendaten lesen";case"bat":return"Daten: Speicher Summendaten lesen";case"chargepoint":return"Daten: Ladepunkt Summendaten lesen"}if(!isNaN(s[1])&&["counter","inverter","bat","chargepoint","vehicle"].includes(s[0]))return h(s);switch(s[0]){case"vehicle":if(s[1]==="configuration")return"Einstellungen: Fahrzeuge";break;case"io":return s[1]==="configuration"?"Einstellungen: Ein-/Ausgänge":h(s)}return`*${t}*`}},rolesList(){return this.roles.map(t=>({name:t,friendlyName:this.friendlyRoleName(t)})).sort((t,e)=>t.friendlyNamee.friendlyName?1:0)},webThemeSupported(){return this.$store.state.mqtt["openWB/general/web_theme"]?.userManagementSupported===!0},displayThemeSupported(){return this.$store.state.mqtt["openWB/optional/int_display/theme"]?.userManagementSupported===!0}},watch:{dynSecResponse(t){t&&t.responses&&t.responses.forEach(e=>{switch(e.command){case"listClients":this.clients=JSON.parse(JSON.stringify(e.data.clients));break;case"getClient":this.clientDetails[e.data.client.username]=JSON.parse(JSON.stringify(e.data.client));break;case"createClient":case"disableClient":case"enableClient":this.getClientList();break;case"modifyClient":case"deleteClient":this.getClientList(),this.getGroupsDetails();break;case"listGroups":this.groups=JSON.parse(JSON.stringify(e.data.groups));break;case"getAnonymousGroup":this.anonymousGroupName=e.data.group.groupname;break;case"getGroup":this.groupDetails[e.data.group.groupname]=JSON.parse(JSON.stringify(e.data.group));break;case"createGroup":this.getGroupList();break;case"modifyGroup":case"deleteGroup":this.getGroupList(),this.getClientsDetails();break;case"listRoles":this.roles=JSON.parse(JSON.stringify(e.data.roles)).filter(h=>h.startsWith("openwb-version:")?(this.rolesVersion=h.split(":")[1],!1):!0);break;case"getRole":this.roleDetails[e.data.role.rolename]=JSON.parse(JSON.stringify(e.data.role));break;case"getDefaultACLAccess":this.defaultAclAccess=JSON.parse(JSON.stringify(e.data.acls));break;default:console.warn("Unhandled dynamic security response:",e);break}}),this.activeControlCommand=null,this.processControlCommandQueue()},loggedInUser(t,e){t!==e&&this.$router.go()},userManagementActive(t,e){t!==e&&this.init()}},mounted(){this.init()},methods:{init(){if(this.skipInit){console.debug("Skipping initialization of Security view."),this.skipInit=!1;return}this.clients=[],this.clientDetails={},this.groups=[],this.groupDetails={},this.roles=[],this.roleDetails={},this.userManagementActive&&(console.debug("Initializing Security view for user:",this.loggedInUser),this.getAnonymousGroupName(),this.getDefaultAclAccess(),this.getClientList(),this.getGroupList(),this.getRoleList())},handleResetModal(t){this.showResetModal=!1,t==="confirm"&&this.$emit("sendCommand",{command:"resetUserManagement"})},saveSecuritySettings(){this.userManagementActive||(console.info("User management deactivated, removing mqtt cookie."),this.$cookies.remove("mqtt")),this.$emit("save",this.mqttTopicsToPublish)},sendControlCommand(t,e={}){if(this.activeControlCommand!==null){console.warn("Control command already running, please wait.");return}this.activeControlCommand=t;const h={commands:[{command:t,...e}]};console.debug("$CONTROL command:",h),this.$root.doPublish("$CONTROL/dynamic-security/v1",h)},queueControlCommand(t,e={}){this.controlCommandsQueue.push({command:t,payload:e}),this.processControlCommandQueue()},processControlCommandQueue(){if(this.activeControlCommand!==null||this.controlCommandsQueue.length===0)return;const{command:t,payload:e}=this.controlCommandsQueue.shift();this.sendControlCommand(t,e)},getClientList(){this.queueControlCommand("listClients")},getClientsDetails(){this.clients.forEach(t=>{this.queueControlCommand("getClient",{username:t})})},getClient(t){this.queueControlCommand("getClient",{username:t})},createClient(t){if(t==="confirm"){if(!this.newClientName||!this.newClientEmail||!this.newClientPassword||this.newClientPassword!==this.newClientPasswordConfirmation){this.$root.postClientMessage("Ungültige Eingaben. Bitte stelle sicher, dass der Benutzername, die E-Mail-Adresse und das Passwort ausgefüllt sind und die Passwortbestätigung übereinstimmt.","danger");return}this.queueControlCommand("createClient",{username:this.newClientName,password:this.newClientPassword,textname:this.newClientEmail})}this.showAddUserModal=!1,this.newClientName=null,this.newClientEmail=null,this.newClientPassword=null,this.newClientPasswordConfirmation=null},deleteClient(t){if(t===this.loggedInUser){console.error("Cannot delete currently logged in user:",t),this.$root.postClientMessage("Der aktuell angemeldete Benutzer kann nicht gelöscht werden.","danger");return}this.queueControlCommand("deleteClient",{username:t})},toggleClientDisabled(t){const e=this.clientDetails[t]?.disabled||!1;if(t===this.loggedInUser&&e===!1){console.error("Cannot disable currently logged in user:",t),this.$root.postClientMessage("Der aktuell angemeldete Benutzer kann nicht deaktiviert werden.","danger");return}this.queueControlCommand(e?"enableClient":"disableClient",{username:t}),this.queueControlCommand("getClient",{username:t})},modifyClient(t){if(t===this.loggedInUser&&!this.clientDetails[t]?.roles.map(e=>e.rolename).includes(this.dynSecAdminRoleName)&&(console.error(`Cannot remove ${this.dynSecAdminRoleName} role from currently logged in user:`,t),this.$root.postClientMessage(`Die Rolle '${this.friendlyRoleName(this.dynSecAdminRoleName)}' kann vom aktuell angemeldeten Benutzer nicht entfernt werden und wird automatisch wieder hinzugefügt, da sie für die Verwaltung der Benutzerrechte benötigt wird. Bitte wechsle vor der Bearbeitung zu einem anderen Benutzer, um die Rolle zu entfernen.`,"warning"),this.clientDetails[t].roles.push({rolename:this.dynSecAdminRoleName})),[null,void 0,""].includes(this.clientDetails[t].password))delete this.clientDetails[t].password;else if(this.clientDetails[t].username==="admin"){console.warn("Admin password change requested, sending updateAdminPassword command to openWB."),this.$emit("sendCommand",{command:"updateAdminPassword",data:{newPassword:this.clientDetails[t].password}}),setTimeout(()=>{console.warn("Admin password updated via openWB command, updating dynamic security plugin with new password."),this.queueControlCommand("modifyClient",{username:t,...this.clientDetails[t]})},500);return}this.queueControlCommand("modifyClient",{username:t,...this.clientDetails[t]})},getGroupList(){this.queueControlCommand("listGroups")},getAnonymousGroupName(){this.queueControlCommand("getAnonymousGroup")},getGroupsDetails(){this.groups.forEach(t=>{this.queueControlCommand("getGroup",{groupname:t})})},getGroup(t){this.queueControlCommand("getGroup",{groupname:t})},createGroup(t){if(t==="confirm"){if(!this.newGroupName||this.groups.includes(this.newGroupName)){this.$root.postClientMessage("Ungültige Eingabe. Bitte stelle sicher, dass der Gruppenname ausgefüllt ist und noch nicht existiert.","danger");return}this.queueControlCommand("createGroup",{groupname:this.newGroupName})}this.showAddGroupModal=!1,this.newGroupName=null},deleteGroup(t){this.queueControlCommand("deleteGroup",{groupname:t})},modifyGroup(t){this.queueControlCommand("modifyGroup",{groupname:t,...this.groupDetails[t]})},getRoleList(){this.queueControlCommand("listRoles")},getRole(t){this.queueControlCommand("getRole",{rolename:t})},getDefaultAclAccess(){this.queueControlCommand("getDefaultACLAccess")}}},J={class:"security"},Q={name:"addUserForm"},j={name:"addGroupForm"},K={key:1},X={name:"accessForm"},Y={key:0},$={key:1},ee=["title","onClick"],ne={key:0},te=["name"],se={key:1},re={key:1},ie={key:0},le=["name"],ae={key:1},oe={key:1},ue={key:0},de=["name"],me={key:1},pe={key:1};function ge(t,e,h,v,s,o){const c=w("openwb-base-modal-dialog"),p=w("openwb-base-alert"),m=w("openwb-base-text-input"),z=w("openwb-base-button-group-input"),G=w("router-link"),x=w("openwb-base-button-input"),R=w("openwb-base-submit-buttons"),D=w("openwb-base-card"),B=w("FontAwesomeIcon"),y=w("font-awesome-icon"),A=w("openwb-base-avatar"),V=w("openwb-base-array-input"),S=w("openwb-base-textarea");return u(),f("div",J,[i(c,{show:s.showResetModal,title:"Benutzerverwaltung zurücksetzen",subtype:"danger",buttons:[{text:"Alles zurücksetzen!",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=n=>o.handleResetModal(n))},{default:r(()=>[...e[16]||(e[16]=[l(" Bist Du sicher, dass Du die openWB Benutzerverwaltung zurücksetzen möchtest? Hiermit werden alle Benutzer, Gruppen und Rollen gelöscht und auf die Werkseinstellungen zurückgesetzt. Diese Aktion ist irreversibel! ",-1)])]),_:1},8,["show"]),i(c,{show:s.showAddUserModal,title:"Benutzer hinzufügen",subtype:"success",buttons:[{text:"Benutzer hinzufügen",event:"confirm",subtype:"success",disabled:o.addUserDisabled}],onModalResult:e[5]||(e[5]=n=>o.createClient(n))},{default:r(()=>[d("form",Q,[i(p,{subtype:"info"},{default:r(()=>[...e[17]||(e[17]=[l(" Der Benutzername kann nicht mehr geändert werden! ",-1)])]),_:1}),i(m,{modelValue:s.newClientName,"onUpdate:modelValue":e[1]||(e[1]=n=>s.newClientName=n),title:"Benutzername",subtype:"user",required:"",validator:n=>s.clients.includes(n)?"Dieser Benutzername ist bereits vergeben":!0},null,8,["modelValue","validator"]),i(m,{modelValue:s.newClientEmail,"onUpdate:modelValue":e[2]||(e[2]=n=>s.newClientEmail=n),title:"E-Mail",subtype:"email",required:""},null,8,["modelValue"]),i(m,{modelValue:s.newClientPassword,"onUpdate:modelValue":e[3]||(e[3]=n=>s.newClientPassword=n),title:"Passwort",subtype:"password",required:""},null,8,["modelValue"]),i(m,{modelValue:s.newClientPasswordConfirmation,"onUpdate:modelValue":e[4]||(e[4]=n=>s.newClientPasswordConfirmation=n),title:"Passwort bestätigen",subtype:"password",required:"",validator:n=>n===s.newClientPassword||"Kennwörter stimmen nicht überein"},null,8,["modelValue","validator"])])]),_:1},8,["show","buttons"]),i(c,{show:s.showAddGroupModal,title:"Gruppe hinzufügen",subtype:"success",buttons:[{text:"Gruppe hinzufügen",event:"confirm",subtype:"success",disabled:o.addGroupDisabled}],onModalResult:e[7]||(e[7]=n=>o.createGroup(n))},{default:r(()=>[d("form",j,[i(p,{subtype:"info"},{default:r(()=>[...e[18]||(e[18]=[l(" Der Gruppenname kann nicht mehr geändert werden! ",-1)])]),_:1}),i(m,{modelValue:s.newGroupName,"onUpdate:modelValue":e[6]||(e[6]=n=>s.newGroupName=n),title:"Gruppenname",subtype:"user",required:"",validator:n=>s.groups.includes(n)?"Dieser Gruppenname ist bereits vergeben":!0},null,8,["modelValue","validator"])])]),_:1},8,["show","buttons"]),t.$store.state.mqtt["openWB/general/extern"]!==!1?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[l(" Die Einstellungen zur Sicherheit und Benutzerverwaltung werden aktuell nur für primary openWB unterstützt! ",-1)])]),_:1})):(u(),f("div",K,[d("form",X,[i(D,{title:"Allgemein"},{footer:r(()=>[i(R,{"form-name":"accessForm",onSave:o.saveSecuritySettings,onReset:e[11]||(e[11]=n=>t.$emit("reset")),onDefaults:e[12]||(e[12]=n=>t.$emit("defaults"))},null,8,["onSave"])]),default:r(()=>[i(p,{subtype:"danger"},{default:r(()=>[...e[20]||(e[20]=[l(" Der ",-1),d("strong",null,"Safari Browser",-1),l(" hat in der aktuellen ",-1),d("strong",null,"MacOS/iOS Version 26.x",-1),l(" Probleme mit Websocket-Verbindungen über HTTPs, wenn eine IP anstelle des Hostnamens verwendet wird. Das äußert sich darin, dass die Verbindung nicht zuverlässig hergestellt werden kann. Häufig sind mehrere Verbindungsversuche (Seite neu laden) notwendig, damit die Verbindung steht. Sobald die Verbindung hergestellt werden konnte, funktioniert der Zugriff für die aktuelle Sitzung auch mit Safari zuverlässig. Es wird empfohlen, einen anderen Browser zu verwenden oder die openWB über einen Hostnamen aufzurufen, um dieses Problem zu umgehen. ",-1)])]),_:1}),i(z,{title:"Unverschlüsselten Zugang erlauben","model-value":t.$store.state.mqtt["openWB/general/allow_unencrypted_access"],disabled:o.userManagementActive,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateState("openWB/general/allow_unencrypted_access",n))},{help:r(()=>[...e[21]||(e[21]=[d("p",null," Hier kann eingestellt werden, ob unverschlüsselter Zugang zu openWB erlaubt ist. Dies betrifft sowohl den Zugriff über MQTT (Ports 1883 und 9001) als auch über HTTP (Port 80) (Weboberfläche). ",-1),d("p",null,[d("strong",null,"Hinweis:"),l(" Aus Sicherheitsgründen sollte der unverschlüsselte Zugang nur in geschützten Netzwerken aktiviert werden. Um die Benutzerverwaltung zu aktivieren, muss der unverschlüsselte Zugang zuerst deaktiviert werden. ")],-1)])]),_:1},8,["model-value","disabled"]),i(z,{title:"Benutzerverwaltung","model-value":o.userManagementActive,disabled:t.$store.state.mqtt["openWB/general/allow_unencrypted_access"]===!0||!o.webThemeSupported||!o.displayThemeSupported,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>o.userManagementActive=n)},{help:r(()=>[...e[22]||(e[22]=[d("p",null," Hier kann die integrierte Benutzerverwaltung von openWB aktiviert oder deaktiviert werden. Mit aktivierter Benutzerverwaltung ist der Zugriff auf den Mosquitto Broker (MQTT) und davon abhängige Dienste (Weboberfläche, API) nur mit einem gültigen Benutzerkonto (oder anonym ohne Anmeldung, falls erlaubt) möglich. ",-1)])]),_:1},8,["model-value","disabled"]),i(p,{subtype:"warning",class:"mt-2"},{default:r(()=>[e[26]||(e[26]=d("p",null,[d("strong",null,"Die Benutzerverwaltung erfordert zwingend die Abschaltung des unverschlüsselten Zugangs!")],-1)),d("p",null,[e[24]||(e[24]=l(" Werden Änderungen an dem unverschlüsselten Zugang oder dem Status der Benutzerverwaltung vorgenommen, so ist zwingend ein ",-1)),i(G,{to:"/System/SystemConfiguration"},{default:r(()=>[...e[23]||(e[23]=[l("Neustart dieser openWB",-1)])]),_:1}),e[25]||(e[25]=l(" erforderlich, damit die Änderungen wirksam werden! Erst danach können Benutzer, Gruppen und Rollen angelegt und verwaltet werden. ",-1))]),e[27]||(e[27]=d("p",null,"Standard-Admin-Benutzer nach der ersten Aktivierung oder dem Zurücksetzen:",-1)),e[28]||(e[28]=d("ul",null,[d("li",null,[l("Benutzername: "),d("strong",null,"admin")]),d("li",null,[l("Passwort: "),d("strong",null,"openwb")])],-1))]),_:1}),i(p,{subtype:"danger"},{default:r(()=>[...e[29]||(e[29]=[l(" Einige Bereiche sind noch nicht kompatibel mit der Benutzerverwaltung. Bitte überprüfe vor der Aktivierung, ob Du eine oder mehrere dieser Funktionen nutzt: ",-1),d("ul",null,[d("li",null,"SmartHome"),d("li",null,"SimpleAPI")],-1)])]),_:1}),o.webThemeSupported?b("",!0):(u(),g(p,{key:0,subtype:"danger",class:"mt-2"},{default:r(()=>[l(' Das ausgewählte Theme "'+k(t.$store.state.mqtt["openWB/general/web_theme"]?.name)+'" für die ',1),i(G,{to:"/GeneralConfiguration"},{default:r(()=>[...e[30]||(e[30]=[l("Hauptseite",-1)])]),_:1}),e[31]||(e[31]=l(" unterstützt die Benutzerverwaltung nicht. ",-1))]),_:1})),o.displayThemeSupported?b("",!0):(u(),g(p,{key:1,subtype:"danger",class:"mt-2"},{default:r(()=>[l(' Das ausgewählte Theme "'+k(t.$store.state.mqtt["openWB/optional/int_display/theme"]?.name)+'" für das ',1),i(G,{to:"/DisplayConfiguration"},{default:r(()=>[...e[32]||(e[32]=[l("Display",-1)])]),_:1}),e[33]||(e[33]=l(" unterstützt die Benutzerverwaltung nicht. ",-1))]),_:1})),e[35]||(e[35]=d("hr",null,null,-1)),i(x,{title:"Benutzerverwaltung zurücksetzen","button-text":"Zurücksetzen",subtype:"danger",disabled:o.userManagementActive||o.loggedInUser!==null,onButtonClicked:e[10]||(e[10]=n=>s.showResetModal=!0)},{help:r(()=>[...e[34]||(e[34]=[l(" Hiermit werden alle Benutzer, Gruppen und Rollen der openWB Benutzerverwaltung gelöscht und auf die Werkseinstellungen zurückgesetzt. Diese Aktion ist irreversibel!",-1),d("br",null,null,-1),d("strong",null,"Hinweis:",-1),l(" Die Benutzerverwaltung muss deaktiviert sein und danach ein erforderlicher Neustart durchgeführt werden, um die Benutzerverwaltung zurücksetzen zu können. ",-1)])]),_:1},8,["disabled"])]),_:1})]),o.userManagementActive&&s.anonymousGroupName!==null?(u(),f("div",Y,[t.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(u(),g(p,{key:0,subtype:"warning"},{default:r(()=>[e[37]||(e[37]=l(" Sie müssen der ",-1)),i(G,{to:"/System/LegalSettings"},{default:r(()=>[...e[36]||(e[36]=[l("Datenschutzerklärung",-1)])]),_:1}),e[38]||(e[38]=l(' zustimmen, um die Funktion "Kennwort vergessen" nutzen zu können! ',-1))]),_:1})):b("",!0),i(D,{collapsible:!0,collapsed:!0,onExpanded:e[14]||(e[14]=n=>o.getClientsDetails())},{header:r(()=>[i(B,{icon:["fas","user"]}),e[39]||(e[39]=l(" Benutzer ",-1))]),actions:r(n=>[n.collapsed?b("",!0):(u(),g(A,{key:0,class:"bg-success clickable",title:"Neuen Benutzer erstellen",onClick:e[13]||(e[13]=N(a=>s.showAddUserModal=!0,["stop"]))},{default:r(()=>[i(y,{icon:["fas","plus"]})]),_:1}))]),default:r(()=>[s.clients.length===0?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[40]||(e[40]=[l(" Es sind noch keine Benutzer angelegt oder Du hast nicht die benötigten Rechte, Daten anzuzeigen. ",-1)])]),_:1})):(u(),f("div",$,[(u(!0),f(U,null,W(s.clients,n=>(u(),g(D,{key:n,collapsible:!0,collapsed:!0,onExpanded:a=>o.getClient(n)},{header:r(()=>[i(B,{icon:["fas",s.clientDetails[n]?.disabled?"user-slash":"user"]},null,8,["icon"]),l(" "+k(n),1)]),actions:r(a=>[a.collapsed?b("",!0):(u(),f("span",{key:0,class:H(["pill mr-2",[s.clientDetails[n]?.disabled?"bg-danger":"bg-success",{clickable:o.loggedInUser!==n}]]),title:o.loggedInUser!==n?`Benutzer ${s.clientDetails[n]?.disabled?"aktivieren":"deaktivieren"}`:"Der aktuell angemeldete Benutzer kann nicht deaktiviert werden.",onClick:N(C=>{o.loggedInUser!==n&&o.toggleClientDisabled(n)},["stop"])},k(s.clientDetails[n]?.disabled?"Deaktiviert":"Aktiv"),11,ee)),!a.collapsed&&o.loggedInUser!==n&&!n.startsWith("Display-")?(u(),g(A,{key:1,class:"bg-danger clickable",title:"Benutzer löschen",onClick:N(C=>{o.loggedInUser!==n&&o.deleteClient(n)},["stop"])},{default:r(()=>[i(y,{icon:["fas","trash"]})]),_:1},8,["onClick"])):b("",!0)]),footer:r(()=>[i(R,{"form-name":`clientForm-${n}`,"save-id":`saveClientBtn-${n}`,"hide-reset":!0,"hide-defaults":!0,onSave:a=>o.modifyClient(n)},null,8,["form-name","save-id","onSave"])]),default:r(()=>[s.clientDetails[n]?(u(),f("div",ne,[d("form",{name:`clientForm-${n}`},[i(m,{modelValue:s.clientDetails[n].username,"onUpdate:modelValue":a=>s.clientDetails[n].username=a,title:"Benutzername",subtype:"user",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),s.clientDetails[n].username.startsWith("Display-")?b("",!0):(u(),g(m,{key:0,modelValue:s.clientDetails[n].textname,"onUpdate:modelValue":a=>s.clientDetails[n].textname=a,title:"E-Mail",subtype:"email",required:!s.clientDetails[n].username.startsWith("Display-")},{help:r(()=>[...e[41]||(e[41]=[l(' Die hier angegebene E-Mail wird für die Funktion "Kennwort vergessen" verwendet. ',-1)])]),_:1},8,["modelValue","onUpdate:modelValue","required"])),s.clientDetails[n].username.startsWith("Display-")?b("",!0):(u(),g(m,{key:1,modelValue:s.clientDetails[n].password,"onUpdate:modelValue":a=>s.clientDetails[n].password=a,title:"Passwort",subtype:"password"},{help:r(()=>[...e[42]||(e[42]=[l(" Bereits festgelegte Passwörter werden nicht angezeigt!",-1),d("br",null,null,-1),l(" Um das Passwort zu ändern, bitte ein neues Passwort eingeben und speichern, andernfalls das Feld leer lassen. ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])),i(V,{title:"Zugewiesene Gruppen","valid-elements":s.groups,"model-value":s.clientDetails[n].groups.map(a=>a.groupname),"onUpdate:modelValue":a=>{s.clientDetails[n].groups=a.map(C=>({groupname:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","users"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","users"]})]),help:r(()=>[...e[43]||(e[43]=[l(" Hier können Gruppen zugewiesen werden, denen der Benutzer angehört. Über die Gruppen werden Rollen und damit verbundene Zugriffsrechte (ACLs) vererbt. Es wird empfohlen, Berechtigungen über Gruppen zu verwalten, damit bei mehreren Benutzern mit ähnlichen Rechten die Verwaltung einfacher und übersichtlicher bleibt. Es können aber auch direkt Rollen zugewiesen werden, um Ergänzungen zu den Gruppenrechten abzubilden. ",-1)])]),_:1},8,["valid-elements","model-value","onUpdate:modelValue"]),i(V,{title:"Zugewiesene Rollen","valid-elements":o.rolesList.map(a=>({value:a.name,label:a.friendlyName})),"model-value":s.clientDetails[n].roles.map(a=>a.rolename),"onUpdate:modelValue":a=>{s.clientDetails[n].roles=a.map(C=>({rolename:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),help:r(()=>[...e[44]||(e[44]=[l(" Hier können Rollen zugewiesen werden, die dem Benutzer direkt zugeordnet werden. Über die Rollen werden Zugriffsrechte (ACLs) vererbt. Es wird empfohlen, Berechtigungen über Gruppen zu verwalten und hier nur ergänzende Rollen zuzuweisen, um die Übersicht zu behalten. ",-1)])]),_:1},8,["valid-elements","model-value","onUpdate:modelValue"]),i(S,{modelValue:s.clientDetails[n].textdescription,"onUpdate:modelValue":a=>s.clientDetails[n].textdescription=a,title:"Zusatzinformationen",subtype:"text"},{help:r(()=>[...e[45]||(e[45]=[l(" Hier können zusätzliche Informationen zum Benutzer hinterlegt werden. ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue"])],8,te)])):(u(),f("div",se,"Lade Benutzerdetails..."))]),_:2},1032,["onExpanded"]))),128))]))]),_:1}),i(D,{collapsible:!0,collapsed:!0},{header:r(()=>[i(B,{icon:["fas","users"]}),e[46]||(e[46]=l(" Gruppen ",-1))]),actions:r(n=>[n.collapsed?b("",!0):(u(),g(A,{key:0,class:"bg-success clickable",title:"Neue Gruppe erstellen",onClick:e[15]||(e[15]=N(a=>s.showAddGroupModal=!0,["stop"]))},{default:r(()=>[i(y,{icon:["fas","plus"]})]),_:1}))]),default:r(()=>[s.groups.length===0?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[47]||(e[47]=[l(" Es sind noch keine Gruppen angelegt oder Du hast nicht die benötigten Rechte, Daten anzuzeigen. ",-1)])]),_:1})):(u(),f("div",re,[(u(!0),f(U,null,W(s.groups,n=>(u(),g(D,{key:n,collapsible:!0,collapsed:!0,onExpanded:a=>o.getGroup(n)},{header:r(()=>[i(B,{icon:["fas","users"]}),l(" "+k(n),1)]),actions:r(a=>[!a.collapsed&&![s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n)?(u(),g(A,{key:0,class:"bg-danger clickable",title:"Gruppe löschen",onClick:N(C=>o.deleteGroup(n),["stop"])},{default:r(()=>[i(y,{icon:["fas","trash"]})]),_:1},8,["onClick"])):b("",!0)]),footer:r(()=>[i(R,{"form-name":`groupForm-${n}`,"save-id":`saveGroupBtn-${n}`,"hide-reset":!0,"hide-defaults":!0,onSave:a=>o.modifyGroup(n)},null,8,["form-name","save-id","onSave"])]),default:r(()=>[s.groupDetails[n]?(u(),f("div",ie,[n===s.anonymousGroupName?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[l(' Die Gruppe "'+k(n)+'" kann nicht gelöscht werden, da sie für den anonymen Zugriff (ohne Anmeldung) auf openWB benötigt wird. ',1)]),_:2},1024)):b("",!0),n===s.userGroupName?(u(),g(p,{key:1,subtype:"info"},{default:r(()=>[l(' Die Gruppe "'+k(n)+'" kann nicht bearbeitet werden, da sie von openWB für reguläre Benutzer verwendet wird. Es wird empfohlen, diese Gruppe allen Benutzern zuzuweisen und weitere Rollen durch separate Gruppen oder direkt bei den Benutzern zu hinterlegen. ',1)]),_:2},1024)):b("",!0),n===s.displayGroupName?(u(),g(p,{key:2,subtype:"info"},{default:r(()=>[l(' Die Gruppe "'+k(n)+'" kann nicht bearbeitet werden, da sie von openWB für integrierte Displays verwendet wird. Es wird empfohlen, diese Gruppe allen Displays zuzuweisen und weitere Rollen durch separate Gruppen oder direkt bei den Display-Benutzern zu hinterlegen. ',1)]),_:2},1024)):b("",!0),d("form",{name:`groupForm-${n}`},[i(m,{modelValue:s.groupDetails[n].groupname,"onUpdate:modelValue":a=>s.groupDetails[n].groupname=a,title:"Gruppenname",subtype:"text",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),i(m,{modelValue:s.groupDetails[n].textname,"onUpdate:modelValue":a=>s.groupDetails[n].textname=a,title:"Beschreibung",subtype:"text",disabled:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n)},null,8,["modelValue","onUpdate:modelValue","disabled"]),i(V,{title:"Zugewiesene Benutzer","valid-elements":s.clients,"model-value":s.groupDetails[n].clients.map(a=>a.username),"onUpdate:modelValue":a=>{s.groupDetails[n].clients=a.map(C=>({username:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","circle-user"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","circle-user"]})]),_:1},8,["valid-elements","model-value","onUpdate:modelValue"]),i(V,{title:"Zugewiesene Rollen","valid-elements":o.rolesList.map(a=>({value:a.name,label:a.friendlyName})),disabled:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n),readonly:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n),"model-value":s.groupDetails[n].roles.map(a=>a.rolename),"onUpdate:modelValue":a=>{s.groupDetails[n].roles=a.map(C=>({rolename:C}))}},{"input-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),"element-prefix":r(()=>[i(y,{icon:["fas","file-shield"]})]),_:1},8,["valid-elements","disabled","readonly","model-value","onUpdate:modelValue"]),i(S,{modelValue:s.groupDetails[n].textdescription,"onUpdate:modelValue":a=>s.groupDetails[n].textdescription=a,title:"Zusatzinformationen",subtype:"text",disabled:[s.anonymousGroupName,s.userGroupName,s.displayGroupName].includes(n)},{help:r(()=>[...e[48]||(e[48]=[l(" Hier können zusätzliche Informationen zur Gruppe hinterlegt werden. ",-1)])]),_:1},8,["modelValue","onUpdate:modelValue","disabled"])],8,le)])):(u(),f("div",ae,"Lade Gruppendetails..."))]),_:2},1032,["onExpanded"]))),128))]))]),_:1}),i(D,{collapsible:!0,collapsed:!0},{header:r(()=>[i(B,{icon:["fas","file-shield"]}),e[49]||(e[49]=l(" Rollen ",-1))]),default:r(()=>[t.roles.length===0?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[...e[50]||(e[50]=[l(" Es sind noch keine Rollen angelegt oder Du hast nicht die benötigten Rechte, Daten anzuzeigen. ",-1)])]),_:1})):(u(),f("div",oe,[i(p,{subtype:"info"},{default:r(()=>[...e[51]||(e[51]=[l(" Rollen definieren die Zugriffsrechte (Access Control Lists, ACLs) für Benutzer und Gruppen. Jeder Benutzer oder jede Gruppe kann mehrere Rollen zugewiesen bekommen, wodurch sich die effektiven Zugriffsrechte zusammensetzen.",-1),d("br",null,null,-1),l(" openWB erstellt automatisch relevante Rollen während der Installation und bei der Aktivierung bestimmter Funktionen oder Bearbeitung von Ladepunkten, Geräten und Komponenten etc. Rollen können hier nicht bearbeitet oder gelöscht werden. ",-1)])]),_:1}),i(m,{"model-value":s.rolesVersion,title:"Versionsnummer der Rollendefinitionen",disabled:""},{help:r(()=>[...e[52]||(e[52]=[l(" Hier wird die aktuell verwendete Rollen-Version der openWB Benutzerverwaltung angezeigt. Diese Version gibt an, welche vordefinierten Rollen und Zugriffsrechte (ACLs) von openWB generiert werden. Bei einem Update von openWB kann sich die Rollen-Version ändern, wodurch neue Rollen hinzugefügt oder bestehende Rollen angepasst werden können. ",-1)])]),_:1},8,["model-value"]),i(S,{title:"Standard-Zugriffsrechte","model-value":o.readableAcls(s.defaultAclAccess),disabled:""},{help:r(()=>[...e[53]||(e[53]=[l(" Hier werden die Standard Zugriffsrechte (Access Control Lists, ACLs) angezeigt. Diese werden verwendet, wenn keine spezifischen ACLs für einen Benutzer oder eine Gruppe definiert sind oder die Topics nicht explizit abgedeckt werden. ",-1)])]),_:1},8,["model-value"]),e[55]||(e[55]=d("hr",null,null,-1)),(u(!0),f(U,null,W(o.rolesList,n=>(u(),g(D,{key:n.name,collapsible:!0,collapsed:!0,onExpanded:a=>o.getRole(n.name)},{header:r(()=>[i(B,{icon:["fas","file-shield"]}),l(" "+k(n.friendlyName),1)]),default:r(()=>[s.roleDetails[n.name]?(u(),f("div",ue,[d("form",{name:`roleForm-${n.name}`},[i(m,{modelValue:s.roleDetails[n.name].rolename,"onUpdate:modelValue":a=>s.roleDetails[n.name].rolename=a,title:"Rollenname",subtype:"text",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),i(m,{modelValue:s.roleDetails[n.name].textname,"onUpdate:modelValue":a=>s.roleDetails[n.name].textname=a,title:"Beschreibung",subtype:"text",disabled:""},null,8,["modelValue","onUpdate:modelValue"]),s.roleDetails[n.name].textdescription?(u(),g(p,{key:0,subtype:"info"},{default:r(()=>[l(k(s.roleDetails[n.name].textdescription),1)]),_:2},1024)):b("",!0),i(S,{title:"Zugriffsrechte (ACLs)","model-value":o.readableAcls(s.roleDetails[n.name].acls),disabled:""},{help:r(()=>[...e[54]||(e[54]=[l(" Hier werden die Zugriffsrechte (Access Control Lists, ACLs) für diese Rolle angezeigt. ",-1)])]),_:1},8,["model-value"])],8,de)])):(u(),f("div",me,"Lade Rollendetails..."))]),_:2},1032,["onExpanded"]))),128))]))]),_:1})])):(u(),f("div",pe,[i(p,{subtype:"info"},{default:r(()=>[e[57]||(e[57]=l(" Die Benutzerverwaltung ist deaktiviert. In diesem Modus hat jeder uneingeschränkten Zugriff auf openWB.",-1)),e[58]||(e[58]=d("br",null,null,-1)),e[59]||(e[59]=l(" Um Benutzer, Gruppen und Rollen zu verwalten, muss die Benutzerverwaltung zuerst aktiviert werden. Dazu ist nach der Aktivierung zwingend ein ",-1)),i(G,{to:"/System/SystemConfiguration"},{default:r(()=>[...e[56]||(e[56]=[l("Neustart dieser openWB",-1)])]),_:1}),e[60]||(e[60]=l(" erforderlich, damit die Änderungen wirksam werden. ",-1))]),_:1})]))]))])}const ye=O(F,[["render",ge],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SecurityConfiguration.vue"]]);export{ye as default}; diff --git a/web/settings/assets/Status-bV6B6bv6.js b/web/settings/assets/Status-C2MPQY7c.js similarity index 99% rename from web/settings/assets/Status-bV6B6bv6.js rename to web/settings/assets/Status-C2MPQY7c.js index 0ae825a998..3f8ab852ae 100644 --- a/web/settings/assets/Status-bV6B6bv6.js +++ b/web/settings/assets/Status-C2MPQY7c.js @@ -1,3 +1,3 @@ -import{C as $}from"./index-D_eD74fL.js";import{F as q,l as C,V as E,W as M,c as z,f as H,X as P,Y as V,Z as K,M as R,_ as G,$ as F,a0 as Z,a1 as J,a2 as Q,a3 as A,a4 as I,a5 as U,n as X,o as Y,p as tt,q as et,a6 as st,a7 as ot}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as W,l as n,k as r,y as g,D as O,q as i,x as t,e as b,m as l,A as h,u as y,J as a,f as S,j as at,L as k,K as B}from"./vendor-Bo8v-nQD.js";import{L as it,C as rt,p as nt,a as ct,b as lt,c as dt,P as pt,d as mt,T as ut,i as gt,e as ht}from"./vendor-chartjs-0RUe1kvq.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";C.add(E,M,z,H);const bt={name:"StatusCard",components:{FontAwesomeIcon:q},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}},hasMessageLineBreaks(){return this.stateMessage.includes(` +import{C as $}from"./index-MVrRMMo2.js";import{F as q,l as C,V as E,W as M,c as z,f as H,X as P,Y as V,Z as K,M as R,_ as G,$ as F,a0 as Z,a1 as J,a2 as Q,a3 as A,a4 as I,a5 as U,n as X,o as Y,p as tt,q as et,a6 as st,a7 as ot}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as W,l as n,k as r,y as g,D as O,q as i,x as t,e as b,m as l,A as h,u as y,J as a,f as S,j as at,L as k,K as B}from"./vendor-Bo8v-nQD.js";import{L as it,C as rt,p as nt,a as ct,b as lt,c as dt,P as pt,d as mt,T as ut,i as gt,e as ht}from"./vendor-chartjs-0RUe1kvq.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./vendor-luxon-BDx6lZXm.js";C.add(E,M,z,H);const bt={name:"StatusCard",components:{FontAwesomeIcon:q},props:{subtype:{type:String,required:!0},state:{type:Number,required:!1,default:0},stateMessage:{type:String,required:!1,default:void 0},componentId:{type:Number,required:!1,default:void 0}},computed:{stateClass(){switch(this.state){case 0:return"success";case 1:return"warning";case 2:return"danger";default:return"dark"}},stateIcon(){switch(this.state){case 0:return["fas","check-circle"];case 1:return["fas","exclamation-triangle"];case 2:return["fas","times-circle"];default:return["fas","question-circle"]}},stateLabel(){switch(this.state){case 0:return"OK";case 1:return"Warnung";case 2:return"Fehler";default:return"Unbekannt"}},hasMessageLineBreaks(){return this.stateMessage.includes(` `)}}},ft={class:"container"},_t={class:"row justify-content-end"},vt={key:0,class:"col px-0"},yt={key:0},wt={style:{"white-space":"pre-wrap"}},Tt={key:1,class:"col col-auto pr-0"},xt={class:"text-right"};function Wt(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-avatar"),m=n("openwb-base-alert"),u=n("openwb-base-card");return r(),g(u,{subtype:c.subtype,collapsible:!0,collapsed:!0},O({header:i(()=>[S(e.$slots,"header-left")]),actions:i(()=>[S(e.$slots,"header-right"),l(d,{class:at(["ml-2",`bg-${s.stateClass}`]),title:s.stateLabel},{default:i(()=>[l(p,{icon:s.stateIcon},null,8,["icon"])]),_:1},8,["class","title"])]),default:i(()=>[S(e.$slots,"default")]),_:2},[c.componentId!==void 0||c.stateMessage?{name:"footer",fn:i(()=>[t("div",ft,[t("div",_t,[c.stateMessage?(r(),b("div",vt,[l(m,{subtype:s.stateClass},{default:i(()=>[l(p,{icon:s.stateIcon},null,8,["icon"]),o[0]||(o[0]=h(" Modulmeldung: ",-1)),s.hasMessageLineBreaks?(r(),b("br",yt)):y("",!0),t("span",wt,a(c.stateMessage),1)]),_:1},8,["subtype"])])):y("",!0),c.componentId!==void 0?(r(),b("div",Tt,[t("div",xt,"ID: "+a(c.componentId),1)])):y("",!0)])])]),key:"0"}:void 0]),1032,["subtype"])}const N=W(bt,[["render",Wt],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/StatusCard.vue"]]);C.add(P);const kt={name:"ChargePointSumCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/chargepoint/get/daily_exported",writeable:!1},{topic:"openWB/chargepoint/get/daily_imported",writeable:!1},{topic:"openWB/chargepoint/get/exported",writeable:!1},{topic:"openWB/chargepoint/get/imported",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/chargepoint"}}}},Bt={class:"text-right"},$t={class:"row"},qt={class:"col text-right text-monospace"},Ct={class:"row"},Nt={class:"col-4 text-right text-monospace"},St={class:"col-4 text-right text-monospace"},Pt={class:"row"},At={class:"col-4 text-right text-monospace"},It={class:"col-4 text-right text-monospace"};function Ot(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"primary"},{"header-left":i(()=>[l(p,{icon:["fas","charging-station"]}),o[0]||(o[0]=h(" Alle Ladepunkte ",-1))]),"header-right":i(()=>[t("span",Bt,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),default:i(()=>[l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row py-2"},[t("div",{class:"col font-weight-bold"},"Ladevorgang"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",$t,[t("div",qt,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001)),1)])]),_:1}),l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:i(()=>[o[4]||(o[4]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Ct,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Nt,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001)+" kWh"),1),t("div",St,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001)+" kWh"),1)]),t("div",Pt,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",At,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001)+" kWh"),1),t("div",It,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001)+" kWh"),1)])]),_:1})]),_:1})}const Lt=W(kt,[["render",Ot],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointSumCard.vue"]]);C.add(P,V,K,R,G,F,Z,J);const jt={name:"ChargePointCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{chargePointId:{type:Number,required:!0}},data(){return{mqttTopics:[{topic:`openWB/chargepoint/${this.chargePointId}/config`,writeable:!1},{topic:`openWB/chargepoint/${this.chargePointId}/get/+`,writeable:!1},{topic:`openWB/chargepoint/${this.chargePointId}/set/+`,writeable:!1},{topic:`openWB/internal_chargepoint/${this.chargePointId}/data/phases_to_use`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/chargepoint/"+this.chargePointId}},chargePointConfig:{get(){return this.$store.state.mqtt[`${this.baseTopic}/config`]}},chargingStatus:{get(){let e=this.$store.state.mqtt[this.baseTopic+"/get/plug_state"],o=this.$store.state.mqtt[this.baseTopic+"/get/charge_state"];return e==1&&o==1?{icon:["fas","plug-circle-bolt"],text:"Fahrzeug angesteckt, Ladevorgang aktiv"}:e==1?{icon:["fas","plug-circle-check"],text:"Fahrzeug angesteckt, kein Ladevorgang aktiv"}:{icon:["fas","plug-circle-minus"],text:"Kein Fahrzeug angesteckt"}}}}},Dt={class:"row py-2"},Et={class:"col text-right"},Mt={style:{"white-space":"pre-wrap"}},zt={class:"row"},Ht={class:"col text-right text-monospace"},Vt={class:"col text-right text-monospace"},Kt={class:"row"},Rt={key:0,class:"col text-right text-monospace"},Gt={key:1,class:"col text-right text-monospace"},Ft={class:"col text-right text-monospace"},Zt={class:"row"},Jt={class:"col-4 text-right text-monospace"},Qt={class:"col-4 text-right text-monospace"},Ut={class:"row"},Xt={class:"col-4 text-right text-monospace"},Yt={class:"col-4 text-right text-monospace"},te={class:"row"},ee={class:"col text-right text-monospace"},se={class:"col text-right text-monospace"},oe={class:"col text-right text-monospace"},ae={class:"row"},ie={class:"col text-right text-monospace"},re={class:"col text-right text-monospace"},ne={class:"col text-right text-monospace"},ce={class:"row"},le={class:"col text-right text-monospace"},de={class:"col text-right text-monospace"},pe={class:"col text-right text-monospace"},me={class:"row"},ue={class:"col text-right text-monospace"},ge={class:"col text-right text-monospace"},he={class:"col text-right text-monospace"},be={class:"row"},fe={class:"col text-center text-monospace"};function _e(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-alert"),m=n("openwb-base-card"),u=n("status-card");return s.chargePointConfig?(r(),g(u,{key:0,subtype:"primary","component-id":c.chargePointId,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","charging-station"]}),h(" "+a(s.chargePointConfig.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",Dt,[o[0]||(o[0]=t("div",{class:"col col-auto font-weight-bold"},"Status",-1)),t("div",Et,[l(p,{icon:s.chargingStatus.icon,title:s.chargingStatus.text},null,8,["icon","title"]),h(" "+a(s.chargingStatus.text),1)])]),l(d,{subtype:"info"},{default:i(()=>[o[1]||(o[1]=h(" Statusmeldung: ",-1)),t("span",Mt,a(e.$store.state.mqtt[s.baseTopic+"/get/state_str"]),1)]),_:1}),t("div",null," max. Ladeleistung: "+a((e.max_power=e.formatNumberTopic(s.baseTopic+"/get/max_evse_current",0))=="-"?e.max_power:(()=>{const _=Math.floor(e.max_power*3*230/1e3);return _===13?"20A 1-phasig, 16A 3-phasig":_+" kW"})()),1)]),_:1}),l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Ladevorgang"},{default:i(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Ladestrom Vorgabe"),t("div",{class:"col text-right"},"Leistung")],-1)),t("div",zt,[t("div",Ht,a(e.formatNumberTopic(s.baseTopic+"/set/current",2))+" A",1),t("div",Vt,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1)]),o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Phasen Vorgabe"),t("div",{class:"col text-right"},"Phasen Aktuell")],-1)),t("div",Kt,[e.$store.state.mqtt["openWB/general/extern"]===!0?(r(),b("div",Rt,a(e.formatNumberTopic("openWB/internal_chargepoint/"+c.chargePointId+"/data/phases_to_use")),1)):(r(),b("div",Gt,a(e.formatNumberTopic(s.baseTopic+"/set/phases_to_use")),1)),t("div",Ft,a(e.formatNumberTopic(s.baseTopic+"/get/phases_in_use")),1)])]),_:1}),l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Zählerstände"},{default:i(()=>[o[6]||(o[6]=t("div",{class:"row justify-content-end"},[t("div",{class:"col-4 text-right"},"Geladen"),t("div",{class:"col-4 text-right"},"Entladen")],-1)),t("div",Zt,[o[4]||(o[4]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Jt,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Qt,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Ut,[o[5]||(o[5]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Xt,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Yt,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(m,{subtype:"white","body-bg":"white",class:"py-1 mb-2",title:"Werte pro Phase"},{default:i(()=>[t("div",te,[o[7]||(o[7]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Spannung [V]",-1)),t("div",ee,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[0]),1),t("div",se,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[1]),1),t("div",oe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[2]),1)]),t("div",ae,[o[8]||(o[8]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Strom [A]",-1)),t("div",ie,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",re,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",ne,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)]),t("div",ce,[o[9]||(o[9]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",le,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",de,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",pe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[2]),1)]),t("div",me,[o[10]||(o[10]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",ue,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[0]),1),t("div",ge,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[1]),1),t("div",he,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[2]),1)]),t("div",be,[o[11]||(o[11]=t("div",{class:"col-md-4 pr-1 text-center text-md-right"},"Netzfrequenz",-1)),t("div",fe,a(e.formatNumberTopic(s.baseTopic+"/get/frequency",3))+" Hz ",1)])]),_:1})]),_:1},8,["component-id","state","state-message"])):y("",!0)}const ve=W(jt,[["render",_e],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ChargePointCard.vue"]]);C.add(Q);const ye={name:"CounterCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{counter:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:`openWB/counter/${this.counter.id}/get/+`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/counter/"+this.counter.id}}}},we={class:"row"},Te={class:"col text-right text-monospace pl-0"},xe={class:"col text-right text-monospace pl-0"},We={class:"row"},ke={class:"col text-right text-monospace pl-0"},Be={class:"col text-right text-monospace pl-0"},$e={class:"row"},qe={class:"col"},Ce={class:"row"},Ne={class:"col text-right text-monospace pl-0"},Se={class:"col text-right text-monospace pl-0"},Pe={class:"col text-right text-monospace pl-0"},Ae={class:"row"},Ie={class:"col"},Oe={class:"row"},Le={class:"col text-right text-monospace pl-0"},je={class:"col text-right text-monospace pl-0"},De={class:"col text-right text-monospace pl-0"},Ee={class:"row"},Me={class:"col"},ze={class:"row"},He={class:"col text-right text-monospace pl-0"},Ve={class:"col text-right text-monospace pl-0"},Ke={class:"col text-right text-monospace pl-0"},Re={class:"row"},Ge={class:"col"},Fe={class:"row"},Ze={class:"col text-right text-monospace pl-0"},Je={class:"col text-right text-monospace pl-0"},Qe={class:"col text-right text-monospace pl-0"};function Ue(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"danger","component-id":c.counter.id,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","gauge-high"]}),h(" "+a(c.counter.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Netzfrequenz")],-1)),t("div",we,[t("div",Te,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001)+" kW"),1),t("div",xe,a(e.formatNumberTopic(s.baseTopic+"/get/frequency",3)+" Hz"),1)])]),_:1}),l(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Export"),t("div",{class:"col-6 text-right"},"Import")],-1)),t("div",We,[t("div",ke,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001)+" kWh"),1),t("div",Be,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001)+" kWh"),1)])]),_:1}),l(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",$e,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Spannung [V]",-1)),t("div",qe,[t("div",Ce,[t("div",Ne,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[0]),1),t("div",Se,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[1]),1),t("div",Pe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/voltages",1)[2]),1)])])]),t("div",Ae,[o[3]||(o[3]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Ie,[t("div",Oe,[t("div",Le,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",je,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",De,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)])])]),t("div",Ee,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Wirkleistung [kW]",-1)),t("div",Me,[t("div",ze,[t("div",He,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[0]),1),t("div",Ve,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[1]),1),t("div",Ke,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/powers",3,3,.001)[2]),1)])])]),t("div",Re,[o[5]||(o[5]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Leistungsfaktor",-1)),t("div",Ge,[t("div",Fe,[t("div",Ze,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[0]),1),t("div",Je,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[1]),1),t("div",Qe,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/power_factors",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Xe=W(ye,[["render",Ue],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/CounterCard.vue"]]);C.add(A);const Ye={name:"InverterSumCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/pv/get/+",writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/pv"}}}},ts={class:"row"},es={class:"col text-right text-monospace"},ss={class:"col text-right text-monospace"},os={class:"row"},as={class:"col text-right text-monospace"},is={class:"col text-right text-monospace"},rs={class:"col text-right text-monospace"};function ns(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"success",state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","solar-panel"]}),o[0]||(o[0]=h(" Alle Wechselrichter ",-1))]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ts,[t("div",es,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ss,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[2]||(o[2]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",os,[t("div",as,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",is,a(e.formatNumberTopic(s.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",rs,a(e.formatNumberTopic(s.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const cs=W(Ye,[["render",ns],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterSumCard.vue"]]);C.add(A);const ls={name:"InverterCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{inverter:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:`openWB/pv/${this.inverter.id}/get/+`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/pv/"+this.inverter.id}}}},ds={class:"row"},ps={class:"col text-right text-monospace"},ms={class:"col text-right text-monospace"},us={class:"row"},gs={class:"col text-right text-monospace"},hs={class:"col text-right text-monospace"},bs={class:"col text-right text-monospace"},fs={class:"row"},_s={class:"col"},vs={class:"row"},ys={class:"col text-right text-monospace pl-0"},ws={class:"col text-right text-monospace pl-0"},Ts={class:"col text-right text-monospace pl-0"};function xs(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"success","component-id":c.inverter.id,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","solar-panel"]}),h(" "+a(c.inverter.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Leistung"),t("div",{class:"col text-right"},"Zählerstand")],-1)),t("div",ds,[t("div",ps,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",ms,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Erträge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col text-right"},"Heute"),t("div",{class:"col text-right"},"Monat"),t("div",{class:"col text-right"},"Jahr")],-1)),t("div",us,[t("div",gs,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1),t("div",hs,a(e.formatNumberTopic(s.baseTopic+"/get/monthly_exported",1,1,.001))+" kWh ",1),t("div",bs,a(e.formatNumberTopic(s.baseTopic+"/get/yearly_exported",0,0,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",fs,[o[2]||(o[2]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",_s,[t("div",vs,[t("div",ys,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",ws,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",Ts,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const Ws=W(ls,[["render",xs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/InverterCard.vue"]]);C.add(I);const ks={name:"BatterySumCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/bat/get/+",writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/bat"}}}},Bs={class:"row"},$s={class:"col text-right text-monospace pl-0"},qs={class:"col text-right text-monospace pl-0"},Cs={class:"row"},Ns={class:"col text-right text-monospace"},Ss={class:"col text-right text-monospace"},Ps={class:"row"},As={class:"col text-right text-monospace"},Is={class:"col text-right text-monospace"};function Os(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"warning",state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","car-battery"]}),o[0]||(o[0]=h(" Alle Speicher ",-1))]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",1,1,.001))+" kW / "+a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" % ",1)]),default:i(()=>[l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[1]||(o[1]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Bs,[t("div",$s,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",qs,a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" %",1)])]),_:1}),l(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[4]||(o[4]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",Cs,[o[2]||(o[2]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Ns,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Ss,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Ps,[o[3]||(o[3]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",As,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Is,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1})]),_:1},8,["state","state-message"])}const Ls=W(ks,[["render",Os],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatterySumCard.vue"]]);C.add(I);const js={name:"BatteryCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{battery:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:`openWB/bat/${this.battery.id}/get/+`,writeable:!1}]}},computed:{baseTopic:{get(){return"openWB/bat/"+this.battery.id}}}},Ds={class:"row"},Es={class:"col text-right text-monospace pl-0"},Ms={class:"col text-right text-monospace pl-0"},zs={class:"row"},Hs={class:"col text-right text-monospace"},Vs={class:"col text-right text-monospace"},Ks={class:"row"},Rs={class:"col text-right text-monospace"},Gs={class:"col text-right text-monospace"},Fs={class:"row"},Zs={class:"col"},Js={class:"row"},Qs={class:"col text-right text-monospace pl-0"},Us={class:"col text-right text-monospace pl-0"},Xs={class:"col text-right text-monospace pl-0"};function Ys(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"warning","component-id":c.battery.id,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},{"header-left":i(()=>[l(p,{icon:["fas","car-battery"]}),h(" "+a(c.battery.name),1)]),"header-right":i(()=>[h(a(e.formatNumberTopic(s.baseTopic+"/get/power",1,1,.001))+" kW / "+a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" % ",1)]),default:i(()=>[e.$store.state.mqtt[s.baseTopic+"/get/state_str"]?.length>0?(r(),g(d,{key:0,title:"Status der aktiven Speichersteuerung",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[h(a(e.$store.state.mqtt[s.baseTopic+"/get/state_str"]),1)]),_:1})):y("",!0),l(d,{title:"Aktuelle Werte",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[0]||(o[0]=t("div",{class:"row"},[t("div",{class:"col-6 text-right"},"Leistung"),t("div",{class:"col-6 text-right"},"Ladestand")],-1)),t("div",Ds,[t("div",Es,a(e.formatNumberTopic(s.baseTopic+"/get/power",3,3,.001))+" kW ",1),t("div",Ms,a(e.$store.state.mqtt[s.baseTopic+"/get/soc"])+" %",1)])]),_:1}),l(d,{title:"Zählerstände",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[o[3]||(o[3]=t("div",{class:"row"},[t("div",{class:"col"}),t("div",{class:"col text-right"},"Geladen"),t("div",{class:"col text-right"},"Entladen")],-1)),t("div",zs,[o[1]||(o[1]=t("div",{class:"col text-right"},"Heute",-1)),t("div",Hs,a(e.formatNumberTopic(s.baseTopic+"/get/daily_imported",3,3,.001))+" kWh ",1),t("div",Vs,a(e.formatNumberTopic(s.baseTopic+"/get/daily_exported",3,3,.001))+" kWh ",1)]),t("div",Ks,[o[2]||(o[2]=t("div",{class:"col text-right"},"Gesamt",-1)),t("div",Rs,a(e.formatNumberTopic(s.baseTopic+"/get/imported",3,3,.001))+" kWh ",1),t("div",Gs,a(e.formatNumberTopic(s.baseTopic+"/get/exported",3,3,.001))+" kWh ",1)])]),_:1}),l(d,{title:"Werte pro Phase",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",Fs,[o[4]||(o[4]=t("div",{class:"col-md-4 pr-0 text-center text-md-right"},"Strom [A]",-1)),t("div",Zs,[t("div",Js,[t("div",Qs,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[0]),1),t("div",Us,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[1]),1),t("div",Xs,a(e.formatPhaseArrayNumberTopic(s.baseTopic+"/get/currents",2)[2]),1)])])])]),_:1})]),_:1},8,["component-id","state","state-message"])}const to=W(js,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/BatteryCard.vue"]]);C.add(U,X,Y,tt,et);const eo={name:"IoDeviceCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{ioDevice:{type:Object,required:!0}},data(){return{mqttTopics:[{topic:"openWB/io/action/+/config",writeable:!1},{topic:"openWB/io/action/+/timestamp",writeable:!1},{topic:`openWB/io/states/${this.ioDevice.id}/get/+`,writeable:!1}],state:{true:{icon:["fas","square"],title:"Geschlossen",actionTitle:"Aktiv"},false:{icon:["far","square"],title:"Offen",actionTitle:"Inaktiv"}}}},computed:{baseTopic(){return`openWB/io/states/${this.ioDevice.id}`},hasDigitalInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]||{}).length>0},hasDigitalOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]||{}).length>0},hasAnalogInputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]||{}).length>0},hasAnalogOutputs(){return Object.keys(this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]||{}).length>0},digitalInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_input`]},digitalOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/digital_output`]},analogInputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_input`]},analogOutputStates(){return this.$store.state.mqtt[`${this.baseTopic}/get/analog_output`]},ioActionConfigs(){return Object.fromEntries(Object.entries(this.getWildcardTopics("openWB/io/action/+/config")).filter(([,e])=>e.configuration.io_device===this.ioDevice.id))},ioActionState(){return e=>{const o=this.$store.state.mqtt[`openWB/io/action/${e}/timestamp`];return o&&new Date(o*1e3).toLocaleString()}}},methods:{getIcon(e){return this.state[e].icon},getTitle(e){return this.state[e].title},getActionTitle(e){return this.state[e].actionTitle}}},so={class:"col-auto"},oo={class:"col text-right"},ao={class:"row"},io={class:"row"},ro={class:"row"},no={class:"row"};function co(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-alert"),m=n("openwb-base-tooltip"),u=n("openwb-base-card"),_=n("status-card");return r(),g(_,{subtype:"secondary",state:e.$store.state.mqtt[`${s.baseTopic}/get/fault_state`],"state-message":e.$store.state.mqtt[`${s.baseTopic}/get/fault_str`],"component-id":c.ioDevice.id},{"header-left":i(()=>[l(p,{icon:["fas","tower-broadcast"]}),h(" "+a(c.ioDevice.name),1)]),default:i(()=>[l(u,{title:"Zugehörige Aktionen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[Object.keys(s.ioActionConfigs).length===0?(r(),g(d,{key:0,subtype:"info",class:"mb-2"},{default:i(()=>[...o[0]||(o[0]=[h(" Es wurden noch keine Aktionen erstellt, welche dieses IO-Gerät als Signalquelle verwenden. ",-1)])]),_:1})):(r(!0),b(B,{key:1},k(s.ioActionConfigs,(f,x)=>(r(),b("div",{key:x,class:"row"},[t("div",so,[l(m,{description:s.getActionTitle(![void 0,null].includes(s.ioActionState(f.id)))},{default:i(()=>[l(p,{icon:s.getIcon(![void 0,null].includes(s.ioActionState(f.id))),class:"fa-fw"},null,8,["icon"])]),_:2},1032,["description"]),h(" "+a(f.name),1)]),t("div",oo,a(s.ioActionState(f.id)),1)]))),128))]),_:1}),s.hasDigitalInputs?(r(),g(u,{key:0,title:"Digitale Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",ao,[(r(!0),b(B,null,k(s.digitalInputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},[h(a(x)+": ",1),l(m,{description:s.getTitle(f)},{default:i(()=>[l(p,{icon:s.getIcon(f),class:"fa-fw"},null,8,["icon"])]),_:2},1032,["description"])]))),128))])]),_:1})):y("",!0),s.hasDigitalOutputs?(r(),g(u,{key:1,title:"Digitale Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",io,[(r(!0),b(B,null,k(s.digitalOutputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},[h(a(x)+": ",1),l(m,{description:s.getTitle(f)},{default:i(()=>[l(p,{icon:s.getIcon(f),class:"fa-fw"},null,8,["icon"])]),_:2},1032,["description"])]))),128))])]),_:1})):y("",!0),s.hasAnalogInputs?(r(),g(u,{key:2,title:"Analoge Eingänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",ro,[(r(!0),b(B,null,k(s.analogInputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},a(x)+": "+a(f),1))),128))])]),_:1})):y("",!0),s.hasAnalogOutputs?(r(),g(u,{key:3,title:"Analoge Ausgänge",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",no,[(r(!0),b(B,null,k(s.analogOutputStates,(f,x)=>(r(),b("div",{key:x,class:"col io-state"},a(x)+": "+a(f),1))),128))])]),_:1})):y("",!0)]),_:1},8,["state","state-message","component-id"])}const lo=W(eo,[["render",co],["__scopeId","data-v-356761d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/IoDeviceCard.vue"]]);C.add(st);const po={name:"VehicleCard",components:{StatusCard:N,FontAwesomeIcon:q},mixins:[$],props:{vehicleId:{type:Number,required:!0}},data(){return{mqttTopics:[{topic:`openWB/vehicle/${this.vehicleId}/get/+`,writeable:!1},{topic:`openWB/vehicle/${this.vehicleId}/info`,writeable:!1},{topic:`openWB/vehicle/${this.vehicleId}/name`,writeable:!1}]}},computed:{information:{get(){return this.$store.state.mqtt[this.baseTopic+"/info"]}},name:{get(){const e=this.baseTopic+"/name";return this.$store.state.mqtt[e]!==void 0?this.$store.state.mqtt[e]:`Fahrzeug ${this.vehicleId}`}},soc:{get(){return this.formatNumberTopic(this.baseTopic+"/get/soc")}},socTimestamp:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]!==void 0?new Date(this.$store.state.mqtt[this.baseTopic+"/get/soc_timestamp"]*1e3).toLocaleString():"-"}},socRange:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/range"]!==void 0?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/range"]):0}},socOdometer:{get(){return this.$store.state.mqtt[this.baseTopic+"/get/odometer"]!==void 0&&this.$store.state.mqtt[this.baseTopic+"/get/odometer"]!==null?Math.round(this.$store.state.mqtt[this.baseTopic+"/get/odometer"]):"-"}},baseTopic:{get(){return"openWB/vehicle/"+this.vehicleId}}}},mo={class:"row"},uo={class:"col text-monospace"},go={class:"row"},ho={class:"col text-monospace"},bo={class:"row"},fo={class:"col text-right text-monospace"},_o={class:"row"},vo={class:"col text-right text-monospace"},yo={class:"row"},wo={class:"col text-right text-monospace"},To={class:"row"},xo={class:"col text-right text-monospace"};function Wo(e,o,c,T,v,s){const p=n("font-awesome-icon"),d=n("openwb-base-card"),m=n("status-card");return r(),g(m,{subtype:"info","component-id":c.vehicleId,state:e.$store.state.mqtt[s.baseTopic+"/get/fault_state"],"state-message":e.$store.state.mqtt[s.baseTopic+"/get/fault_str"]},O({"header-left":i(()=>[l(p,{icon:["fas","car"]}),h(" "+a(s.name),1)]),default:i(()=>[s.information!==void 0?(r(),g(d,{key:0,title:"Fahrzeuginformationen",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",mo,[o[0]||(o[0]=t("div",{class:"col pr-0"},"Hersteller",-1)),t("div",uo,a(s.information.manufacturer),1)]),t("div",go,[o[1]||(o[1]=t("div",{class:"col pr-0"},"Modell",-1)),t("div",ho,a(s.information.model),1)])]),_:1})):y("",!0),l(d,{title:"Fahrzeugdaten",subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",bo,[o[2]||(o[2]=t("div",{class:"col pr-0 text-right"},"Ladestand",-1)),t("div",fo,a(s.soc)+" %",1)]),t("div",_o,[o[3]||(o[3]=t("div",{class:"col pr-0 text-right"},"Reichweite",-1)),t("div",vo,a(s.socRange)+" km",1)]),t("div",yo,[o[4]||(o[4]=t("div",{class:"col pr-0 text-right"},"Letzter Zeitstempel",-1)),t("div",wo,a(s.socTimestamp),1)]),t("div",To,[o[5]||(o[5]=t("div",{class:"col pr-0 text-right"},"Kilometerstand",-1)),t("div",xo,a(s.socOdometer)+" km",1)])]),_:1})]),_:2},[s.soc!="-"?{name:"header-right",fn:i(()=>[h(a(s.soc)+" % ",1)]),key:"0"}:void 0]),1032,["component-id","state","state-message"])}const ko=W(po,[["render",Wo],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/VehicleCard.vue"]]);C.add(ot);rt.register(nt,ct,lt,dt,pt,mt,ut,gt,ht);const Bo={name:"ElectricityPricingCard",components:{StatusCard:N,FontAwesomeIcon:q,ChartjsLine:it},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/optional/ep/flexible_tariff/get/fault_state",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/get/fault_str",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/get/prices",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/ep/get/prices",writeable:!1},{topic:"openWB/optional/ep/grid_fee/get/fault_state",writeable:!1},{topic:"openWB/optional/ep/grid_fee/get/fault_str",writeable:!1},{topic:"openWB/optional/ep/grid_fee/get/prices",writeable:!1},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!1}],chartDatasets:{datasets:[{label:"Gesamtpreis",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(0, 149, 0, 0.9)",backgroundColor:"rgba(0, 149, 0, 0.7)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}},{label:"Stromtarif",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(139, 0, 0, 0.9)",backgroundColor:"rgba(139, 0, 0, 0.9)",fill:!1,pointStyle:"circle",pointRadius:0,pointHoverRadius:4,cubicInterpolationMode:"monotone",hidden:!1,borderWidth:1,data:void 0,yAxisID:"y",parsing:{xAxisKey:"timestamp",yAxisKey:"price"}},{label:"Netzentgelt",unit:"ct/kWh",type:"line",stepped:!0,borderColor:"rgba(255, 0, 0, 0.4)",backgroundColor:"rgba(255, 0, 0, 0.4)",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:!0,position:"top",labels:{filter:function(e,o){return!o.datasets[e.datasetIndex].hidden}}}},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},callback:this.formatTickLabel,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:{electricityPricingConfigured(){const e=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"],o=this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"];return e&&e.type||o&&o.type},chartDataRead(){return this.chartDataObject.datasets.some(o=>o.data!==void 0&&!o.hidden)},chartDataObject(){const e=JSON.parse(JSON.stringify(this.chartDatasets)),o=this.getEndOfToday();let c=null;if(this.$store.state.mqtt["openWB/optional/ep/get/prices"]){var T=this.$store.state.mqtt["openWB/optional/ep/get/prices"],v=[];for(const[u,_]of Object.entries(T))v.push({timestamp:u*1e3,price:_*1e5});if(v.length>0){const u=v.slice(-1)[0];let _=o;if(v.length>1){const f=v.slice(-2,-1)[0];_=u.timestamp+u.timestamp-f.timestamp-1}v.push({timestamp:_,price:u.price})}e.datasets[0].data=v,c=e.datasets[0].data.slice(-1)[0].timestamp}else e.datasets[0].hidden=!0;if(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type&&this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/prices"]){var s=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/prices"],p=[];for(const[u,_]of Object.entries(s))c&&u*1e3>c||p.push({timestamp:u*1e3,price:_*1e5});if(p.length>0){const u=p.slice(-1)[0];let _=o;if(p.length>1){const f=p.slice(-2,-1)[0];_=u.timestamp+u.timestamp-f.timestamp-1}p.push({timestamp:_,price:u.price})}e.datasets[1].data=p}else e.datasets[1].hidden=!0;if(this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type&&this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/prices"]){var d=this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/prices"],m=[];for(const[u,_]of Object.entries(d))c&&u*1e3>c||m.push({timestamp:u*1e3,price:_*1e5});if(m.length>0){const u=m.slice(-1)[0];let _=o;if(m.length>1){const f=m.slice(-2,-1)[0];_=u.timestamp+u.timestamp-f.timestamp-1}m.push({timestamp:_,price:u.price})}e.datasets[2].data=m}else e.datasets[2].hidden=!0;return e},currentPrice(){return this.chartDataObject.datasets[0].data===void 0||this.chartDataObject.datasets[0].data.length===0?this.formatNumber(0,2):this.formatNumber(this.chartDataObject.datasets[0].data[0].price||0,2)},baseTopic:{get(){return"openWB/optional/ep/flexible_tariff"}},combinedState(){const e=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/fault_state"]||0,o=this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/fault_state"]||0;return Math.max(e,o)},combinedStateMessage(){const e=[];if(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type){const c=(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/fault_state"]||0)>0?this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/get/fault_str"]:"Kein Fehler.";e.push(`Stromtarif: ${c}`)}if(this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type){const c=(this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/fault_state"]||0)>0?this.$store.state.mqtt["openWB/optional/ep/grid_fee/get/fault_str"]:"Kein Fehler.";e.push(`Netzentgelt: ${c}`)}return e.length>0?e.join(` `):void 0},tariffProvider(){return this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.name||null},gridFeeProvider(){return this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.name||null},showLegend(){const e=this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type,o=this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type;return e&&o},dynamicChartOptions(){const e=JSON.parse(JSON.stringify(this.chartOptions));return e.plugins.legend.display=this.showLegend,e.scales.x.ticks.callback=this.formatTickLabel,e}},methods:{getEndOfToday(){return new Date().setHours(23,59,59,999).valueOf()},formatTickLabel(e){const o=new Date(e);return`${this.getEndOfToday()[l(p,{icon:["fas","ranking-star"]}),o[0]||(o[0]=h(" Variable Strompreise ",-1))]),"header-right":i(()=>[h(a(s.currentPrice)+" ct/kWh",1)]),default:i(()=>[l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{header:i(()=>[...o[1]||(o[1]=[h("Tarifinformationen",-1)])]),default:i(()=>[s.tariffProvider?(r(),b("div",$o,[o[2]||(o[2]=t("div",{class:"col-xl-3 pr-0"},"Stromtarif:",-1)),t("div",qo,a(s.tariffProvider),1)])):y("",!0),s.gridFeeProvider?(r(),b("div",Co,[o[3]||(o[3]=t("div",{class:"col-xl-3 pr-0"},"Netzentgelte:",-1)),t("div",No,a(s.gridFeeProvider),1)])):y("",!0)]),_:1}),l(d,{subtype:"white","body-bg":"white",class:"py-1 mb-2"},{default:i(()=>[t("div",So,[s.chartDataRead?(r(),g(m,{key:0,ref:"myChart",data:s.chartDataObject,options:s.dynamicChartOptions},null,8,["data","options"])):y("",!0)])]),_:1})]),_:1},8,["state","state-message"])):y("",!0)}const Ao=W(Bo,[["render",Po],["__scopeId","data-v-6a18833c"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/status/ElectricityPricingCard.vue"]]),Io={name:"OpenwbStatusView",components:{ChargePointSumCard:Lt,ChargePointCard:ve,CounterCard:Xe,InverterSumCard:cs,InverterCard:Ws,BatterySumCard:Ls,BatteryCard:to,IoDeviceCard:lo,VehicleCard:ko,ElectricityPricingCard:Ao},mixins:[$],data(){return{mqttTopics:[{topic:"openWB/bat/get/power",writeable:!1},{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/get/power",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/ep/grid_fee/provider",writeable:!1},{topic:"openWB/pv/get/power",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/io/+/config",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1}]}},computed:{installedChargePoints:{get(){return Object.keys(this.getWildcardTopics("openWB/chargepoint/+/config")).map(e=>{let o=e.match(/^openWB\/chargepoint\/(\d+)\/config$/);return o?parseInt(o[1]):null}).filter(e=>e!==null)}},showChargePointSumCard:{get(){return this.$store.state.mqtt["openWB/chargepoint/get/power"]!==void 0&&this.$store.state.mqtt["openWB/general/extern"]===!1&&this.installedChargePoints.length>1}},counterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"counter")}},showInverterSumCard:{get(){return this.$store.state.mqtt["openWB/pv/get/power"]!==void 0&&this.$store.state.mqtt["openWB/general/extern"]===!1&&Object.keys(this.inverterConfigs).length>1}},inverterConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"inverter")}},showBatterySumCard:{get(){return this.$store.state.mqtt["openWB/bat/get/power"]!==void 0&&this.$store.state.mqtt["openWB/general/extern"]===!1&&Object.keys(this.batteryConfigs).length>1}},batteryConfigs:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?{}:this.filterComponentsByType(this.getWildcardTopics("openWB/system/device/+/component/+/config"),"bat")}},vehicles:{get(){if(this.$store.state.mqtt["openWB/general/extern"]===!0)return[];let e=this.getWildcardTopics("openWB/vehicle/+/info");return Object.keys(e).map(o=>{let c=o.match(/^openWB\/vehicle\/(\d+)\/info$/);return c?parseInt(c[1]):null})}},ioDeviceConfigs:{get(){return this.getWildcardTopics("openWB/system/io/+/config")}},showElectricityPricingCard:{get(){return(this.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]?.type||this.$store.state.mqtt["openWB/optional/ep/grid_fee/provider"]?.type)&&this.$store.state.mqtt["openWB/general/extern"]===!1}}},methods:{filterComponentsByType(e,o){return Object.keys(e).filter(c=>e[c].type.includes(o)).reduce((c,T)=>({...c,[T]:e[T]}),{})}}},Oo={class:"status"};function Lo(e,o,c,T,v,s){const p=n("charge-point-sum-card"),d=n("charge-point-card"),m=n("counter-card"),u=n("inverter-sum-card"),_=n("inverter-card"),f=n("battery-sum-card"),x=n("battery-card"),L=n("vehicle-card"),j=n("io-device-card"),D=n("electricity-pricing-card");return r(),b("div",Oo,[s.showChargePointSumCard?(r(),g(p,{key:0})):y("",!0),(r(!0),b(B,null,k(s.installedChargePoints,w=>(r(),g(d,{key:w,"charge-point-id":w},null,8,["charge-point-id"]))),128)),(r(!0),b(B,null,k(s.counterConfigs,w=>(r(),g(m,{key:w.id,counter:w},null,8,["counter"]))),128)),s.showInverterSumCard?(r(),g(u,{key:1})):y("",!0),(r(!0),b(B,null,k(s.inverterConfigs,w=>(r(),g(_,{key:w.id,inverter:w},null,8,["inverter"]))),128)),s.showBatterySumCard?(r(),g(f,{key:2})):y("",!0),(r(!0),b(B,null,k(s.batteryConfigs,w=>(r(),g(x,{key:w.id,battery:w},null,8,["battery"]))),128)),(r(!0),b(B,null,k(s.vehicles,w=>(r(),g(L,{key:w,"vehicle-id":w},null,8,["vehicle-id"]))),128)),(r(!0),b(B,null,k(s.ioDeviceConfigs,w=>(r(),g(j,{key:w.id,"io-device":w},null,8,["io-device"]))),128)),s.showElectricityPricingCard?(r(),g(D,{key:3})):y("",!0)])}const Ro=W(Io,[["render",Lo],["__scopeId","data-v-051028a3"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Status.vue"]]);export{Ro as default}; diff --git a/web/settings/assets/Support-DMhdXgqE.js b/web/settings/assets/Support--2N_8ACr.js similarity index 99% rename from web/settings/assets/Support-DMhdXgqE.js rename to web/settings/assets/Support--2N_8ACr.js index fe677e8283..2a391c4ce0 100644 --- a/web/settings/assets/Support-DMhdXgqE.js +++ b/web/settings/assets/Support--2N_8ACr.js @@ -1,3 +1,3 @@ -import{F as V,l as W,g as F}from"./vendor-fortawesome-CBc-2W7w.js";import{C as A}from"./index-D_eD74fL.js";import{_ as C,l as d,k as f,e as h,m as n,q as s,A as t,x as l,y as w,D as z,j as M,u as k,K as x}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";W.add(F);const q={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[A],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/device/+/config",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],showDeprecatedFirmwareModal:!1,email:void 0,components:void 0,subject:void 0,ticketNumber:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,subject:this.subject,ticketNumber:this.ticketNumber,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){if(this.components!==void 0)return this.components;let r="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const m of Object.values(e)){const p=m.id,o=m.info?.manufacturer||"N/A",u=m.info?.model||"N/A";r+=`(${p}) Hersteller: ${o}, Modell: ${u} +import{F as V,l as W,g as F}from"./vendor-fortawesome-CBc-2W7w.js";import{C as A}from"./index-MVrRMMo2.js";import{_ as C,l as d,k as f,e as h,m as n,q as s,A as t,x as l,y as w,D as z,j as M,u as k,K as x}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";W.add(F);const q={name:"OpenwbSupportView",components:{FontAwesomeIcon:V},mixins:[A],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/device/+/component/+/config",writeable:!1},{topic:"openWB/system/device/+/config",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/vehicle/+/info",writeable:!1},{topic:"openWB/vehicle/+/name",writeable:!1}],showDeprecatedFirmwareModal:!1,email:void 0,components:void 0,subject:void 0,ticketNumber:void 0,vehicles:void 0,message:void 0,enableSendDebugButton:!0}},computed:{debugData(){return{email:this.email,subject:this.subject,ticketNumber:this.ticketNumber,serialNumber:this.$store.state.mqtt["openWB/system/serial_number"],installedComponents:this.installedComponents,vehicles:this.vehicleInfo,message:this.message}},installedComponents(){if(this.components!==void 0)return this.components;let r="";const e=this.getWildcardTopics("openWB/system/device/+/component/+/config");for(const m of Object.values(e)){const p=m.id,o=m.info?.manufacturer||"N/A",u=m.info?.model||"N/A";r+=`(${p}) Hersteller: ${o}, Modell: ${u} `}return r.trim()},vehicleInfo(){if(this.vehicles!==void 0)return this.vehicles;let r="";const e=this.getWildcardTopics("openWB/vehicle/+/info");for(const[m,p]of Object.entries(e)){const o=parseInt(m.split("/")[2]);if(o!==0){const u=p.manufacturer||"N/A",a=p.model||"N/A";r+=`(${o}) Hersteller: ${u}, Modell: ${a} `}}return r.trim()},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"]}},beforeMount(){this.sendSystemCommand("systemFetchVersions")},methods:{sendDebugMessage(){if(document.forms.supportForm.reportValidity())this.sendSystemCommand("sendDebug",this.debugData),this.enableSendDebugButton=!1;else{console.warn("form invalid");return}},checkFirmware(){this.updateAvailable?this.showDeprecatedFirmwareModal=!0:this.sendDebugMessage()},verifyModalInput(r){this.showDeprecatedFirmwareModal=!1,r=="confirm"&&this.sendDebugMessage()},sendSystemCommand(r,e={}){this.$emit("sendCommand",{command:r,data:e})}}},N={class:"support"},I={name:"supportForm"},T={key:1},j={key:0},U={class:"row justify-content-center"};function H(r,e,m,p,o,u){const a=d("router-link"),v=d("openwb-base-modal-dialog"),b=d("openwb-base-alert"),y=d("FontAwesomeIcon"),g=d("openwb-base-text-input"),c=d("openwb-base-textarea"),B=d("openwb-base-click-button"),S=d("openwb-base-card"),D=d("font-awesome-icon");return f(),h(x,null,[n(v,{show:o.showDeprecatedFirmwareModal,title:"Achtung: Veraltete Software!",subtype:"danger","prevent-close":!0,buttons:[{text:"Trotzdem versenden",event:"confirm",subtype:"danger"},{text:"Nicht versenden",event:"closeDialog"}],onModalResult:e[0]||(e[0]=i=>u.verifyModalInput(i))},{default:s(()=>[e[9]||(e[9]=t(" Möglicherweise wurde das Problem bereits behoben.",-1)),e[10]||(e[10]=l("br",null,null,-1)),e[11]||(e[11]=t(" Bitte führe vor dem Absenden ein ",-1)),n(a,{to:"/System/SystemConfiguration"},{default:s(()=>[...e[8]||(e[8]=[t(" Update ",-1)])]),_:1}),e[12]||(e[12]=t(" durch.",-1)),e[13]||(e[13]=l("br",null,null,-1)),e[14]||(e[14]=t(" Falls ein Update nicht möglich ist, kann der Systembericht dennoch versendet werden. Falls kein Update gewünscht ist, bieten wir auch über unseren Partner WB Solution GmbH ",-1)),e[15]||(e[15]=l("a",{href:"https://wb-solution.de/produkt/support-token-aeltere-version/",target:"_blank",rel:"noopener noreferrer"},"Support für ältere Softwareversionen",-1)),e[16]||(e[16]=t(" an. ",-1))]),_:1},8,["show"]),l("div",N,[l("form",I,[r.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]!==!0?(f(),w(b,{key:0,subtype:"danger"},{default:s(()=>[e[18]||(e[18]=t(" Du musst der ",-1)),n(a,{to:"/System/LegalSettings"},{default:s(()=>[...e[17]||(e[17]=[t(" Datenschutzerklärung ",-1)])]),_:1}),e[19]||(e[19]=t(" zustimmen, um einen Systembericht senden zu können. ",-1))]),_:1})):(f(),h("div",T,[n(b,{subtype:"success"},{default:s(()=>[e[21]||(e[21]=t(" Du hast der ",-1)),n(a,{to:"/System/LegalSettings"},{default:s(()=>[...e[20]||(e[20]=[t(" Datenschutzerklärung ",-1)])]),_:1}),e[22]||(e[22]=t(" zugestimmt und kannst Systemberichte senden. ",-1))]),_:1}),n(S,{title:"Systembericht"},z({default:s(()=>[r.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?(f(),h("div",j,[n(b,{subtype:"danger"},{default:s(()=>[...e[23]||(e[23]=[t(' Vergewissere Dich, dass mindestens die aktuelle "Release" Version installiert ist. ',-1)])]),_:1}),n(b,{subtype:"info"},{default:s(()=>[l("ul",null,[l("li",null,[e[24]||(e[24]=t(" Lies bitte den Hilfetext, der durch Klick auf das ",-1)),n(y,{icon:["far","question-circle"]}),e[25]||(e[25]=t(" angezeigt wird. Nimm das Wiki zur Hilfe. ",-1))]),e[26]||(e[26]=l("li",null," Stelle beim Absenden des Berichtes die Fehlerkonditionen her. Lädt ein Fahrzeug nicht, sollte es angeschlossen und nicht voll geladen sein. Ist PV laden betroffen, sollte die Sonne auch scheinen. Der Systembericht muss dann versendet werden, wenn der Fehler aktuell vorliegt. ",-1)),e[27]||(e[27]=l("li",null," Stelle sicher, dass der richtige Lademodus gewählt ist und im Falle von nicht ladenden Fahrzeugen, dass der Ladepunkt auch entsperrt wurde. ",-1)),e[28]||(e[28]=l("li",null," Das Auslesen der Systemkonfiguration erfolgt direkt nach den Klick auf Absenden und kann einige Zeit in Anspruch nehmen. Du erhältst ca. 15 bis 30 Minuten nach Versand des Systemberichtes von uns automatisch eine E-Mail mit der Ticketnummer unter der die Anfrage bei uns registriert wurde. Wir melden uns bei Dir. Bitte kontrolliere daher immer auch den Spam Ordner auf eingehende Nachrichten. Erhältst Du trotzdem keine Ticketnummer, ist das Versenden des Systemberichtes vermutlich fehlgeschlagen. ",-1))])]),_:1}),n(g,{modelValue:o.email,"onUpdate:modelValue":e[1]||(e[1]=i=>o.email=i),title:"E-Mail",required:"",subtype:"email"},{help:s(()=>[...e[29]||(e[29]=[t(" Deine E-Mail-Adresse, an die der Support Dir antwortet. ",-1)])]),_:1},8,["modelValue"]),n(g,{modelValue:o.subject,"onUpdate:modelValue":e[2]||(e[2]=i=>o.subject=i),title:"Betreff",required:"",minlength:"15",maxlength:"100"},{help:s(()=>[...e[30]||(e[30]=[t(" Du kannst hier einen kurzen Titel für dein Problem angeben. ",-1)])]),_:1},8,["modelValue"]),n(g,{modelValue:o.ticketNumber,"onUpdate:modelValue":e[3]||(e[3]=i=>o.ticketNumber=i),title:"Bestehende Ticketnummer",maxlength:"8",pattern:"[1-9][0-9]{7}"},{help:s(()=>[...e[31]||(e[31]=[t(" Hier kann eine bereits bestehende Ticketnummer eingegeben werden, damit das Ticket schneller zugeordnet werden kann. ",-1)])]),_:1},8,["modelValue"]),n(g,{title:"openWB Seriennummer",required:"","model-value":r.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[4]||(e[4]=i=>r.updateState("openWB/system/serial_number",i))},{help:s(()=>[...e[32]||(e[32]=[t(" Die Seriennummer der openWB findest Du außen am, bei älteren Installationen innen im Gehäuse. Du kannst uns aber auch eine Bestellnummer oder Rechnungsnummer übermitteln. Das Gehäuse muss nicht extra geöffnet werden!",-1),l("br",null,null,-1),t(" Bei einer gekauften openWB wird die Seriennummer automatisch ermittelt. ",-1)])]),_:1},8,["model-value"]),n(c,{title:"Verwendete Komponenten",required:"",minlength:"3",maxlength:"500","model-value":u.installedComponents,"onUpdate:modelValue":e[5]||(e[5]=i=>o.components=i)},{help:s(()=>[e[34]||(e[34]=t(" Gib hier möglichst detailliert an, welche Anlagenkomponenten (EVU, PV, Speicher) angebunden sind.",-1)),e[35]||(e[35]=l("br",null,null,-1)),n(a,{to:"/HardwareInstallation"},{default:s(()=>[...e[33]||(e[33]=[t(" Die Angaben können auch direkt in der Konfiguration der Komponenten dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),n(c,{title:"Fahrzeuge",required:"",minlength:"3",maxlength:"500","model-value":u.vehicleInfo,"onUpdate:modelValue":e[6]||(e[6]=i=>o.vehicles=i)},{help:s(()=>[e[37]||(e[37]=t(" Gib hier an, welche Fahrzeuge geladen (Hersteller, Modell, Baujahr).",-1)),e[38]||(e[38]=l("br",null,null,-1)),n(a,{to:"/VehicleConfiguration"},{default:s(()=>[...e[36]||(e[36]=[t(" Die Angaben können auch direkt in der Konfiguration der Fahrzeuge dauerhaft gespeichert werden. ",-1)])]),_:1})]),_:1},8,["model-value"]),n(c,{modelValue:o.message,"onUpdate:modelValue":e[7]||(e[7]=i=>o.message=i),title:"Problembeschreibung",required:"",minlength:"20",maxlength:"500"},null,8,["modelValue"])])):k("",!0)]),_:2},[r.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0?{name:"footer",fn:s(()=>[l("div",U,[n(B,{class:M(["col-4",o.enableSendDebugButton?"btn-success":"btn-outline-success"]),disabled:!o.enableSendDebugButton,onButtonClicked:u.checkFirmware},{default:s(()=>[...e[39]||(e[39]=[t(" Absenden ",-1)])]),_:1},8,["class","disabled","onButtonClicked"])])]),key:"0"}:void 0]),1024),o.enableSendDebugButton?k("",!0):(f(),w(b,{key:0,subtype:"success"},{default:s(()=>[e[40]||(e[40]=t(" Die Daten für den Fehlerbericht werden im Hintergrund zusammengestellt. Du kannst diese Seite jetzt verlassen. ",-1)),n(D,{icon:["fas","check"]})]),_:1}))]))])])],64)}const O=C(q,[["render",H],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/Support.vue"]]);export{O as default}; diff --git a/web/settings/assets/SurplusChargeConfiguration-i4C8x6Va.js b/web/settings/assets/SurplusChargeConfiguration-Cu9BnO0I.js similarity index 99% rename from web/settings/assets/SurplusChargeConfiguration-i4C8x6Va.js rename to web/settings/assets/SurplusChargeConfiguration-Cu9BnO0I.js index b030dbb37f..775164ba49 100644 --- a/web/settings/assets/SurplusChargeConfiguration-i4C8x6Va.js +++ b/web/settings/assets/SurplusChargeConfiguration-Cu9BnO0I.js @@ -1 +1 @@ -import{C as f}from"./index-D_eD74fL.js";import{S as w}from"./SystemVersion-DQAfG1DR.js";import{l as v,a4 as _,ag as W,ah as z}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,l as g,k as h,e as p,x as i,m as a,q as l,A as t,J as k}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";v.add(_,W,z);const S={name:"OpenwbSurplusChargeConfigView",components:{},mixins:[f,w],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/chargemode_config/pv_charging/control_range",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/feed_in_yield",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/phase_switch_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_threshold",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_threshold",writeable:!0},{topic:"openWB/general/extern",writeable:!1}],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;let e=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"];var d="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?d="export":e[0]===0&&e[1]===230?d="import":e[0]===-115&&e[1]===115?d="balanced":d="individual"),d},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}}},watch:{controlMode(n){this.calculatedControlMode=n}}},y={class:"pvChargeConfig"},V={name:"pvChargeConfigForm"},L={key:0},P={key:1},q=["href"];function E(n,e,d,U,C,o){const u=g("openwb-base-alert"),m=g("openwb-base-button-group-input"),s=g("openwb-base-number-input"),c=g("openwb-base-card"),b=g("openwb-base-submit-buttons");return h(),p("div",y,[i("form",V,[a(c,{title:"Regelparameter"},{default:l(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(h(),p("div",L,[a(u,{subtype:"info"},{default:l(()=>[...e[13]||(e[13]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(h(),p("div",P,[a(m,{modelValue:o.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>o.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:l(()=>[...e[14]||(e[14]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),i("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),i("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])]),_:1},8,["modelValue"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:l(()=>[...e[15]||(e[15]=[t(" Untere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:l(()=>[...e[16]||(e[16]=[t(" Obere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),e[32]||(e[32]=i("hr",null,null,-1)),a(u,{subtype:o.chargingSwitchRange<1400?"danger":"info"},{default:l(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+k((o.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),a(s,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:l(()=>[...e[17]||(e[17]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),i("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:l(()=>[...e[18]||(e[18]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[33]||(e[33]=i("hr",null,null,-1)),a(u,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:l(()=>[...e[19]||(e[19]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])]),_:1},8,["subtype"]),a(s,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:l(()=>[...e[20]||(e[20]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:l(()=>[...e[21]||(e[21]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[34]||(e[34]=i("hr",null,null,-1)),a(m,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches"],"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",r))},{help:l(()=>[...e[22]||(e[22]=[t(" Phasenumschaltungen werden zum Schutz der EV- und WB-Hardware begrenzt.",-1),i("br",null,null,-1),t(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),i("br",null,null,-1),t(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phase_switch_delay"],"onUpdate:modelValue":e[8]||(e[8]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/phase_switch_delay",r))},{help:l(()=>[...e[23]||(e[23]=[t(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),i("br",null,null,-1),t(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])]),_:1},8,["model-value"]),e[35]||(e[35]=i("hr",null,null,-1)),a(s,{title:"Regelpunkt Einspeisegrenze",min:-1e3,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:l(()=>[e[24]||(e[24]=t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1)),e[25]||(e[25]=i("br",null,null,-1)),e[26]||(e[26]=t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter in irgendeiner Form abgeregelt wird Weitere Infos dazu im ",-1)),i("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:einstell-konfig:ladeeinstellungen:pv-laden-speicherbeachtung#regelpunkt_einspeisegrenze`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Beachtung der Einspeisegrenze ",8,q),e[27]||(e[27]=t(".",-1)),e[28]||(e[28]=i("br",null,null,-1)),e[29]||(e[29]=t(' Bei Erreichen dieses Werts wird die PV-Ladung nacheinander für jedes Fahrzeug im PV-Modus gestartet, bei welchem "Einspeisegrenze beachten" im Ladeprofil aktiviert ist, dies setzt die Einschaltschwelle außer kraft!',-1)),e[30]||(e[30]=i("br",null,null,-1)),e[31]||(e[31]=t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1))]),_:1},8,["model-value"])]))]),_:1}),a(b,{"form-name":"pvChargeConfigForm",onSave:e[10]||(e[10]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[11]||(e[11]=r=>n.$emit("reset")),onDefaults:e[12]||(e[12]=r=>n.$emit("defaults"))})])])}const F=B(S,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SurplusChargeConfiguration.vue"]]);export{F as default}; +import{C as f}from"./index-MVrRMMo2.js";import{S as w}from"./SystemVersion-DQAfG1DR.js";import{l as v,a4 as _,ag as W,ah as z}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as B,l as g,k as h,e as p,x as i,m as a,q as l,A as t,J as k}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";v.add(_,W,z);const S={name:"OpenwbSurplusChargeConfigView",components:{},mixins:[f,w],emits:["save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/chargemode_config/pv_charging/control_range",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/feed_in_yield",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/phase_switch_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_off_threshold",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_delay",writeable:!0},{topic:"openWB/general/chargemode_config/pv_charging/switch_on_threshold",writeable:!0},{topic:"openWB/general/extern",writeable:!1}],calculatedControlMode:void 0}},computed:{controlMode:{get(){if(this.calculatedControlMode!==void 0)return this.calculatedControlMode;let e=this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"];var d="individual";return typeof e<"u"&&(e[0]===-230&&e[1]===0?d="export":e[0]===0&&e[1]===230?d="import":e[0]===-115&&e[1]===115?d="balanced":d="individual"),d},set(n){const e="openWB/general/chargemode_config/pv_charging/control_range";switch(this.calculatedControlMode=n,n){case"export":this.updateState(e,[-230,0]);break;case"import":this.updateState(e,[0,230]);break;case"balanced":this.updateState(e,[-115,115]);break}}},chargingSwitchRange:{get(){return this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]+this.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]}}},watch:{controlMode(n){this.calculatedControlMode=n}}},y={class:"pvChargeConfig"},V={name:"pvChargeConfigForm"},L={key:0},P={key:1},q=["href"];function E(n,e,d,U,C,o){const u=g("openwb-base-alert"),m=g("openwb-base-button-group-input"),s=g("openwb-base-number-input"),c=g("openwb-base-card"),b=g("openwb-base-submit-buttons");return h(),p("div",y,[i("form",V,[a(c,{title:"Regelparameter"},{default:l(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(h(),p("div",L,[a(u,{subtype:"info"},{default:l(()=>[...e[13]||(e[13]=[t(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(h(),p("div",P,[a(m,{modelValue:o.controlMode,"onUpdate:modelValue":e[0]||(e[0]=r=>o.controlMode=r),title:"Regelmodus",buttons:[{buttonValue:"export",text:"Einspeisung"},{buttonValue:"import",text:"Bezug"},{buttonValue:"balanced",text:"Ausgewogen"},{buttonValue:"individual",text:"Individuell"}]},{help:l(()=>[...e[14]||(e[14]=[t(" Die Ladeleistung kann nicht mit absoluter Genauigkeit eingestellt werden, sodass am EVU-Punkt nicht auf exakt 0W geregelt werden kann. Der Regelmodus legt fest, ob diese Differenz am EVU-Punkt (ca. 200-300W) zu geringem Netzbezug oder geringer Netzeinspeisung führen soll. Liegt die Leistung am EVU-Punkt innerhalb des Regelbereichs, wird nicht nachgeregelt.",-1),i("br",null,null,-1),t(" Bei Speichervorrang erzeugt die Regelung bei Bedarf unabhängig vom eingestellten Regelmodus Einspeisung, damit der Speicher seine Ladeleistung erhöht.",-1),i("br",null,null,-1),t(" Achtung: bei unlogischen Einstellungen kann die Regelung gestört werden! Im Zweifel bitte unsere vordefinierten Modi verwenden. ",-1)])]),_:1},8,["modelValue"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Minimum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][0]/1e3:void 0,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"0"))},{help:l(()=>[...e[15]||(e[15]=[t(" Untere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),a(s,{disabled:o.controlMode!=="individual",readonly:o.controlMode!=="individual",title:"Maximum",step:.005,unit:"kW",required:"","model-value":Array.isArray(n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"])?n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/control_range"][1]/1e3:void 0,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/control_range",r*1e3,"1"))},{help:l(()=>[...e[16]||(e[16]=[t(" Obere Grenze des Regelbereichs. ",-1)])]),_:1},8,["disabled","readonly","model-value"]),e[32]||(e[32]=i("hr",null,null,-1)),a(u,{subtype:o.chargingSwitchRange<1400?"danger":"info"},{default:l(()=>[t(" Die Differenzleistung zw. Ein- und Abschaltschwelle sollte mind. 1,4 kW (230V x 6A) betragen. (Konfiguriert: "+k((o.chargingSwitchRange/1e3).toLocaleString(void 0))+" kW) ",1)]),_:1},8,["subtype"]),a(s,{title:"Einschaltschwelle",min:0,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_threshold"]/1e3,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_threshold",r*1e3))},{help:l(()=>[...e[17]||(e[17]=[t(" Wird der Regelbereich in Richtung Einspeisung um diese Leistung überschritten, so wird der Ladevorgang gestartet.",-1),i("br",null,null,-1),t(" Dieser Wert wird pro Phase genutzt und ist daher immer für eine Phase anzugeben. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladestart & Phasenzuschaltung",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_on_delay"],"onUpdate:modelValue":e[4]||(e[4]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_on_delay",r))},{help:l(()=>[...e[18]||(e[18]=[t(" Die Einschaltschwelle muss für die hier angegebene Zeit dauerhaft überschritten werden, bevor ein Ladevorgang gestartet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird weiter geladen, wenn die Abschaltschwelle nicht unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[33]||(e[33]=i("hr",null,null,-1)),a(u,{subtype:n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3>0?"danger":"info"},{default:l(()=>[...e[19]||(e[19]=[t(" Ist ein Speicher im System vorhanden, kann eine Abschaltschwelle größer Null zur Speicherentladung führen. (Siehe Fragezeichentext) ",-1)])]),_:1},8,["subtype"]),a(s,{title:"Abschaltschwelle",step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_threshold"]/1e3,"onUpdate:modelValue":e[5]||(e[5]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_threshold",r*1e3))},{help:l(()=>[...e[20]||(e[20]=[t(" Übersteigt der Netzbezug die Abschaltschwelle, wird die Ladung beendet. Eine Abschaltschwelle, die Netzbezug erlaubt, führt in einem System ohne steuerbaren Speicher zur Entladung des Speichers. Der Speicher wird dann auch über den eingestellten Mindest-SoC hinaus entladen (siehe Speicherbeachtung unten). ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Wartezeit Ladeende & Phasenreduktion",min:0,step:1,unit:"s",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/switch_off_delay"],"onUpdate:modelValue":e[6]||(e[6]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/switch_off_delay",r))},{help:l(()=>[...e[21]||(e[21]=[t(" Die Abschaltschwelle muss für die hier angegebene Zeit dauerhaft unterschritten werden, bevor ein Ladevorgang beendet wird.",-1),i("br",null,null,-1),t(" Wenn ein Ladevorgang aktiv ist und auf PV-Laden umgeschaltet wird, wird die Ladung sofort beendet, wenn die Abschaltschwelle unterschritten wird.",-1),i("br",null,null,-1),t(" Wenn die Pufferzeit zwischen zwei automatischen Phasenumschaltungen abgelaufen ist, wird die hier eingestellte Wartezeit abgewartet. Wenn die Pufferzeit zwischen zwei Umschaltungen noch nicht erreicht ist, wird die längere der beiden Zeiten abgewartet: entweder die verbleibende Pufferzeit oder die Wartezeit. ",-1)])]),_:1},8,["model-value"]),e[34]||(e[34]=i("hr",null,null,-1)),a(m,{title:"Phasenumschaltung wiederholt anstoßen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches"],"onUpdate:modelValue":e[7]||(e[7]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/retry_failed_phase_switches",r))},{help:l(()=>[...e[22]||(e[22]=[t(" Phasenumschaltungen werden zum Schutz der EV- und WB-Hardware begrenzt.",-1),i("br",null,null,-1),t(" Wenn diese Option aktiviert ist, werden bis zu zwei Umschaltversuche vorgenommen, wenn die vorgegebene und genutzte Phasenzahl nicht übereinstimmen. Wird die Option deaktiviert, wird nur eine Umschaltung durchgeführt.",-1),i("br",null,null,-1),t(" Die gezählten Fehlversuche werden beim nächsten Wechsel des Lademodus oder mit dem Abstecken zurückgesetzt. ",-1)])]),_:1},8,["model-value"]),a(s,{title:"Pufferzeit zwischen automat. Phasenumschaltungen",unit:"Min.",min:5,max:180,step:1,"model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/phase_switch_delay"],"onUpdate:modelValue":e[8]||(e[8]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/phase_switch_delay",r))},{help:l(()=>[...e[23]||(e[23]=[t(" Um zu viele Umschaltungen zu vermeiden, wird mindestens die hier eingestellte Zeit zwischen zwei Umschaltungen abgewartet. Das Umschalten auf mehrphasiges Laden erfolgt nur, wenn mit der maximalen Stromstärke geladen wird und genug Leistung für mehrphasiges Laden zur Verfügung steht. Auf einphasiges Laden wird zurückgeschaltet, wenn auf die minimale Stromstärke heruntergeregelt wurde. Die Verzögerung wird nur bei der automatischen Phasenumschaltung bei Überschuss-Laden abgewartet.",-1),i("br",null,null,-1),t(" Ist ausreichend Überschuss vorhanden, wird beim Ladestart die Umschaltverzögerung nicht abgewartet, sondern direkt mit mehrphasiger Ladung begonnen. ",-1)])]),_:1},8,["model-value"]),e[35]||(e[35]=i("hr",null,null,-1)),a(s,{title:"Regelpunkt Einspeisegrenze",min:-1e3,step:.05,unit:"kW",required:"","model-value":n.$store.state.mqtt["openWB/general/chargemode_config/pv_charging/feed_in_yield"]/1e3,"onUpdate:modelValue":e[9]||(e[9]=r=>n.updateState("openWB/general/chargemode_config/pv_charging/feed_in_yield",r*1e3))},{help:l(()=>[e[24]||(e[24]=t(" Ein Wert größer 0kW bewirkt, dass weniger PV-Leistung zum Laden benutzt wird.",-1)),e[25]||(e[25]=i("br",null,null,-1)),e[26]||(e[26]=t(" Die Nutzung dieser Option ergibt nur Sinn, wenn ein Wechselrichter in irgendeiner Form abgeregelt wird Weitere Infos dazu im ",-1)),i("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:einstell-konfig:ladeeinstellungen:pv-laden-speicherbeachtung#regelpunkt_einspeisegrenze`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zur Beachtung der Einspeisegrenze ",8,q),e[27]||(e[27]=t(".",-1)),e[28]||(e[28]=i("br",null,null,-1)),e[29]||(e[29]=t(' Bei Erreichen dieses Werts wird die PV-Ladung nacheinander für jedes Fahrzeug im PV-Modus gestartet, bei welchem "Einspeisegrenze beachten" im Ladeprofil aktiviert ist, dies setzt die Einschaltschwelle außer kraft!',-1)),e[30]||(e[30]=i("br",null,null,-1)),e[31]||(e[31]=t(" Zur optimalen Eigenverbrauchssteuerung sollte der Wert einige hundert Watt UNTER der im Wechselrichter hinterlegten EVU-Einspeiseleistungsgrenze liegen, damit openWB die Ladung freigibt, BEVOR der Wechselrichter begrenzt wird. ",-1))]),_:1},8,["model-value"])]))]),_:1}),a(b,{"form-name":"pvChargeConfigForm",onSave:e[10]||(e[10]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[11]||(e[11]=r=>n.$emit("reset")),onDefaults:e[12]||(e[12]=r=>n.$emit("defaults"))})])])}const F=B(S,[["render",E],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SurplusChargeConfiguration.vue"]]);export{F as default}; diff --git a/web/settings/assets/SystemConfiguration-BN4gvHU6.js b/web/settings/assets/SystemConfiguration-C-kqn4RK.js similarity index 99% rename from web/settings/assets/SystemConfiguration-BN4gvHU6.js rename to web/settings/assets/SystemConfiguration-C-kqn4RK.js index 07cd04f087..efa67d44b9 100644 --- a/web/settings/assets/SystemConfiguration-BN4gvHU6.js +++ b/web/settings/assets/SystemConfiguration-C-kqn4RK.js @@ -1 +1 @@ -import{F as z,l as U,aB as E,u as x,an as L,a9 as R,aC as j}from"./vendor-fortawesome-CBc-2W7w.js";import{C as F}from"./index-D_eD74fL.js";import{_ as D,l as h,k as p,e as g,y as B,q as u,x as a,m as r,u as y,j as k,K as V,L as q,J as W,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";U.add(E,x,L,R,j);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:z},mixins:[F],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/current_branch",writeable:!1},{topic:"openWB/chargepoint/+/get/version",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/available_branches",writeable:!1},{topic:"openWB/system/current_branch",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/current_missing_commits",writeable:!1},{topic:"openWB/system/hostname",writeable:!1},{topic:"openWB/system/ip_address",writeable:!1},{topic:"openWB/system/mac_address",writeable:!1},{topic:"openWB/system/secondary_auto_update",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/system/version",writeable:!1}],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[i,f]of Object.entries(t))f.type==="external_openwb"&&(e[i]=f);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]!==void 0&&this.$store.state.mqtt["openWB/system/available_branches"]!==void 0&&this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",i="master",f=[t,e],c=(s,l)=>s.value==l.value?0:s.value==t?-1:l.value==t?1:s.value==e?-1:l.value==e?1:s.value==i?-1:l.value==i||s.value>l.value?1:s.value{const m=l=>{const b=l.split("-"),v=b[0].split(".");let w;return b.length>1?w=b[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(f.value),s=m(c.value);if(o.semver[0]=="*HEAD*")return-1;if(s.semver[0]=="*HEAD*")return 1;if(o.semver[0]>s.semver[0])return-1;if(o.semver[0]s.semver[1])return-1;if(o.semver[1]s.semver[2])return-1;if(o.semver[2]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]t[i].type.includes(e)).reduce((i,f)=>({...i,[f]:t[f]}),{})}}},I={class:"system"},O={key:1},N={name:"systemInfoForm"},P={name:"versionInfoForm"},Z={class:"missing-commits"},G={class:"row justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:1},X={key:0,name:"powerForm"},Y={class:"row justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={class:"col-md-4 d-flex py-1 justify-content-center"},se={key:1,name:"releaseChangeForm"},ne={class:"row justify-content-center"},re={class:"col-md-4 d-flex py-1 justify-content-center"};function ae(t,e,i,f,c,m){const o=h("openwb-base-button-group-input"),s=h("openwb-base-alert"),l=h("openwb-base-text-input"),b=h("openwb-base-card"),v=h("font-awesome-icon"),w=h("openwb-base-click-button"),A=h("openwb-base-heading"),S=h("openwb-base-submit-buttons"),C=h("router-link"),_=h("openwb-base-select-input");return p(),g("div",I,[i.installAssistantActive?y("",!0):(p(),B(s,{key:0,subtype:"danger"},{default:u(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:c.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>c.warningAcknowledged=n),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),c.warningAcknowledged||i.installAssistantActive?(p(),g("div",O,[r(b,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",N,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/serial_number"]=n),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/ip_address"]=n),title:"IP-Adresse",subtype:"host",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/mac_address"]=n),title:"MAC-Adresse",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/hostname"],"onUpdate:modelValue":e[4]||(e[4]=n=>t.$store.state.mqtt["openWB/system/hostname"]=n),title:"Hostname",subtype:"host",required:"",readonly:""},null,8,["modelValue"])])]),_:1},8,["collapsed"]),r(b,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",P,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[6]||(e[6]=n=>t.$store.state.mqtt["openWB/system/version"]=n),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),B(b,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:u(()=>[a("ul",Z,[(p(!0),g(V,null,q(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,$)=>(p(),g("li",{key:$},W(n),1))),128))])]),_:1})):y("",!0),i.installAssistantActive?y("",!0):(p(),B(s,{key:1,subtype:"danger"},{default:u(()=>[...e[20]||(e[20]=[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})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!i.installAssistantActive?(p(),B(s,{key:2,subtype:"danger"},{default:u(()=>[...e[21]||(e[21]=[d(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),d(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])]),_:1})):y("",!0),a("div",G,[a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=n=>m.systemUpdate())},{default:u(()=>[e[22]||(e[22]=d(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!i.installAssistantActive&&Object.keys(m.externalChargePoints).length>0?(p(),g("div",J,[e[27]||(e[27]=a("hr",null,null,-1)),r(A,null,{default:u(()=>[...e[23]||(e[23]=[d("Automatisches Update von Secondary openWBs",-1)])]),_:1}),r(s,{subtype:"info"},{default:u(()=>[...e[24]||(e[24]=[d(' Die automatische Aktualisierung für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Release-Version zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])]),_:1}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateState("openWB/system/secondary_auto_update",n))},{help:u(()=>[...e[25]||(e[25]=[d(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])]),_:1},8,["model-value"])])):y("",!0),a("table",K,[e[26]||(e[26]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),g(V,null,q(m.externalChargePoints,n=>(p(),g("tr",{key:n.id},[a("td",null,W(n.name),1),a("td",null,W(t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/version"]),1),a("td",null,W(n.configuration.ip_address),1)]))),128))])]),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",Q,[r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=n=>t.$emit("save",["openWB/system/secondary_auto_update"])),onReset:e[12]||(e[12]=n=>t.$emit("reset"))})])):y("",!0)])):y("",!0)])]),_:1},8,["collapsed"]),i.installAssistantActive?y("",!0):(p(),g("form",X,[r(b,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",Y,[a("div",ee,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=n=>m.systemReboot())},{default:u(()=>[e[34]||(e[34]=d(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1})]),a("div",te,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=n=>m.systemShutdown())},{default:u(()=>[e[35]||(e[35]=d(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1})])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[28]||(e[28]=[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}),r(s,{subtype:"info"},{default:u(()=>[e[30]||(e[30]=d(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[31]||(e[31]=a("br",null,null,-1)),e[32]||(e[32]=d("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:u(()=>[...e[29]||(e[29]=[d(" Systembericht ",-1)])]),_:1}),e[33]||(e[33]=d(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1})]),_:1})])),i.installAssistantActive?y("",!0):(p(),g("form",se,[r(b,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",ne,[a("div",re,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=n=>m.switchBranch())},{default:u(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[38]||(e[38]=d(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[36]||(e[36]=[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])]),_:1}),r(s,{subtype:"warning"},{default:u(()=>[...e[37]||(e[37]=[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.",-1),a("br",null,null,-1),d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),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.',-1),a("br",null,null,-1),d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])]),_:1}),r(_,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),r(_,{modelValue:c.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=n=>c.selectedTag=n),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):y("",!0)])}const pe=D(T,[["render",ae],["__scopeId","data-v-e5e73130"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SystemConfiguration.vue"]]);export{pe as default}; +import{F as z,l as U,aB as E,u as x,an as L,a9 as R,aC as j}from"./vendor-fortawesome-CBc-2W7w.js";import{C as F}from"./index-MVrRMMo2.js";import{_ as D,l as h,k as p,e as g,y as B,q as u,x as a,m as r,u as y,j as k,K as V,L as q,J as W,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";U.add(E,x,L,R,j);const T={name:"OpenwbSystemView",components:{FontAwesomeIcon:z},mixins:[F],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["save","reset","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/chargepoint/+/get/current_branch",writeable:!1},{topic:"openWB/chargepoint/+/get/version",writeable:!1},{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/system/available_branches",writeable:!1},{topic:"openWB/system/current_branch",writeable:!1},{topic:"openWB/system/current_branch_commit",writeable:!1},{topic:"openWB/system/current_commit",writeable:!1},{topic:"openWB/system/current_missing_commits",writeable:!1},{topic:"openWB/system/hostname",writeable:!1},{topic:"openWB/system/ip_address",writeable:!1},{topic:"openWB/system/mac_address",writeable:!1},{topic:"openWB/system/secondary_auto_update",writeable:!1},{topic:"openWB/system/serial_number",writeable:!1},{topic:"openWB/system/version",writeable:!1}],warningAcknowledged:!1,selectedTag:"*HEAD*"}},computed:{externalChargePoints:{get(){let t=this.getWildcardTopics("openWB/chargepoint/+/config"),e={};for(const[i,f]of Object.entries(t))f.type==="external_openwb"&&(e[i]=f);return e}},updateAvailable(){return this.$store.state.mqtt["openWB/system/current_branch_commit"]&&this.$store.state.mqtt["openWB/system/current_branch_commit"]!=this.$store.state.mqtt["openWB/system/current_commit"]},releaseChangeValid(){return this.$store.state.mqtt["openWB/system/current_branch"]!==void 0&&this.$store.state.mqtt["openWB/system/available_branches"]!==void 0&&this.$store.state.mqtt["openWB/system/current_branch"]in this.$store.state.mqtt["openWB/system/available_branches"]&&"tags"in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]]&&this.selectedTag in this.$store.state.mqtt["openWB/system/available_branches"][this.$store.state.mqtt["openWB/system/current_branch"]].tags},branchGroups(){const t="Release",e="Beta",i="master",f=[t,e],c=(s,l)=>s.value==l.value?0:s.value==t?-1:l.value==t?1:s.value==e?-1:l.value==e?1:s.value==i?-1:l.value==i||s.value>l.value?1:s.value{const m=l=>{const b=l.split("-"),v=b[0].split(".");let w;return b.length>1?w=b[1].split("."):w=["release","0"],{semver:v,suffix:w}},o=m(f.value),s=m(c.value);if(o.semver[0]=="*HEAD*")return-1;if(s.semver[0]=="*HEAD*")return 1;if(o.semver[0]>s.semver[0])return-1;if(o.semver[0]s.semver[1])return-1;if(o.semver[1]s.semver[2])return-1;if(o.semver[2]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]s.suffix[1])return-1;if(o.suffix[1]t[i].type.includes(e)).reduce((i,f)=>({...i,[f]:t[f]}),{})}}},I={class:"system"},O={key:1},N={name:"systemInfoForm"},P={name:"versionInfoForm"},Z={class:"missing-commits"},G={class:"row justify-content-center"},H={class:"col-md-4 d-flex py-1 justify-content-center"},J={key:3},M={key:0},K={class:"table table-striped"},Q={key:1},X={key:0,name:"powerForm"},Y={class:"row justify-content-center"},ee={class:"col-md-4 d-flex py-1 justify-content-center"},te={class:"col-md-4 d-flex py-1 justify-content-center"},se={key:1,name:"releaseChangeForm"},ne={class:"row justify-content-center"},re={class:"col-md-4 d-flex py-1 justify-content-center"};function ae(t,e,i,f,c,m){const o=h("openwb-base-button-group-input"),s=h("openwb-base-alert"),l=h("openwb-base-text-input"),b=h("openwb-base-card"),v=h("font-awesome-icon"),w=h("openwb-base-click-button"),A=h("openwb-base-heading"),S=h("openwb-base-submit-buttons"),C=h("router-link"),_=h("openwb-base-select-input");return p(),g("div",I,[i.installAssistantActive?y("",!0):(p(),B(s,{key:0,subtype:"danger"},{default:u(()=>[e[18]||(e[18]=a("h2",null,"Achtung!",-1)),e[19]||(e[19]=a("p",null," Vor allen Aktionen auf dieser Seite ist sicherzustellen, dass kein Ladevorgang aktiv ist! Zur Sicherheit bitte zusätzlich alle Fahrzeuge von der Ladestation / den Ladestationen abstecken! ",-1)),r(o,{modelValue:c.warningAcknowledged,"onUpdate:modelValue":e[0]||(e[0]=n=>c.warningAcknowledged=n),title:"Ich habe die Warnung verstanden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"])]),_:1})),c.warningAcknowledged||i.installAssistantActive?(p(),g("div",O,[r(b,{title:"System Information",subtype:"info",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",N,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/serial_number"],"onUpdate:modelValue":e[1]||(e[1]=n=>t.$store.state.mqtt["openWB/system/serial_number"]=n),title:"Seriennummer",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/ip_address"],"onUpdate:modelValue":e[2]||(e[2]=n=>t.$store.state.mqtt["openWB/system/ip_address"]=n),title:"IP-Adresse",subtype:"host",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/mac_address"],"onUpdate:modelValue":e[3]||(e[3]=n=>t.$store.state.mqtt["openWB/system/mac_address"]=n),title:"MAC-Adresse",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/hostname"],"onUpdate:modelValue":e[4]||(e[4]=n=>t.$store.state.mqtt["openWB/system/hostname"]=n),title:"Hostname",subtype:"host",required:"",readonly:""},null,8,["modelValue"])])]),_:1},8,["collapsed"]),r(b,{title:"Versions-Informationen / Aktualisierung",subtype:"success",collapsible:!0,collapsed:!i.installAssistantActive},{default:u(()=>[a("form",P,[r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[5]||(e[5]=n=>t.$store.state.mqtt["openWB/system/current_branch"]=n),title:"Entwicklungszweig",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/version"],"onUpdate:modelValue":e[6]||(e[6]=n=>t.$store.state.mqtt["openWB/system/version"]=n),title:"Bezeichnung",readonly:""},null,8,["modelValue"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_commit"],"onUpdate:modelValue":e[7]||(e[7]=n=>t.$store.state.mqtt["openWB/system/current_commit"]=n),title:"installierte Version",readonly:"",class:k(m.updateAvailable?"text-danger":"text-success")},null,8,["modelValue","class"]),r(l,{modelValue:t.$store.state.mqtt["openWB/system/current_branch_commit"],"onUpdate:modelValue":e[8]||(e[8]=n=>t.$store.state.mqtt["openWB/system/current_branch_commit"]=n),title:"aktuellste Version",readonly:""},null,8,["modelValue"]),m.updateAvailable?(p(),B(b,{key:0,title:"Änderungen",subtype:"info",collapsible:!0,collapsed:!0},{default:u(()=>[a("ul",Z,[(p(!0),g(V,null,q(t.$store.state.mqtt["openWB/system/current_missing_commits"],(n,$)=>(p(),g("li",{key:$},W(n),1))),128))])]),_:1})):y("",!0),i.installAssistantActive?y("",!0):(p(),B(s,{key:1,subtype:"danger"},{default:u(()=>[...e[20]||(e[20]=[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})),t.$store.state.mqtt["openWB/system/current_branch"]!="Release"&&!i.installAssistantActive?(p(),B(s,{key:2,subtype:"danger"},{default:u(()=>[...e[21]||(e[21]=[d(' Du bist nicht auf dem für den normalen Gebrauch empfohlenen Entwicklungszweig "Release". Wir empfehlen, auf diesen Zweig zu wechseln, sobald dort eine neue Version verfügbar ist.',-1),a("br",null,null,-1),d(" Bevor ein Update angestoßen wird, sollte immer eine Sicherung erstellt werden! Es kann zwar wieder auf eine ältere Version gewechselt werden, jedoch ist nicht sichergestellt, dass es dabei keine Probleme gibt. Gerade wenn das Datenformat in der neuen Version angepasst wurde, wird eine ältere damit Fehler produzieren. ",-1)])]),_:1})):y("",!0),a("div",G,[a("div",H,[r(w,{class:k(m.updateAvailable?"btn-success clickable":"btn-outline-success"),disabled:!m.updateAvailable,onButtonClicked:e[9]||(e[9]=n=>m.systemUpdate())},{default:u(()=>[e[22]||(e[22]=d(" Update ",-1)),r(v,{icon:["fas","arrow-alt-circle-up"]})]),_:1},8,["class","disabled"])])]),t.$store.state.mqtt["openWB/general/extern"]!=!0&&!i.installAssistantActive&&Object.keys(m.externalChargePoints).length>0?(p(),g("div",J,[e[27]||(e[27]=a("hr",null,null,-1)),r(A,null,{default:u(()=>[...e[23]||(e[23]=[d("Automatisches Update von Secondary openWBs",-1)])]),_:1}),r(s,{subtype:"info"},{default:u(()=>[...e[24]||(e[24]=[d(' Die automatische Aktualisierung für Secondary openWBs ist nur verfügbar, wenn sich die Primary openWB auf dem Entwicklungszweig "Release" befindet. Das Update wird nur auf Secondary openWBs durchgeführt, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden. Ist die dort installierte Release-Version zu alt, muss ein einmaliges Update auf die aktuelle Version manuell auf der betroffenen openWB durchgeführt werden. ',-1)])]),_:1}),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",M,[r(o,{title:"Secondary openWBs automatisch mit der Primary updaten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.$store.state.mqtt["openWB/system/secondary_auto_update"],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateState("openWB/system/secondary_auto_update",n))},{help:u(()=>[...e[25]||(e[25]=[d(' Diese Option ist nur auf dem Entwicklungszweig "Release" verfügbar. Ist diese Option aktiviert, dann werden Secondary openWBs, welche sich ebenfalls auf dem Entwicklungszweig "Release" befinden gleichzeitig mit der Primary openWB aktualisiert. ',-1)])]),_:1},8,["model-value"])])):y("",!0),a("table",K,[e[26]||(e[26]=a("thead",null,[a("tr",null,[a("th",null,"Secondary"),a("th",null,"Software-Status"),a("th",null,"IP-Adresse")])],-1)),a("tbody",null,[(p(!0),g(V,null,q(m.externalChargePoints,n=>(p(),g("tr",{key:n.id},[a("td",null,W(n.name),1),a("td",null,W(t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]===void 0?"Version zu alt oder openWB ist nicht erreichbar. Bitte manuell updaten bzw. prüfen.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]!="Release"?"Secondary ist nicht auf dem Release-Zweig. Bitte manuell updaten.":t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/current_branch"]+" "+t.$store.state.mqtt["openWB/chargepoint/"+n.id+"/get/version"]),1),a("td",null,W(n.configuration.ip_address),1)]))),128))])]),t.$store.state.mqtt["openWB/system/current_branch"]=="Release"?(p(),g("div",Q,[r(S,{"form-name":"versionInfoForm","hide-defaults":!0,onSave:e[11]||(e[11]=n=>t.$emit("save",["openWB/system/secondary_auto_update"])),onReset:e[12]||(e[12]=n=>t.$emit("reset"))})])):y("",!0)])):y("",!0)])]),_:1},8,["collapsed"]),i.installAssistantActive?y("",!0):(p(),g("form",X,[r(b,{title:"Betrieb",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",Y,[a("div",ee,[r(w,{class:"btn-warning",onButtonClicked:e[13]||(e[13]=n=>m.systemReboot())},{default:u(()=>[e[34]||(e[34]=d(" Neustart ",-1)),r(v,{icon:["fas","undo"]})]),_:1})]),a("div",te,[r(w,{class:"btn-danger",onButtonClicked:e[14]||(e[14]=n=>m.systemShutdown())},{default:u(()=>[e[35]||(e[35]=d(" Ausschalten ",-1)),r(v,{icon:["fas","power-off"]})]),_:1})])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[28]||(e[28]=[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}),r(s,{subtype:"info"},{default:u(()=>[e[30]||(e[30]=d(" Ein Neustart löscht wichtige Protokolle, die bei der Fehlersuche helfen können. ",-1)),e[31]||(e[31]=a("br",null,null,-1)),e[32]||(e[32]=d("Tipp: Erstelle stattdessen zuerst einen ",-1)),r(C,{to:"/System/Support"},{default:u(()=>[...e[29]||(e[29]=[d(" Systembericht ",-1)])]),_:1}),e[33]||(e[33]=d(" – das hilft oft mehr und bewahrt alle relevanten Logs. ",-1))]),_:1})]),_:1})])),i.installAssistantActive?y("",!0):(p(),g("form",se,[r(b,{title:"Entwicklungszweig",subtype:"danger",collapsible:!0,collapsed:!0},{footer:u(()=>[a("div",ne,[a("div",re,[r(w,{class:k(m.releaseChangeValid?"btn-danger clickable":"btn-outline-danger"),disabled:!m.releaseChangeValid,onButtonClicked:e[17]||(e[17]=n=>m.switchBranch())},{default:u(()=>[r(v,{icon:["fas","skull-crossbones"]}),e[38]||(e[38]=d(" Branch und Tag wechseln ",-1)),r(v,{icon:["fas","skull-crossbones"]})]),_:1},8,["class","disabled"])])])]),default:u(()=>[r(s,{subtype:"danger"},{default:u(()=>[...e[36]||(e[36]=[d(" Nach einem Wechsel wird die Ladestation direkt neu gestartet! Es werden alle lokalen Änderungen mit dem Wechsel verworfen! ",-1)])]),_:1}),r(s,{subtype:"warning"},{default:u(()=>[...e[37]||(e[37]=[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.",-1),a("br",null,null,-1),d(' Für den normalen Betrieb wird der Zweig "Release" empfohlen. Der Softwarestand wurde ausgiebig getestet, sodass ein Fehlverhalten relativ unwahrscheinlich ist.',-1),a("br",null,null,-1),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.',-1),a("br",null,null,-1),d(' Die aktuelle Softwareentwicklung findet im Zweig "master" statt. Die enthaltenen Anpassungen sind teilweise noch nicht getestet und enthalten potentiell Fehler.',-1),a("br",null,null,-1),d(' Einträge, die mit "feature" beginnen, sind experimentelle Entwicklungszweige, die nicht für den allgemeinen Gebrauch gedacht sind. ',-1)])]),_:1}),r(_,{title:"Entwicklungszweig",groups:m.branchGroups,"model-value":t.$store.state.mqtt["openWB/system/current_branch"],"onUpdate:modelValue":e[15]||(e[15]=n=>t.updateState("openWB/system/current_branch",n))},null,8,["groups","model-value"]),r(_,{modelValue:c.selectedTag,"onUpdate:modelValue":e[16]||(e[16]=n=>c.selectedTag=n),title:"Tag",options:m.branchTagOptions},null,8,["modelValue","options"])]),_:1})]))])):y("",!0)])}const pe=D(T,[["render",ae],["__scopeId","data-v-e5e73130"],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/SystemConfiguration.vue"]]);export{pe as default}; diff --git a/web/settings/assets/TestingStore-pmOfDSbe.js b/web/settings/assets/TestingStore-DRd3kTjd.js similarity index 98% rename from web/settings/assets/TestingStore-pmOfDSbe.js rename to web/settings/assets/TestingStore-DRd3kTjd.js index fbdf450c1e..5173fce7dd 100644 --- a/web/settings/assets/TestingStore-pmOfDSbe.js +++ b/web/settings/assets/TestingStore-DRd3kTjd.js @@ -1 +1 @@ -import{C as B}from"./index-D_eD74fL.js";import{S as O}from"./OpenwbSortableList-CSUuyi79.js";import{_ as T,l as u,k as D,e as N,x as s,m as o,q as n,A as a,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const Z={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopics:[]}}},A={class:"testingStore"},L={name:"testingStoreForm"};function G(t,e,J,j,F,W){const v=u("OpenwbBaseHeading"),x=u("OpenwbBaseSettingElement"),E=u("openwb-base-button-input"),f=u("openwb-base-button-group-input"),i=u("openwb-base-card"),g=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),d=u("openwb-base-number-input"),V=u("openwb-base-textarea"),S=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),y=u("openwb-base-checkbox-input"),$=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),r=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),N("div",A,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(v,null,{default:n(()=>[...e[34]||(e[34]=[a(" Basiselement ",-1)])]),_:1}),o(x,null,{title:n(()=>[...e[35]||(e[35]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])]),help:n(()=>[...e[36]||(e[36]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1}),o(v,null,{default:n(()=>[...e[37]||(e[37]=[a(" Abgeleitete Elemente ",-1)])]),_:1}),o(E,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>[...e[38]||(e[38]=[a(" Einfacher Click-Button für Aktionen. ",-1)])]),_:1}),o(f,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[39]||(e[39]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>[...e[40]||(e[40]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>[...e[41]||(e[41]=[a(" Eingabefeld für E-Mailadressen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>[...e[42]||(e[42]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>[...e[43]||(e[43]=[a(" Eingabefeld für URLs ",-1)])]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>[...e[44]||(e[44]=[a(" Eingabefeld für Benutzernamen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>[...e[45]||(e[45]=[a(" Eingabefeld für Zeiten ",-1)])]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>[...e[46]||(e[46]=[a(" Eingabefeld für ein Datum ",-1)])]),_:1},8,["model-value"]),o(p,{title:"8. Text (mit Add-Button)",subtype:"text","add-button":"",class:"mb-2","model-value":t.$store.state.examples.text8,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("text8",l)),"onInput:add":e[10]||(e[10]=l=>t.alert("Add button clicked!"))},{help:n(()=>[...e[47]||(e[47]=[a(" Eingabefeld mit einem Add-Button ",-1)])]),_:1},8,["model-value"]),e[53]||(e[53]=s("hr",null,null,-1)),o(d,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number1",l))},{help:n(()=>[...e[48]||(e[48]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(d,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("number2",l))},{help:n(()=>[...e[49]||(e[49]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])]),_:1},8,["model-value"]),o(d,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>[...e[50]||(e[50]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])]),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("password1",l))},{help:n(()=>[...e[51]||(e[51]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])]),_:1},8,["model-value"]),e[54]||(e[54]=s("hr",null,null,-1)),o(V,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("textarea1",l))},{help:n(()=>[...e[52]||(e[52]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(S,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("range1",l))},{help:n(()=>[...e[55]||(e[55]=[a(" Range ohne spezielle Labels ",-1)])]),_:1},8,["model-value"]),o(S,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("range2",l))},{help:n(()=>[...e[56]||(e[56]=[a(" Range mit speziellen Labels ",-1)])]),_:1},8,["model-value"]),e[62]||(e[62]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[19]||(e[19]=l=>t.updateState("select1",l))},{help:n(()=>[...e[57]||(e[57]=[a(" Select mit einfachen Optionen ",-1)])]),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("select2",l)),"onInput:add":e[21]||(e[21]=l=>t.alert("add button pressed"))},{help:n(()=>[...e[58]||(e[58]=[a(" Select mit Gruppen und Add-Button. ",-1)])]),_:1},8,["model-value"]),e[63]||(e[63]=s("hr",null,null,-1)),o(f,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[59]||(e[59]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[60]||(e[60]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1}),e[64]||(e[64]=s("hr",null,null,-1)),o(y,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("checkbox1",l))},{help:n(()=>[...e[61]||(e[61]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l))},{help:n(()=>[...e[65]||(e[65]=[a(" JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("json1",l,"text"))},{help:n(()=>[...e[66]||(e[66]=[a(" Text im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(d,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[27]||(e[27]=l=>t.updateState("json1",l,"number"))},{help:n(()=>[...e[67]||(e[67]=[a(" Zahl im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o($,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[28]||(e[28]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"]),o($,{title:"Tag Array mit Vorgaben","valid-elements":["1234","5678"],"model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[29]||(e[29]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>[...e[68]||(e[68]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])]),default:n(()=>[o(w,null,{help:n(()=>[...e[69]||(e[69]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])]),default:n(()=>[e[70]||(e[70]=a(" Das ist eine Überschrift ",-1))]),_:1}),o(r,null,{default:n(()=>[e[72]||(e[72]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>[...e[71]||(e[71]=[a("Kopiere mich!",-1)])]),_:1})]),_:1}),o(r,{subtype:"info"},{default:n(()=>[...e[73]||(e[73]=[a(" Infomeldung ",-1)])]),_:1}),o(r,{subtype:"warning"},{default:n(()=>[...e[74]||(e[74]=[a(" Warnmeldung ",-1)])]),_:1}),o(r,{subtype:"danger"},{default:n(()=>[...e[75]||(e[75]=[a(" Fehlermeldung ",-1)])]),_:1})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[30]||(e[30]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[31]||(e[31]=l=>t.$emit("save",[])),onReset:e[32]||(e[32]=l=>t.$emit("reset")),onDefaults:e[33]||(e[33]=l=>t.$emit("defaults"))})])])}const q=T(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{q as default}; +import{C as B}from"./index-MVrRMMo2.js";import{S as O}from"./OpenwbSortableList-B4YWn8p9.js";import{_ as T,l as u,k as D,e as N,x as s,m as o,q as n,A as a,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const Z={name:"OpenwbTestingStoreView",components:{SortableList:O},mixins:[B],emits:["save","reset","defaults"],data(){return{mqttTopics:[]}}},A={class:"testingStore"},L={name:"testingStoreForm"};function G(t,e,J,j,F,W){const v=u("OpenwbBaseHeading"),x=u("OpenwbBaseSettingElement"),E=u("openwb-base-button-input"),f=u("openwb-base-button-group-input"),i=u("openwb-base-card"),g=u("openwb-base-color-picker"),p=u("openwb-base-text-input"),d=u("openwb-base-number-input"),V=u("openwb-base-textarea"),S=u("openwb-base-range-input"),m=u("openwb-base-select-input"),w=u("openwb-base-heading"),y=u("openwb-base-checkbox-input"),$=u("openwb-base-array-input"),k=u("openwb-base-copy-to-clipboard"),r=u("openwb-base-alert"),U=u("sortable-list"),z=u("openwb-base-submit-buttons");return D(),N("div",A,[s("form",L,[o(i,{title:"Elemente mit BaseSettingElement"},{default:n(()=>[o(v,null,{default:n(()=>[...e[34]||(e[34]=[a(" Basiselement ",-1)])]),_:1}),o(x,null,{title:n(()=>[...e[35]||(e[35]=[s("span",{style:{"font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"bold"}},"Title"),a(" Slot ")],-1)])]),help:n(()=>[...e[36]||(e[36]=[a(" Basis-Element für alle weiteren Elemente. Das ist ein ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1}),o(v,null,{default:n(()=>[...e[37]||(e[37]=[a(" Abgeleitete Elemente ",-1)])]),_:1}),o(E,{title:"Button Input","button-text":"Klick mich",subtype:"info"},{help:n(()=>[...e[38]||(e[38]=[a(" Einfacher Click-Button für Aktionen. ",-1)])]),_:1}),o(f,{title:"Button Group Input",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[39]||(e[39]=[a(" Button-Group Element zur Auswahl weniger Optionen. Bei vielen Optionen besser ein Dropdown verwenden. ",-1),s("a",{href:"test"},"Link",-1),a(". ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Einfache Eingabefelder"},{default:n(()=>[o(p,{title:"1. Text","model-value":t.$store.state.examples.text1,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateState("text1",l))},{help:n(()=>[...e[40]||(e[40]=[a(" Einfacher Text",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Die Farbe kann zurückgesetzt werden, weil eine Standardfarbe gesetzt ist. Das ist hier z.B. rot (#ff0000). ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color1,"default-color":"#ff0000","onUpdate:modelValue":e[1]||(e[1]=l=>t.updateState("color1",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(p,{title:"2. Text (E-Mail)",subtype:"email","model-value":t.$store.state.examples.text2,"onUpdate:modelValue":e[3]||(e[3]=l=>t.updateState("text2",l))},{help:n(()=>[...e[41]||(e[41]=[a(" Eingabefeld für E-Mailadressen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"3. Text (Host)",subtype:"host","model-value":t.$store.state.examples.text3,"onUpdate:modelValue":e[4]||(e[4]=l=>t.updateState("text3",l))},{help:n(()=>[...e[42]||(e[42]=[a(" Eingabefeld für Hosts (IP oder Namen) ",-1)])]),_:1},8,["model-value"]),o(p,{title:"4. Text (URL)",subtype:"url","model-value":t.$store.state.examples.text4,"onUpdate:modelValue":e[5]||(e[5]=l=>t.updateState("text4",l))},{help:n(()=>[...e[43]||(e[43]=[a(" Eingabefeld für URLs ",-1)])]),_:1},8,["model-value"]),o(p,{title:"5. Text (User)",subtype:"user","model-value":t.$store.state.examples.text5,"onUpdate:modelValue":e[6]||(e[6]=l=>t.updateState("text5",l))},{help:n(()=>[...e[44]||(e[44]=[a(" Eingabefeld für Benutzernamen ",-1)])]),_:1},8,["model-value"]),o(p,{title:"6. Text (Time)",subtype:"time","model-value":t.$store.state.examples.text6,"onUpdate:modelValue":e[7]||(e[7]=l=>t.updateState("text6",l))},{help:n(()=>[...e[45]||(e[45]=[a(" Eingabefeld für Zeiten ",-1)])]),_:1},8,["model-value"]),o(p,{title:"7. Text (Date)",subtype:"date","model-value":t.$store.state.examples.text7,"onUpdate:modelValue":e[8]||(e[8]=l=>t.updateState("text7",l))},{help:n(()=>[...e[46]||(e[46]=[a(" Eingabefeld für ein Datum ",-1)])]),_:1},8,["model-value"]),o(p,{title:"8. Text (mit Add-Button)",subtype:"text","add-button":"",class:"mb-2","model-value":t.$store.state.examples.text8,"onUpdate:modelValue":e[9]||(e[9]=l=>t.updateState("text8",l)),"onInput:add":e[10]||(e[10]=l=>t.alert("Add button clicked!"))},{help:n(()=>[...e[47]||(e[47]=[a(" Eingabefeld mit einem Add-Button ",-1)])]),_:1},8,["model-value"]),e[53]||(e[53]=s("hr",null,null,-1)),o(d,{title:"1. Zahl",min:5,max:9,step:2,unit:"kW","model-value":t.$store.state.examples.number1,"onUpdate:modelValue":e[12]||(e[12]=l=>t.updateState("number1",l))},{help:n(()=>[...e[48]||(e[48]=[a(" Zahl mit Einheit.",-1),s("br",null,null,-1),a(' Diese Komponente hat einen Slot "append" für zusätzliche Elemente, die rechts vom Eingabefeld angezeigt werden sollen. Das ist hier z.B. ein Farbauswahl-Element. Ohne Standardfarbe kann die Farbe nicht zurückgesetzt werden. ',-1)])]),append:n(()=>[o(g,{class:"p-1","model-value":t.$store.state.examples.color2,"onUpdate:modelValue":e[11]||(e[11]=l=>t.updateState("color2",l))},null,8,["model-value"])]),_:1},8,["model-value"]),o(d,{title:"2. Zahl",min:10,max:32,step:2,"model-value":t.$store.state.examples.number2,"onUpdate:modelValue":e[13]||(e[13]=l=>t.updateState("number2",l))},{help:n(()=>[...e[49]||(e[49]=[a(" Eingabefeld für Zahlen ohne Einheit ",-1)])]),_:1},8,["model-value"]),o(d,{title:"3. Zahl",min:-30,max:30,step:.01,precision:2,unit:"ct/kWh","model-value":t.$store.state.examples.number3*1e5,"onUpdate:modelValue":e[14]||(e[14]=l=>t.updateState("number3",parseFloat((l/1e5).toFixed(7))))},{help:n(()=>[...e[50]||(e[50]=[a(" Eingabefeld für Zahlen mit Einheit und Nachkommastellen",-1),s("br",null,null,-1),a(' Zusätzlich zum optionalen Parameter "step" sollte immer auch "precision" gesetzt sein, um unvermeidbare Darstellungsfehler zu vermeiden.',-1),s("br",null,null,-1),a(" Wenn der dargestellte Wert eine andere Genauigkeit/Einheit als der Wert im Backend hat (z.B. €/Wh <-> ct/kWh), dann ist bei der Umrechnung darauf zu achten, dass es nicht erneut zu Ungenauigkeiten bei Dezimalzahlen kommt. ",-1)])]),_:1},8,["model-value"]),o(p,{title:"1. Passwort",subtype:"password","model-value":t.$store.state.examples.password1,"onUpdate:modelValue":e[15]||(e[15]=l=>t.updateState("password1",l))},{help:n(()=>[...e[51]||(e[51]=[a(" Das Passwort kann per Klick auf das Auge angezeigt werden. ",-1)])]),_:1},8,["model-value"]),e[54]||(e[54]=s("hr",null,null,-1)),o(V,{title:"1. Textarea",maxlength:"50","model-value":t.$store.state.examples.textarea1,"onUpdate:modelValue":e[16]||(e[16]=l=>t.updateState("textarea1",l))},{help:n(()=>[...e[52]||(e[52]=[a(" Textarea mit maximaler Länge von 50 Zeichen. ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Spezielle Elemente"},{default:n(()=>[o(S,{title:"1. Range",min:6,max:32,step:1,unit:"A","model-value":t.$store.state.examples.range1,"onUpdate:modelValue":e[17]||(e[17]=l=>t.updateState("range1",l))},{help:n(()=>[...e[55]||(e[55]=[a(" Range ohne spezielle Labels ",-1)])]),_:1},8,["model-value"]),o(S,{title:"2. Range",min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":t.$store.state.examples.range2,"onUpdate:modelValue":e[18]||(e[18]=l=>t.updateState("range2",l))},{help:n(()=>[...e[56]||(e[56]=[a(" Range mit speziellen Labels ",-1)])]),_:1},8,["model-value"]),e[62]||(e[62]=s("hr",null,null,-1)),o(m,{title:"1. Select","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[19]||(e[19]=l=>t.updateState("select1",l))},{help:n(()=>[...e[57]||(e[57]=[a(" Select mit einfachen Optionen ",-1)])]),_:1},8,["model-value"]),o(m,{title:"2. Select",groups:[{label:"Gruppe 1 (Number)",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}]},{label:"Gruppe 2 (String)",options:[{value:"three",text:"Drei"},{value:"four",text:"Vier"}]}],"not-selected":"Bitte auswählen","add-button":!0,"model-value":t.$store.state.examples.select2,"onUpdate:modelValue":e[20]||(e[20]=l=>t.updateState("select2",l)),"onInput:add":e[21]||(e[21]=l=>t.alert("add button pressed"))},{help:n(()=>[...e[58]||(e[58]=[a(" Select mit Gruppen und Add-Button. ",-1)])]),_:1},8,["model-value"]),e[63]||(e[63]=s("hr",null,null,-1)),o(f,{title:"1. Button-Group",buttons:[{buttonValue:1,text:"Eins"},{buttonValue:2,text:"Zwei"}],"model-value":t.$store.state.examples.buttonGroup1,"onUpdate:modelValue":e[22]||(e[22]=l=>t.updateState("buttonGroup1",l))},{help:n(()=>[...e[59]||(e[59]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"]),o(w,null,{default:n(()=>[e[60]||(e[60]=a(" Select Element ohne Label: ",-1)),o(m,{class:"mb-1","not-selected":"Bitte auswählen",options:[{value:1,text:"Eins"},{value:2,text:"Zwei"}],"model-value":t.$store.state.examples.select1,"onUpdate:modelValue":e[23]||(e[23]=l=>t.updateState("select1",l))},null,8,["model-value"])]),_:1}),e[64]||(e[64]=s("hr",null,null,-1)),o(y,{title:"1. Checkbox","model-value":t.$store.state.examples.checkbox1,"onUpdate:modelValue":e[24]||(e[24]=l=>t.updateState("checkbox1",l))},{help:n(()=>[...e[61]||(e[61]=[a(" Hilfetext ",-1)])]),_:1},8,["model-value"])]),_:1}),o(i,{title:"JSON Gruppe"},{default:n(()=>[o(p,{title:"JSON 1",subtype:"json","model-value":t.$store.state.examples.json1,"onUpdate:modelValue":e[25]||(e[25]=l=>t.updateState("json1",l))},{help:n(()=>[...e[65]||(e[65]=[a(" JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(p,{title:"JSON 1 Text","model-value":t.$store.state.examples.json1.text,"onUpdate:modelValue":e[26]||(e[26]=l=>t.updateState("json1",l,"text"))},{help:n(()=>[...e[66]||(e[66]=[a(" Text im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o(d,{title:"JSON 1 Zahl","model-value":t.$store.state.examples.json1.number,"onUpdate:modelValue":e[27]||(e[27]=l=>t.updateState("json1",l,"number"))},{help:n(()=>[...e[67]||(e[67]=[a(" Zahl im JSON Objekt ",-1)])]),_:1},8,["model-value"]),o($,{title:"Tag Array","model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[28]||(e[28]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"]),o($,{title:"Tag Array mit Vorgaben","valid-elements":["1234","5678"],"model-value":t.$store.state.examples.tags,"onUpdate:modelValue":e[29]||(e[29]=l=>t.updateState("tags",l))},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.tags,void 0,2)),1)]),_:1},8,["model-value"])]),_:1}),o(i,{title:"Meldungen"},{header:n(()=>[...e[68]||(e[68]=[s("span",{style:{"text-decoration":"underline","font-style":"italic"}},[a(" Styled "),s("span",{style:{"font-weight":"initial"}},"Header"),a(" Slot ")],-1)])]),default:n(()=>[o(w,null,{help:n(()=>[...e[69]||(e[69]=[a(" Es sind auch Hilfetexte im #help Slot möglich. ",-1),s("a",{href:"test"},"Link",-1)])]),default:n(()=>[e[70]||(e[70]=a(" Das ist eine Überschrift ",-1))]),_:1}),o(r,null,{default:n(()=>[e[72]||(e[72]=a(" Meldung ohne speziellen Subtype. ",-1)),o(k,null,{default:n(()=>[...e[71]||(e[71]=[a("Kopiere mich!",-1)])]),_:1})]),_:1}),o(r,{subtype:"info"},{default:n(()=>[...e[73]||(e[73]=[a(" Infomeldung ",-1)])]),_:1}),o(r,{subtype:"warning"},{default:n(()=>[...e[74]||(e[74]=[a(" Warnmeldung ",-1)])]),_:1}),o(r,{subtype:"danger"},{default:n(()=>[...e[75]||(e[75]=[a(" Fehlermeldung ",-1)])]),_:1})]),_:1}),o(i,{title:"Listen"},{default:n(()=>[o(U,{modelValue:t.$store.state.examples.hierarchy1,"onUpdate:modelValue":e[30]||(e[30]=l=>t.$store.state.examples.hierarchy1=l),title:"Liste 1",labels:t.$store.state.examples.hierarchy1Labels},{help:n(()=>[s("pre",null,b(JSON.stringify(t.$store.state.examples.hierarchy1,void 0,2)),1)]),_:1},8,["modelValue","labels"])]),_:1}),o(z,{"form-name":"testingStoreForm",onSave:e[31]||(e[31]=l=>t.$emit("save",[])),onReset:e[32]||(e[32]=l=>t.$emit("reset")),onDefaults:e[33]||(e[33]=l=>t.$emit("defaults"))})])])}const q=T(Z,[["render",G],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/TestingStore.vue"]]);export{q as default}; diff --git a/web/settings/assets/VehicleConfiguration-B3d9qly5.js b/web/settings/assets/VehicleConfiguration-DZuJgE9z.js similarity index 96% rename from web/settings/assets/VehicleConfiguration-B3d9qly5.js rename to web/settings/assets/VehicleConfiguration-DZuJgE9z.js index baa72deae2..e0d57506df 100644 --- a/web/settings/assets/VehicleConfiguration-B3d9qly5.js +++ b/web/settings/assets/VehicleConfiguration-DZuJgE9z.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vehicle-uRvyo-2W.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-D_eD74fL.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/vehicle-Br3C3ndJ.js","assets/vehicle-BBQyN4nf.js","assets/vehicle-BtE1rfvQ.js","assets/vehicle-DDs9o72d.js","assets/vehicle-DTOXQ3ag.js","assets/vehicle-D363Q7cB.js","assets/vehicle-DT7Lg5C4.js","assets/vehicle-DjrtYuS-.js","assets/vehicle-CUR0E3wk.js","assets/SystemVersion-DQAfG1DR.js","assets/vehicle-Bzw0t3uD.js","assets/vehicle-TpGqMVx6.js","assets/vehicle-7kCruC46.js","assets/vehicle-CO6j-SQn.js","assets/vehicle-XMzQc45d.js","assets/vehicle-lU7Zuadi.js","assets/vehicle-CH_9CnU6.js","assets/vehicle-ClSMB-k7.js","assets/vehicle-BV1RfRrF.js","assets/vehicle-uZMeCx8f.js","assets/vehicle-ADVayxu-.js"])))=>i.map(i=>d[i]); -import{F as Z,l as O,ac as ae,ad as ie,a4 as R,Z as I,G as j,H,ax as J,aw as G,az as re,aA as ue,aq as $,av as Y,aj as Q,P as oe,d as de,a6 as se,ay as me,Y as ge}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as V,C as X}from"./index-D_eD74fL.js";import{_ as pe}from"./dynamic-import-helper-BheWnx7M.js";import{_ as q,l as c,k as d,e as p,y as b,q as a,A as i,J as w,m as l,x as g,a1 as he,a2 as ce,K as W,u as m,L as D,z as B,j as ee,D as x}from"./vendor-Bo8v-nQD.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function we(n,e,f,P,S,t){const y=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(y,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),p("div",Ve,[l(y,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),l(y,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const ke=q(ve,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);O.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:Z},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>V(()=>import("./vehicle-uRvyo-2W.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./cupra/vehicle.vue":()=>V(()=>import("./vehicle-Br3C3ndJ.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./evcc/vehicle.vue":()=>V(()=>import("./vehicle-BBQyN4nf.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./evnotify/vehicle.vue":()=>V(()=>import("./vehicle-BtE1rfvQ.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./homeassistant/vehicle.vue":()=>V(()=>import("./vehicle-DDs9o72d.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./http/vehicle.vue":()=>V(()=>import("./vehicle-DTOXQ3ag.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./json/vehicle.vue":()=>V(()=>import("./vehicle-D363Q7cB.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./kia/vehicle.vue":()=>V(()=>import("./vehicle-DT7Lg5C4.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./leaf/vehicle.vue":()=>V(()=>import("./vehicle-DjrtYuS-.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./manual/vehicle.vue":()=>V(()=>import("./vehicle-CUR0E3wk.js"),__vite__mapDeps([19,20,1,2,3,4,5,6,7,8,9,10])),"./mercedeseq/vehicle.vue":()=>V(()=>import("./vehicle-Bzw0t3uD.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./mqtt/vehicle.vue":()=>V(()=>import("./vehicle-TpGqMVx6.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./ovms/vehicle.vue":()=>V(()=>import("./vehicle-7kCruC46.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./psa/vehicle.vue":()=>V(()=>import("./vehicle-CO6j-SQn.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./psacc/vehicle.vue":()=>V(()=>import("./vehicle-XMzQc45d.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./renault/vehicle.vue":()=>V(()=>import("./vehicle-lU7Zuadi.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./skoda/vehicle.vue":()=>V(()=>import("./vehicle-CH_9CnU6.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./smarthello/vehicle.vue":()=>V(()=>import("./vehicle-ClSMB-k7.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./tesla/vehicle.vue":()=>V(()=>import("./vehicle-BV1RfRrF.js"),__vite__mapDeps([29,1,2,8,4,3,5,6,7,9,10])),"./tronity/vehicle.vue":()=>V(()=>import("./vehicle-uZMeCx8f.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./vwid/vehicle.vue":()=>V(()=>import("./vehicle-ADVayxu-.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10]))}),`./${this.vehicle.type}/vehicle.vue`,3),errorComponent:ke})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,S,t){const y=c("font-awesome-icon"),h=c("openwb-base-alert"),k=c("openwb-base-heading");return d(),p(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(k,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=z=>t.updateConfiguration(z))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);O.add(R,I,j,H,J,G,re,ue,$,Y,Q);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},Ee={key:0},Le={key:1},Pe={key:2},Ue={key:3},Ae={key:4},We={key:5},Fe={key:1},Be={key:1},Me={key:7};function Te(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Le,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Ae,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),p("span",Fe,[l(k,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Termin",subtype:"time"},{help:a(()=>[...e[18]||(e[18]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",Be,[(d(!0),p(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[30]||(e[30]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>[...e[19]||(e[19]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])]),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:2,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[20]||(e[20]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[21]||(e[21]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[22]||(e[22]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:3,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[23]||(e[23]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:4,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[24]||(e[24]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(E,{key:5,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>[...e[25]||(e[25]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type)?(d(),b(M,{key:6,subtype:"danger"},{default:a(()=>[...e[26]||(e[26]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])]),_:1})):m("",!0),t.plan.limit.selected=="soc"?(d(),p("div",Me,[e[29]||(e[29]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>[...e[27]||(e[27]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])]),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>[...e[28]||(e[28]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])]),_:1})):m("",!0)])):m("",!0)]),_:1},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);O.add(R,I,j,H,J,G,Y,Q);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/dc_charging",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},xe={key:0},Ze={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},je={key:2};function He(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",xe,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Ze,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),p("span",Ie,[l(k,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(z,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",je,[(d(!0),p(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[20]||(e[20]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:3,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>[...e[16]||(e[16]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[17]||(e[17]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.limit.soc=v),title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[18]||(e[18]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])]),_:1},8,["modelValue"]),l(E,{title:"Energie-Limit",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>[...e[19]||(e[19]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])]),_:1},8,["title"])],64)}const Je=q(qe,[["render",He],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);O.add(de,Q,H,G,J,j,R,I,se,me,ge,$,Y);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:Z,FontAwesomeLayers:oe,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[X],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/soc_modules",writeable:!1},{topic:"openWB/vehicle/+/charge_template",writeable:!0},{topic:"openWB/vehicle/+/ev_template",writeable:!0},{topic:"openWB/vehicle/+/info",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!0},{topic:"openWB/vehicle/+/soc_module/config",writeable:!0},{topic:"openWB/vehicle/+/soc_module/general_config",writeable:!0},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0},{topic:"openWB/vehicle/template/ev_template/+",writeable:!0}],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/info")}},evTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/ev_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/charge_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n,changed_in_theme:!1}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n,changed_in_theme:!1}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const S=`card-${n}-${P}`,t=this.$refs[S],y=Array.isArray(t)?t[0]:t;y&&(y.isCollapsed=P!==e)})})}}},Ye={class:"vehicleConfig"},Qe={name:"vehicleConfigForm"},Xe={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},rn={key:0},un={key:1},on={key:0},dn={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),E=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),A=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),p(W,null,[l(y,{show:S.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,S.modalVehicleIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug "'+w(t.getVehicleName(S.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,S.modalEvTemplateIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug-Profil "'+w(t.getEvTemplateName(S.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,S.modalChargeTemplateIndex))},{default:a(()=>[i(' Willst Du das Lade-Profil "'+w(t.getChargeTemplateName(S.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Ye,[g("form",Qe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",Xe,[l(z,{subtype:"info"},{default:a(()=>[...e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",Ke,[(d(!0),p(W,null,D(t.vehicleIndexes,r=>(d(),b(U,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/name",o)},x({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),p("div",$e,[l(E,null,{default:a(()=>[...e[13]||(e[13]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1}),(n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]?.length??0)>0?(d(),p("div",en,[l(z,{subtype:"info"},{default:a(()=>[e[15]||(e[15]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[14]||(e[14]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[16]||(e[16]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),p("div",nn," Aktuell ist die Identifikation in den Einstellungen deaktiviert. ")):(d(),p("div",tn," Die Identifikation ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. "))]),_:1}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},{help:a(()=>[...e[17]||(e[17]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Fahrzeug zugeordnet sind. Mit diesen ID-Tags kann dieses Fahrzeug an Ladepunkten automatisch zugeordnet werden. ",-1)])]),_:1},8,["model-value"])])):(d(),p("div",ln,[l(z,{subtype:"info"},{default:a(()=>[e[19]||(e[19]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[18]||(e[18]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[20]||(e[20]=i(".",-1)),e[21]||(e[21]=g("br",null,null,-1)),e[22]||(e[22]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})])),e[23]||(e[23]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(r,o)},{help:a(()=>[...e[24]||(e[24]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Während des Ladevorgangs wird der Zeitstempel der SoC-Abfrage geprüft. Ist dieser älter als der Zeitstempel der vorherigen Abfrage, wird das Ergebnis verworfen, stattdessen eine Berechnung durchgeführt und auch so im Fahrzeugstatus vermerkt.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type?(d(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[25]||(e[25]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{help:a(()=>[...e[26]||(e[26]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[27]||(e[27]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[28]||(e[28]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[30]||(e[30]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[91]||(e[91]=g("hr",{class:"border-secondary"},null,-1)),l(E,null,{default:a(()=>[...e[32]||(e[32]=[i("Profile",-1)])]),_:1}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[33]||(e[33]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",rn,[l(z,{subtype:"info"},{default:a(()=>[...e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",un,[(d(!0),p(W,null,D(t.evTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!0},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[35]||(e[35]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[36]||(e[36]=[i(" Angaben zur Batterie ",-1)])]),_:1}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"battery_capacity")},{help:a(()=>[...e[37]||(e[37]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",on,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(o,u,"efficiency")},{help:a(()=>[...e[38]||(e[38]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(o,u,"bidi")},{help:a(()=>[...e[39]||(e[39]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),p("div",dn,[l(E,null,{default:a(()=>[...e[40]||(e[40]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(E,null,{default:a(()=>[e[41]||(e[41]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),p("span",sn," (AC) ")):m("",!0)]),_:1}),l(A,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(o,u,"nominal_difference")},{help:a(()=>[...e[42]||(e[42]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),p("span",mn," (AC) ")):m("",!0)]),_:1}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_phases")},{help:a(()=>[...e[44]||(e[44]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption")},{help:a(()=>[...e[45]||(e[45]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_phase_switch")},{help:a(()=>[...e[46]||(e[46]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_charge_stop")},{help:a(()=>[...e[47]||(e[47]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"keep_charge_active_duration")},{help:a(()=>[...e[48]||(e[48]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:L=>t.addEvTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:L=>t.removeEvTemplateModal(L,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[49]||(e[49]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",pn,[l(z,{subtype:"info"},{default:a(()=>[...e[50]||(e[50]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",hn,[(d(!0),p(W,null,D(t.chargeTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:L=>t.addChargeTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(L=>t.removeChargeTemplateModal(L,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[51]||(e[51]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[52]||(e[52]=[i(" Allgemeine Optionen ",-1)])]),_:1}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(o,u)},{help:a(()=>[...e[53]||(e[53]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:1},8,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(o,u,"prio")},{help:a(()=>[...e[54]||(e[54]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(o,u,"load_default")},{help:a(()=>[...e[55]||(e[55]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[57]||(e[57]=g("hr",null,null,-1)),l(E,null,{default:a(()=>[...e[56]||(e[56]=[i("Einstellungen der Lademodi",-1)])]),_:1})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[58]||(e[58]=[i(" Sofort ",-1)])]),default:a(()=>[l(A,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[59]||(e[59]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (s.g. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[60]||(e[60]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[61]||(e[61]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[62]||(e[62]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[63]||(e[63]=[i(" PV ",-1)])]),default:a(()=>[l(A,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[64]||(e[64]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[65]||(e[65]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[67]||(e[67]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[68]||(e[68]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[69]||(e[69]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[71]||(e[71]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[72]||(e[72]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[73]||(e[73]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[74]||(e[74]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "Überschuss-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[75]||(e[75]=[i(" Ziel ",-1)])]),default:a(()=>[l(E,null,{actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),help:a(()=>[...e[76]||(e[76]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt, bis max 20 Minuten nach dem angegebenen Zieltermin. ",-1)])]),default:a(()=>[e[77]||(e[77]=i(" Zielladepläne ",-1))]),_:2},1024),r.chargemode.scheduled_charging.plans.length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[78]||(e[78]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,L)=>(d(),b(ne,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${L}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[79]||(e[79]=[i(" Eco ",-1)])]),default:a(()=>[l(E,null,{help:a(()=>[...e[80]||(e[80]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[81]||(e[81]=i("Arbeitsweise von Eco ",-1))]),_:1}),l(A,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen bei Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[82]||(e[82]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p).',-1),g("br",null,null,-1),i(" Wird die eingestellte Preisgrenze unterschritten, wird immer mit der maximalen Anzahl Phasen geladen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[83]||(e[83]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[84]||(e[84]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[85]||(e[85]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(d(),b(z,{key:1,subtype:"warning"},{default:a(()=>[...e[86]||(e[86]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(o,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),p("div",bn,[e[90]||(e[90]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(o,u,"time_charging.active")},{help:a(()=>[...e[87]||(e[87]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (enteisen, vorwärmen, abkühlen). 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 Einstellungen zur Vorklimatisierung in der Fahrzeug-App). ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[88]||(e[88]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[89]||(e[89]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.time_charging.plans??[],(u,L)=>(d(),b(te,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${L}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfiguration.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/vehicle-CWdezBG4.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-fortawesome-CBc-2W7w.js","assets/index-MVrRMMo2.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/index-TrnuT1ez.css","assets/dynamic-import-helper-BheWnx7M.js","assets/vehicle-BNaGIvQj.js","assets/vehicle-Dciyc5Tc.js","assets/vehicle-BcbXWLFP.js","assets/vehicle-Dy-1WneA.js","assets/vehicle-CFiyg2u6.js","assets/vehicle-BzXDEPgk.js","assets/vehicle-Bwbyv3mH.js","assets/vehicle-QEOZLyuW.js","assets/vehicle-Bi2svxY9.js","assets/SystemVersion-DQAfG1DR.js","assets/vehicle-o-3CCJWH.js","assets/vehicle-BGNpvKRV.js","assets/vehicle-Cz4gTSeZ.js","assets/vehicle-QRfiUykG.js","assets/vehicle-Dafx24UN.js","assets/vehicle-CMvQ9Clb.js","assets/vehicle-DoLMhCj3.js","assets/vehicle-B202xWbb.js","assets/vehicle-50Jll49o.js","assets/vehicle-CHu8UU7R.js","assets/vehicle-BAqmA1wd.js"])))=>i.map(i=>d[i]); +import{F as Z,l as O,ac as ae,ad as ie,a4 as R,Z as I,G as j,H,ax as J,aw as G,az as re,aA as ue,aq as $,av as Y,aj as Q,P as oe,d as de,a6 as se,ay as me,Y as ge}from"./vendor-fortawesome-CBc-2W7w.js";import{_ as V,C as X}from"./index-MVrRMMo2.js";import{_ as pe}from"./dynamic-import-helper-BheWnx7M.js";import{_ as q,l as c,k as d,e as p,y as b,q as a,A as i,J as w,m as l,x as g,a1 as he,a2 as ce,K as W,u as m,L as D,z as B,j as ee,D as x}from"./vendor-Bo8v-nQD.js";const be={props:{vehicleId:{required:!0,type:Number},vehicle:{required:!0,type:Object}},emits:["update:configuration"],methods:{updateConfiguration(n,e=void 0){this.$emit("update:configuration",{value:n,object:e})}}},fe=q(be,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/VehicleConfigMixin.vue"]]),ve={name:"VehicleConfigFallback",mixins:[fe]},_e={class:"vehicle-fallback"},Ve={key:1};function we(n,e,f,P,S,t){const y=c("openwb-base-alert"),h=c("openwb-base-textarea");return d(),p("div",_e,[Object.keys(n.vehicle.configuration).length==0?(d(),b(y,{key:0,subtype:"info"},{default:a(()=>[i(' Der Fahrzeug-Typ "'+w(n.vehicle.type)+'" bietet keine Einstellungen. ',1)]),_:1})):(d(),p("div",Ve,[l(y,{subtype:"warning"},{default:a(()=>[i(' Es wurde keine Konfigurationsseite für den Fahrzeug-Typ "'+w(n.vehicle.type)+'" gefunden. Die Einstellungen können als JSON direkt bearbeitet werden. ',1)]),_:1}),l(h,{title:"Konfiguration",subtype:"json","model-value":n.vehicle.configuration,"onUpdate:modelValue":e[0]||(e[0]=k=>n.updateConfiguration(k,"configuration"))},{help:a(()=>[...e[1]||(e[1]=[i(" Bitte prüfe, ob die Eingaben richtig interpretiert werden. ",-1)])]),_:1},8,["model-value"]),l(y,{subtype:"info"},{default:a(()=>[g("pre",null,w(JSON.stringify(n.vehicle.configuration,void 0,2)),1)]),_:1})]))])}const ke=q(ve,[["render",we],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleConfigFallback.vue"]]);O.add(ae,ie);const ze={name:"OpenwbVehicleProxy",components:{FontAwesomeIcon:Z},props:{vehicleId:{type:Number,required:!0},vehicle:{type:Object,required:!0}},emits:["update:configuration"],methods:{getVehicleComponent(){return console.debug(`loading vehicle: ${this.vehicle.type}`),he({loader:()=>pe(Object.assign({"./aiways/vehicle.vue":()=>V(()=>import("./vehicle-CWdezBG4.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10])),"./cupra/vehicle.vue":()=>V(()=>import("./vehicle-BNaGIvQj.js"),__vite__mapDeps([11,1,2,3,4,5,6,7,8,9,10])),"./evcc/vehicle.vue":()=>V(()=>import("./vehicle-Dciyc5Tc.js"),__vite__mapDeps([12,1,2,3,4,5,6,7,8,9,10])),"./evnotify/vehicle.vue":()=>V(()=>import("./vehicle-BcbXWLFP.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,10])),"./homeassistant/vehicle.vue":()=>V(()=>import("./vehicle-Dy-1WneA.js"),__vite__mapDeps([14,1,2,3,4,5,6,7,8,9,10])),"./http/vehicle.vue":()=>V(()=>import("./vehicle-CFiyg2u6.js"),__vite__mapDeps([15,1,2,3,4,5,6,7,8,9,10])),"./json/vehicle.vue":()=>V(()=>import("./vehicle-BzXDEPgk.js"),__vite__mapDeps([16,1,2,3,4,5,6,7,8,9,10])),"./kia/vehicle.vue":()=>V(()=>import("./vehicle-Bwbyv3mH.js"),__vite__mapDeps([17,1,2,3,4,5,6,7,8,9,10])),"./leaf/vehicle.vue":()=>V(()=>import("./vehicle-QEOZLyuW.js"),__vite__mapDeps([18,1,2,3,4,5,6,7,8,9,10])),"./manual/vehicle.vue":()=>V(()=>import("./vehicle-Bi2svxY9.js"),__vite__mapDeps([19,20,1,2,3,4,5,6,7,8,9,10])),"./mercedeseq/vehicle.vue":()=>V(()=>import("./vehicle-o-3CCJWH.js"),__vite__mapDeps([21,1,2,3,4,5,6,7,8,9,10])),"./mqtt/vehicle.vue":()=>V(()=>import("./vehicle-BGNpvKRV.js"),__vite__mapDeps([22,1,2,3,4,5,6,7,8,9,10])),"./ovms/vehicle.vue":()=>V(()=>import("./vehicle-Cz4gTSeZ.js"),__vite__mapDeps([23,1,2,3,4,5,6,7,8,9,10])),"./psa/vehicle.vue":()=>V(()=>import("./vehicle-QRfiUykG.js"),__vite__mapDeps([24,1,2,3,4,5,6,7,8,9,10])),"./psacc/vehicle.vue":()=>V(()=>import("./vehicle-Dafx24UN.js"),__vite__mapDeps([25,1,2,3,4,5,6,7,8,9,10])),"./renault/vehicle.vue":()=>V(()=>import("./vehicle-CMvQ9Clb.js"),__vite__mapDeps([26,1,2,3,4,5,6,7,8,9,10])),"./skoda/vehicle.vue":()=>V(()=>import("./vehicle-DoLMhCj3.js"),__vite__mapDeps([27,1,2,3,4,5,6,7,8,9,10])),"./smarthello/vehicle.vue":()=>V(()=>import("./vehicle-B202xWbb.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,8,9,10])),"./tesla/vehicle.vue":()=>V(()=>import("./vehicle-50Jll49o.js"),__vite__mapDeps([29,1,2,8,4,3,5,6,7,9,10])),"./tronity/vehicle.vue":()=>V(()=>import("./vehicle-CHu8UU7R.js"),__vite__mapDeps([30,1,2,3,4,5,6,7,8,9,10])),"./vwid/vehicle.vue":()=>V(()=>import("./vehicle-BAqmA1wd.js"),__vite__mapDeps([31,1,2,3,4,5,6,7,8,9,10]))}),`./${this.vehicle.type}/vehicle.vue`,3),errorComponent:ke})},updateConfiguration(n){this.$emit("update:configuration",n)}}};function Ce(n,e,f,P,S,t){const y=c("font-awesome-icon"),h=c("openwb-base-alert"),k=c("openwb-base-heading");return d(),p(W,null,[f.vehicle.official?(d(),b(h,{key:0,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","certificate"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird von openWB gepflegt. ',1)]),_:1})):(d(),b(h,{key:1,subtype:"info"},{default:a(()=>[l(y,{icon:["fas","people-group"]}),i(' Das ausgewählte Fahrzeug-Modul "'+w(f.vehicle.name)+'" wird in unserer Community gepflegt. Rückfragen oder Probleme bitte im Forum diskutieren. ',1)]),_:1})),l(k,null,{default:a(()=>[i(' Einstellungen für SoC-Modul "'+w(f.vehicle.name)+'" ',1)]),_:1}),(d(),b(ce(t.getVehicleComponent()),{"vehicle-id":f.vehicleId,vehicle:f.vehicle,"onUpdate:configuration":e[0]||(e[0]=z=>t.updateConfiguration(z))},null,40,["vehicle-id","vehicle"]))],64)}const Se=q(ze,[["render",Ce],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/OpenwbVehicleProxy.vue"]]);O.add(R,I,j,H,J,G,re,ue,$,Y,Q);const ye={name:"VehicleScheduledChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateSchedulePlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},Ee={key:0},Le={key:1},Pe={key:2},Ue={key:3},Ae={key:4},We={key:5},Fe={key:1},Be={key:1},Me={key:7};function Te(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-alert"),v=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zielladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zielladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(v,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(s=>[s.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(_=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",Ee,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc_scheduled)+"% ",1),l(h,{icon:["fas",t.plan.bidi_charging_enabled?"right-left":"right-long"]},null,8,["icon"]),i(" "+w(t.plan.limit.soc_limit)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Le,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time)+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Pe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once)),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ue,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Ae,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0),t.plan.et_active?(d(),p("span",We,[l(h,{icon:["fas","coins"]})])):m("",!0)],2)):m("",!0),s.collapsed==!1?(d(),p("span",Fe,[l(k,{class:"bg-success clickable ml-1",title:"Zielladen-Plan duplizieren",onClick:e[1]||(e[1]=B(_=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zielladen-Plan löschen",onClick:e[2]||(e[2]=B(_=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=s=>t.plan.name=s),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=s=>t.plan.active=s),title:"Zeitpunkt aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time,"onUpdate:modelValue":e[5]||(e[5]=s=>t.plan.time=s),title:"Ziel-Termin",subtype:"time"},{help:a(()=>[...e[18]||(e[18]=[i(" Hier ist die gewünschte Uhrzeit einzustellen, zu welcher das Fahrzeug den gewünschten SoC bzw. die zu ladende Energiemenge BEREITS ERREICHT haben soll. ",-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[6]||(e[6]=s=>t.plan.frequency.selected=s),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once,"onUpdate:modelValue":e[7]||(e[7]=s=>t.plan.frequency.once=s),title:"Datum",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",Be,[(d(!0),p(W,null,D(n.weekdays,(s,_)=>(d(),b(C,{key:_,modelValue:t.plan.frequency.weekly[_],"onUpdate:modelValue":N=>t.plan.frequency.weekly[_]=N,title:s,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[30]||(e[30]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[8]||(e[8]=s=>t.plan.current=s),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},{help:a(()=>[...e[19]||(e[19]=[i(" Mit dieser Stromstärke wird der Zeitpunkt berechnet, wann die Ladung mit Netzbezug gestartet werden muss. Wird der Ziel-SoC nicht zum angegebenen Termin erreicht, weil z.B. das Auto erst später angesteckt wurde, wird auch mit einer höheren Stromstärke geladen. Um etwas Puffer zu haben, empfiehlt es sich, etwas weniger als die Maximalstromstärke des Fahrzeugs zu wählen. ",-1)])]),_:1},8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:2,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[9]||(e[9]=s=>t.plan.dc_current=n.dc_power2ac_current(s))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[10]||(e[10]=s=>t.plan.phases_to_use=s),title:"Anzahl Phasen Zielladen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[20]||(e[20]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),l(C,{modelValue:t.plan.phases_to_use_pv,"onUpdate:modelValue":e[11]||(e[11]=s=>t.plan.phases_to_use_pv=s),title:"Anzahl Phasen bei PV-Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}]},{help:a(()=>[...e[21]||(e[21]=[i(' Hier kann eingestellt werden, ob Ladevorgänge im Modus "Zielladen" bei Laden mit PV-Überschuss mit nur einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um das Ziel zu erreichen. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[12]||(e[12]=s=>t.plan.limit.selected=s),title:"Ziel",buttons:[{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[22]||(e[22]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),t.plan.limit.selected=="soc"?(d(),b(F,{key:3,modelValue:t.plan.limit.soc_scheduled,"onUpdate:modelValue":e[13]||(e[13]=s=>t.plan.limit.soc_scheduled=s),title:"Fahrzeug-SoC zum Zielzeitpunkt",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[23]||(e[23]=[i(" SoC, der zum angegebenen Zeitpunkt erreicht werden soll (Ziel-SoC). ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="soc"?(d(),b(F,{key:4,modelValue:t.plan.limit.soc_limit,"onUpdate:modelValue":e[14]||(e[14]=s=>t.plan.limit.soc_limit=s),title:"Fahrzeug-SoC mit Überschuss",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[24]||(e[24]=[i(" Nach Erreichen des Ziel-SoCs wird mit Überschuss weiter geladen, bis das SoC-Limit erreicht wird. Sobald das SoC-Limit erreicht wurde, findet keine Ladung mehr mit Überschuss statt! ",-1)])]),_:1},8,["modelValue"])):m("",!0),t.plan.limit.selected=="amount"?(d(),b(E,{key:5,title:"Ziel-Energie",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=s=>t.plan.limit.amount=s*1e3)},{help:a(()=>[...e[25]||(e[25]=[i(" Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zielladen schon ausgewählt ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])):m("",!0),e[32]||(e[32]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.et_active,"onUpdate:modelValue":e[16]||(e[16]=s=>t.plan.et_active=s),title:"Strompreisbasiert Laden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),t.plan.et_active==!0&&(!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type)?(d(),b(M,{key:6,subtype:"danger"},{default:a(()=>[...e[26]||(e[26]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. ",-1)])]),_:1})):m("",!0),t.plan.limit.selected=="soc"?(d(),p("div",Me,[e[29]||(e[29]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.bidi_charging_enabled,"onUpdate:modelValue":e[17]||(e[17]=s=>t.plan.bidi_charging_enabled=s),title:"Bidirektionales Überschussladen bei kompatiblem Ladepunkt&Fahrzeug",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},{help:a(()=>[...e[27]||(e[27]=[i(" Wenn Ladepunkt und Fahrzeug bidirektionales Laden unterstützen, wird bis zum Fahrzug-SoC zum Zielzeitpunkt wie gewohnt mit Zielladen geladen. Ist der eingestellte SoC erreicht, wird eine Nullpunktausregelung gemacht, dh das Auto wird so ge- und entladen, dass möglichst weder Bezug noch Einspeisung entsteht. Der SoC wird dabei immer zwischen Fahrzeug-SoC zum Zielzeitpunkt und Fahrzeug-SoC mit Überschuss gehalten. ",-1),g("br",null,null,-1),i(" Unterstützen das Fahrzeug und/oder der Ladepunkt kein bidirektionales Laden, hat diese Einstellung keine Auswirkung. ",-1)])]),_:1},8,["modelValue"]),t.plan.bidi_charging_enabled===!0?(d(),b(M,{key:0,subtype:"info"},{default:a(()=>[...e[28]||(e[28]=[i(" Die Norm IEC 61851-1 und ISO 15118 benötigen als Parameter eine Stromstärke und die Phasenzahl. Die Norm ISO 15118-20, die das bidirektionale Laden definiert, benötigt als Parameter eine Ladeleistung. Die Phasenzahl legt das Fahrzeug fest. Wenn Fahrzeug und Ladepunkt bidirektionales Laden nach ISO 15118-20 unterstützen, wird die eingestellte Ladeleistung verwendet. Unterstützen das Fahrzeug und/oder der Ladepunkt die Norm nicht, wird der Ladestrom und die vorgegebene Phasenzahl angewendet. ",-1)])]),_:1})):m("",!0)])):m("",!0)]),_:1},8,["title"])],64)}const De=q(ye,[["render",Te],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateScheduledChargingPlan.vue"]]);O.add(R,I,j,H,J,G,Y,Q);const qe={name:"ChargeTemplateTimeChargingPlan",components:{FontAwesomeIcon:Z},mixins:[X],props:{modelValue:{type:Object,required:!0},templateId:{type:Number,required:!0},dcChargingEnabled:{type:Boolean,default:!1}},emits:["update:modelValue","sendCommand"],data(){return{mqttTopics:[{topic:"openWB/optional/dc_charging",writeable:!1}],showRemoveModal:!1}},computed:{plan(){return this.modelValue}},watch:{plan:{handler(n){this.$emit("update:modelValue",n)},deep:!0}},methods:{copyPlan(){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:this.templateId,changed_in_theme:!1,copy:this.modelValue.id}})},removePlanModal(){this.showRemoveModal=!0},removePlan(n){this.showRemoveModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplateTimeChargingPlan",data:{template:this.templateId,plan:this.modelValue.id,changed_in_theme:!1}})}}},xe={key:0},Ze={key:1},Oe={key:2},Ne={key:3},Re={key:4},Ie={key:1},je={key:2};function He(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-text-input"),C=c("openwb-base-button-group-input"),F=c("openwb-base-range-input"),E=c("openwb-base-number-input"),M=c("openwb-base-card");return d(),p(W,null,[l(y,{show:S.showRemoveModal,title:"Zeitladen Zeitplan löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:t.removePlan},{default:a(()=>[i(' Willst Du den Zeitladen Zeitplan "'+w(t.plan.name)+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show","onModalResult"]),l(M,{title:t.plan.name,collapsible:!0,collapsed:!0},{actions:a(v=>[v.collapsed==!0?(d(),p("span",{key:0,class:ee(["pill clickable",t.plan.active?"bg-success":"bg-danger"]),onClick:e[0]||(e[0]=B(s=>t.plan.active=!t.plan.active,["stop"]))},[t.plan.limit.selected=="soc"?(d(),p("span",xe,[l(h,{icon:["fas","car-battery"]}),i(" "+w(t.plan.limit.soc)+"% ",1)])):m("",!0),t.plan.limit.selected=="amount"?(d(),p("span",Ze,[l(h,{icon:["fas","bolt"]}),i(" "+w(t.plan.limit.amount/1e3)+"kWh ",1)])):m("",!0),l(h,{icon:["fas","clock"]}),i(" "+w(t.plan.time[0])+" - "+w(t.plan.time[1])+" ",1),t.plan.frequency.selected=="once"?(d(),p("span",Oe,[l(h,{icon:["fas","calendar-day"]}),i(" "+w(n.formatDate(t.plan.frequency.once[0])==n.formatDate(t.plan.frequency.once[1])?n.formatDate(t.plan.frequency.once[0]):n.formatDate(t.plan.frequency.once[0])+" - "+n.formatDate(t.plan.frequency.once[1])),1)])):m("",!0),t.plan.frequency.selected=="daily"?(d(),p("span",Ne,[l(h,{icon:["fas","calendar-week"]})])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("span",Re,[l(h,{icon:["fas","calendar-alt"]})])):m("",!0)],2)):m("",!0),v.collapsed==!1?(d(),p("span",Ie,[l(k,{class:"bg-success clickable",title:"Zeitladen-Plan duplizieren",onClick:e[1]||(e[1]=B(s=>t.copyPlan(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1}),l(k,{class:"bg-danger clickable ml-1",title:"Zeitladen-Plan löschen",onClick:e[2]||(e[2]=B(s=>t.removePlanModal(),["stop"]))},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1})])):m("",!0)]),default:a(()=>[l(z,{modelValue:t.plan.name,"onUpdate:modelValue":e[3]||(e[3]=v=>t.plan.name=v),title:"Bezeichnung"},null,8,["modelValue"]),l(C,{modelValue:t.plan.active,"onUpdate:modelValue":e[4]||(e[4]=v=>t.plan.active=v),title:"Zeitplan aktiv",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}]},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[0],"onUpdate:modelValue":e[5]||(e[5]=v=>t.plan.time[0]=v),title:"Zeitpunkt des Ladebeginns",subtype:"time"},null,8,["modelValue"]),l(z,{modelValue:t.plan.time[1],"onUpdate:modelValue":e[6]||(e[6]=v=>t.plan.time[1]=v),title:"Zeitpunkt des Ladeendes",subtype:"time"},null,8,["modelValue"]),l(C,{modelValue:t.plan.frequency.selected,"onUpdate:modelValue":e[7]||(e[7]=v=>t.plan.frequency.selected=v),title:"Wiederholungen",buttons:[{buttonValue:"once",text:"Einmalig",class:"btn-outline-info"},{buttonValue:"daily",text:"Täglich",class:"btn-outline-info"},{buttonValue:"weekly",text:"Wöchentlich",class:"btn-outline-info"}]},null,8,["modelValue"]),t.plan.frequency.selected=="once"?(d(),b(z,{key:0,modelValue:t.plan.frequency.once[0],"onUpdate:modelValue":e[8]||(e[8]=v=>t.plan.frequency.once[0]=v),title:"Gültig ab",subtype:"date"},null,8,["modelValue"])):m("",!0),t.plan.frequency.selected=="once"?(d(),b(z,{key:1,modelValue:t.plan.frequency.once[1],"onUpdate:modelValue":e[9]||(e[9]=v=>t.plan.frequency.once[1]=v),title:"Gültig bis",subtype:"date",min:t.plan.frequency.once[0]},null,8,["modelValue","min"])):m("",!0),t.plan.frequency.selected=="weekly"?(d(),p("div",je,[(d(!0),p(W,null,D(n.weekdays,(v,s)=>(d(),b(C,{key:s,modelValue:t.plan.frequency.weekly[s],"onUpdate:modelValue":_=>t.plan.frequency.weekly[s]=_,title:v,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}]},null,8,["modelValue","onUpdate:modelValue","title"]))),128))])):m("",!0),e[20]||(e[20]=g("hr",null,null,-1)),l(F,{modelValue:t.plan.current,"onUpdate:modelValue":e[10]||(e[10]=v=>t.plan.current=v),title:`Ladestrom${f.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A"},null,8,["modelValue","title"]),f.dcChargingEnabled===!0?(d(),b(E,{key:3,title:"Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(t.plan.dc_current),"onUpdate:modelValue":e[11]||(e[11]=v=>t.plan.dc_current=n.dc_power2ac_current(v))},null,8,["model-value"])):m("",!0),l(C,{modelValue:t.plan.phases_to_use,"onUpdate:modelValue":e[12]||(e[12]=v=>t.plan.phases_to_use=v),title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}]},{help:a(()=>[...e[16]||(e[16]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen 1- und 3-phasig (sog. 1p3p). ',-1)])]),_:1},8,["modelValue"]),e[21]||(e[21]=g("hr",null,null,-1)),l(C,{modelValue:t.plan.limit.selected,"onUpdate:modelValue":e[13]||(e[13]=v=>t.plan.limit.selected=v),title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}]},{help:a(()=>[...e[17]||(e[17]=[i(" Bestimmt die Art der Grenze für den Ladevorgang. ",-1)])]),_:1},8,["modelValue"]),l(F,{modelValue:t.plan.limit.soc,"onUpdate:modelValue":e[14]||(e[14]=v=>t.plan.limit.soc=v),title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%"},{help:a(()=>[...e[18]||(e[18]=[i(" Ladestand des Akku (State of Charge, SoC), bis zu welchem maximal geladen werden soll. ",-1)])]),_:1},8,["modelValue"]),l(E,{title:"Energie-Limit",unit:"kWh",min:1,step:.5,"model-value":t.plan.limit.amount/1e3,"onUpdate:modelValue":e[15]||(e[15]=v=>t.plan.limit.amount=v*1e3)},{help:a(()=>[...e[19]||(e[19]=[i(" Maximal zu ladende Energie innerhalb des Zeitfensters. Eignet sich immer dann wenn kein SoC zur Verfügung steht. Die geladene Energiemenge wird beim Wechsel des Lademodus, Wechsel des Plans oder nach dem Anstecken, wenn Zeitladen schon aktiv ist, neu gezählt. ",-1)])]),_:1},8,["model-value"])]),_:1},8,["title"])],64)}const Je=q(qe,[["render",He],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ChargeTemplateTimeChargingPlan.vue"]]);O.add(de,Q,H,G,J,j,R,I,se,me,ge,$,Y);const Ge={name:"OpenwbVehicleConfigView",components:{FontAwesomeIcon:Z,FontAwesomeLayers:oe,OpenwbVehicleProxy:Se,ChargeTemplateScheduledChargingPlan:De,ChargeTemplateTimeChargingPlan:Je},mixins:[X],props:{installAssistantActive:{type:Boolean,required:!1,default:!1}},emits:["sendCommand","save","reset","defaults"],data(){return{mqttTopics:[{topic:"openWB/general/extern",writeable:!1},{topic:"openWB/optional/dc_charging",writeable:!1},{topic:"openWB/optional/ep/flexible_tariff/provider",writeable:!1},{topic:"openWB/optional/rfid/active",writeable:!1},{topic:"openWB/system/configurable/soc_modules",writeable:!1},{topic:"openWB/vehicle/+/charge_template",writeable:!0},{topic:"openWB/vehicle/+/ev_template",writeable:!0},{topic:"openWB/vehicle/+/info",writeable:!0},{topic:"openWB/vehicle/+/name",writeable:!0},{topic:"openWB/vehicle/+/soc_module/config",writeable:!0},{topic:"openWB/vehicle/+/soc_module/general_config",writeable:!0},{topic:"openWB/vehicle/+/tag_id",writeable:!0},{topic:"openWB/vehicle/template/charge_template/+",writeable:!0},{topic:"openWB/vehicle/template/ev_template/+",writeable:!0}],showVehicleModal:!1,modalVehicleIndex:void 0,showEvTemplateModal:!1,modalEvTemplateIndex:void 0,showChargeTemplateModal:!1,modalChargeTemplateIndex:void 0}},computed:{dcChargingEnabled:{get(){return this.$store.state.mqtt["openWB/optional/dc_charging"]}},vehicleIndexes:{get(){return this.getWildcardIndexList("openWB/vehicle/+/info")}},evTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/ev_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},evTemplateList:{get(){let n=[];return Object.keys(this.evTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+f].name;n.push({value:f,text:P})}),n}},chargeTemplates(){const n=this.getWildcardTopics("openWB/vehicle/template/charge_template/+");return Object.fromEntries(Object.entries(n).filter(([,e])=>e&&typeof e=="object"))},chargeTemplateList:{get(){let n=[];return Object.keys(this.chargeTemplates).forEach(e=>{let f=parseInt(e.match(/([0-9]+)$/g)[0]),P=this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+f].name;n.push({value:f,text:P})}),n}},socModuleList:{get(){return this.$store.state.mqtt["openWB/system/configurable/soc_modules"]}}},methods:{updateConfiguration(n,e){console.debug("updateConfiguration",n,e),this.updateState(n,e.value,e.object)},addVehicle(n){n.stopPropagation(),this.$emit("sendCommand",{command:"addVehicle",data:{}})},removeVehicleModal(n,e){n.stopPropagation(),this.modalVehicleIndex=e,this.showVehicleModal=!0},removeVehicle(n,e){this.showVehicleModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeVehicle",data:{id:e}})},getVehicleName(n){return this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]?this.$store.state.mqtt["openWB/vehicle/"+n+"/name"]:"Fahrzeug "+n},getSocDefaultConfiguration(n){const e=this.socModuleList.find(f=>f.value==n);return Object.prototype.hasOwnProperty.call(e,"defaults")?{...JSON.parse(JSON.stringify(e.defaults))}:(console.warn("no default configuration found for soc type!",n),{})},updateSelectedSocModule(n,e){this.updateState("openWB/vehicle/"+n+"/soc_module/config",e,"type"),this.updateState("openWB/vehicle/"+n+"/soc_module/config",this.getSocDefaultConfiguration(e))},addEvTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addEvTemplate",data:f})},removeEvTemplateModal(n,e){n.stopPropagation(),this.modalEvTemplateIndex=parseInt(e.match(/([^/]+)$/)[0]),this.showEvTemplateModal=!0},removeEvTemplate(n,e){this.showEvTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeEvTemplate",data:{id:e}})},getEvTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/ev_template/"+n].name:"Fahrzeug-Profil "+n},addChargeTemplate(n,e){n.stopPropagation();let f={};e&&e.match(/([^/]+)$/)&&(f.copy=parseInt(e.match(/([^/]+)$/)[0])),this.$emit("sendCommand",{command:"addChargeTemplate",data:f})},removeChargeTemplateModal(n,e){this.modalChargeTemplateIndex=e,this.showChargeTemplateModal=!0},removeChargeTemplate(n,e){this.showChargeTemplateModal=!1,n=="confirm"&&this.$emit("sendCommand",{command:"removeChargeTemplate",data:{id:e}})},getChargeTemplateName(n){return this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n]?this.$store.state.mqtt["openWB/vehicle/template/charge_template/"+n].name:"Lade-Profil "+n},addChargeTemplateSchedulePlan(n){this.$emit("sendCommand",{command:"addChargeTemplateSchedulePlan",data:{template:n,changed_in_theme:!1}})},addChargeTemplateTimeChargingPlan(n){this.$emit("sendCommand",{command:"addChargeTemplateTimeChargingPlan",data:{template:n,changed_in_theme:!1}})},openActiveChargeModeCard(n,e){this.$nextTick(()=>{["instant_charging","pv_charging","eco_charging","scheduled_charging"].forEach(P=>{const S=`card-${n}-${P}`,t=this.$refs[S],y=Array.isArray(t)?t[0]:t;y&&(y.isCollapsed=P!==e)})})}}},Ye={class:"vehicleConfig"},Qe={name:"vehicleConfigForm"},Xe={key:0},Ke={key:1},$e={key:2},en={key:0},nn={key:0},tn={key:1},ln={key:1},an={key:3},rn={key:0},un={key:1},on={key:0},dn={key:1},sn={key:0},mn={key:0},gn={key:3},pn={key:0},hn={key:1},cn={key:0},bn={key:1};function fn(n,e,f,P,S,t){const y=c("openwb-base-modal-dialog"),h=c("font-awesome-icon"),k=c("openwb-base-avatar"),z=c("openwb-base-alert"),C=c("openwb-base-text-input"),F=c("openwb-base-select-input"),E=c("openwb-base-heading"),M=c("router-link"),v=c("openwb-base-array-input"),s=c("openwb-base-button-group-input"),_=c("openwb-base-number-input"),N=c("openwb-vehicle-proxy"),U=c("openwb-base-card"),K=c("font-awesome-layers"),A=c("openwb-base-range-input"),ne=c("charge-template-scheduled-charging-plan"),te=c("charge-template-time-charging-plan"),le=c("openwb-base-submit-buttons");return d(),p(W,null,[l(y,{show:S.showVehicleModal,title:"Fahrzeug löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[0]||(e[0]=r=>t.removeVehicle(r,S.modalVehicleIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug "'+w(t.getVehicleName(S.modalVehicleIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showEvTemplateModal,title:"Fahrzeug-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[1]||(e[1]=r=>t.removeEvTemplate(r,S.modalEvTemplateIndex))},{default:a(()=>[i(' Willst Du das Fahrzeug-Profil "'+w(t.getEvTemplateName(S.modalEvTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),l(y,{show:S.showChargeTemplateModal,title:"Lade-Profil löschen",subtype:"danger",buttons:[{text:"Löschen",event:"confirm",subtype:"danger"}],onModalResult:e[2]||(e[2]=r=>t.removeChargeTemplate(r,S.modalChargeTemplateIndex))},{default:a(()=>[i(' Willst Du das Lade-Profil "'+w(t.getChargeTemplateName(S.modalChargeTemplateIndex))+'" wirklich entfernen? Dieser Vorgang kann nicht rückgängig gemacht werden! ',1)]),_:1},8,["show"]),g("div",Ye,[g("form",Qe,[l(U,{subtype:"info",collapsible:!0,collapsed:n.$route.params.section!="vehicle"},{header:a(()=>[l(h,{icon:["fas","car"]}),e[8]||(e[8]=i(" Fahrzeuge ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug hinzufügen",onClick:t.addVehicle},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",Xe,[l(z,{subtype:"info"},{default:a(()=>[...e[9]||(e[9]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",Ke,[(d(!0),p(W,null,D(t.vehicleIndexes,r=>(d(),b(U,{key:r,title:t.getVehicleName(r),collapsible:!0,collapsed:!(n.$route.params.section=="vehicle"&&parseInt(n.$route.params.section_index)==r),subtype:"info"},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/name"],disabled:r===0,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/name",o)},x({_:2},[r===0?{name:"help",fn:a(()=>[e[10]||(e[10]=i(" Das Standard-Fahrzeug kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),r!==0?(d(),b(C,{key:0,title:"Fahrzeughersteller ","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.manufacturer,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"manufacturer")},{help:a(()=>[...e[11]||(e[11]=[i(" Optional: zusätzliche Information für den Systembericht. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),r!==0?(d(),b(C,{key:1,title:"Fahrzeugmodell","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/info"]?.model,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/info",o,"model")},{help:a(()=>[...e[12]||(e[12]=[i(" Optional: zusätzliche Information für den Systembericht.",-1),g("br",null,null,-1),i(" Nach Möglichkeit auch Angabe des Baujahres, da es durchaus beim Verhalten des Fahrzeugs Unterschiede geben kann. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(F,{title:"Fahrzeug-Profil",options:t.evTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/ev_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/ev_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),l(F,{title:"Lade-Profil",options:t.chargeTemplateList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/charge_template"],"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/charge_template",o)},null,8,["options","model-value","onUpdate:modelValue"]),e[31]||(e[31]=g("hr",null,null,-1)),f.installAssistantActive?m("",!0):(d(),p("div",$e,[l(E,null,{default:a(()=>[...e[13]||(e[13]=[i(" Fahrzeugzuordnung per ID-Tags ",-1)])]),_:1}),(n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]?.length??0)>0?(d(),p("div",en,[l(z,{subtype:"info"},{default:a(()=>[e[15]||(e[15]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[14]||(e[14]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[16]||(e[16]=i(". ",-1)),n.$store.state.mqtt["openWB/optional/rfid/active"]===!1?(d(),p("div",nn," Aktuell ist die Identifikation in den Einstellungen deaktiviert. ")):(d(),p("div",tn," Die Identifikation ist aktiv. Das Fahrzeug lässt sich per ID-Tag automatisch einem Ladepunkt zuordnen. "))]),_:1}),l(v,{title:"Zugeordnete ID-Tags","no-elements-message":"Keine keine ID-Tags zugeordnet.",readonly:!0,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/tag_id"]},{help:a(()=>[...e[17]||(e[17]=[i(" Hier werden die ID-Tags aufgelistet, welche diesem Fahrzeug zugeordnet sind. Mit diesen ID-Tags kann dieses Fahrzeug an Ladepunkten automatisch zugeordnet werden. ",-1)])]),_:1},8,["model-value"])])):(d(),p("div",ln,[l(z,{subtype:"info"},{default:a(()=>[e[19]||(e[19]=i(" Einstellungen zur Fahrzeugzuordnung finden sich unter ",-1)),l(M,{to:"/IdentificationConfiguration"},{default:a(()=>[...e[18]||(e[18]=[i(" Einstellungen - Identifikation ",-1)])]),_:1}),e[20]||(e[20]=i(".",-1)),e[21]||(e[21]=g("br",null,null,-1)),e[22]||(e[22]=i(" Dem Fahrzeug sind aktuell keine ID-Tags zum Entsperren zugeordnet. ",-1))]),_:1})])),e[23]||(e[23]=g("hr",null,null,-1))])),l(F,{class:"mb-2",title:"SoC-Modul des Fahrzeugs",options:t.socModuleList,"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type,"onUpdate:modelValue":o=>t.updateSelectedSocModule(r,o)},{help:a(()=>[...e[24]||(e[24]=[i(" Mit einem SoC-Modul kann der Ladestand des Fahrzeugs ermittelt und geregelt werden. Z.B. lassen sich unabhängig vom Fahrzeug bestimmte SoC-Werte einstellen, um den Fahrzeugakku zu schonen. Aktuell werden die SoC-Werte mittels der App-Zugangsdaten aus dem Herstellerserver des Fahrzeuges ausgelesen. Zukünftig soll auch eine direkte SoC-Auslesung aus dem Fahrzeug möglich werden (openWB Pro).",-1),g("br",null,null,-1),i(" Die SoC-Abfrage erfolgt automatisch beim Anstecken des Fahrzeuges und zusätzlich über einstellbare Abfrageintervalle während des Ladens und Nichtladens. Die Abfrage kann auch manuell durch Klick auf den Reload-Pfeil auf der Hauptseite ausgelöst werden.",-1),g("br",null,null,-1),i(" Während des Ladevorgangs wird der Zeitstempel der SoC-Abfrage geprüft. Ist dieser älter als der Zeitstempel der vorherigen Abfrage, wird das Ergebnis verworfen, stattdessen eine Berechnung durchgeführt und auch so im Fahrzeugstatus vermerkt.",-1),g("br",null,null,-1),i(" Wenn eine Abfrage fehlschlägt, wird noch drei weitere Male im Abstand von 5 Minuten versucht, den SoC abzufragen. Wenn dies nicht erfolgreich ist, wird der SoC auf 0% gesetzt um zu vermeiden, dass ein Auto beim SoC-basierten Laden nicht geladen wird. Die Abfrage erfolgt dann wieder in den oben genannten Intervallen.",-1),g("br",null,null,-1),i(" Da aktuell die SoC-Abfragen über Onlineserver der Fahrzeughersteller laufen, ist infolge möglicher Umstellungen/Wartungen keine 100%-ig sichere SoC-Abfrage garantiert. Auch kann es zu SoC-Abweichungen infolge von zeitlicher Verzögerungen kommen. Hilfestellung erfolgt primär im openWB-Forum. ",-1)])]),_:1},8,["options","model-value","onUpdate:modelValue"]),n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"]?.type?(d(),p("div",an,[l(s,{title:"SoC direkt aus Fahrzeug auslesen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.use_soc_from_cp,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"use_soc_from_cp")},{help:a(()=>[...e[25]||(e[25]=[i(" Wenn Ladepunkt und Fahrzeug das direkte Auslesen des SoCs über das Ladekabel unterstützen, wird der SoC nach dem Anstecken aus dem Fahrzeug ausgelesen und während der Ladung berechnet. Das direkte Auslesen des SoC aus dem Fahrzeug ist aktuell nur mit einer openWB Pro möglich. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{help:a(()=>[...e[26]||(e[26]=[i(" Einige Hersteller begrenzen die möglichen Abfragen. Sobald ein gewisses Limit in einem Zeitraum überschritten wird, werden weitere Anfragen blockiert. Die Zeitintervalle sollten daher nicht zu klein gewählt werden. ",-1)])]),default:a(()=>[e[27]||(e[27]=i(" Aktualisierung der Fahrzeugdaten ",-1))]),_:1}),l(_,{title:"Während der Ladung",unit:"Min.",min:1,max:30,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"]?.request_interval_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_charging")},{help:a(()=>[...e[28]||(e[28]=[i(" Der Ladestand des Fahrzeugs (SoC) wird bei einem laufenden Ladevorgang in dem hier eingestellten Intervall in Minuten abgefragt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Ohne laufende Ladung",unit:"Min.",min:5,required:"","model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_interval_not_charging/60,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o*60,"request_interval_not_charging")},{help:a(()=>[...e[29]||(e[29]=[i(" Der Ladestand des Fahrzeugs (SoC) wird in dem hier eingestellten Intervall in Minuten abgefragt, falls kein Ladevorgang aktiv ist. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Nur aktualisieren wenn angesteckt",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/general_config"].request_only_plugged,"onUpdate:modelValue":o=>n.updateState("openWB/vehicle/"+r+"/soc_module/general_config",o,"request_only_plugged")},{help:a(()=>[...e[30]||(e[30]=[i(' Wird hier "Ja" ausgewählt, dann wird der Ladestand des Fahrzeugs nur abgefragt, wenn das Ladekabel angesteckt ist. ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(N,{"vehicle-id":r,vehicle:n.$store.state.mqtt["openWB/vehicle/"+r+"/soc_module/config"],"onUpdate:configuration":o=>t.updateConfiguration("openWB/vehicle/"+r+"/soc_module/config",o)},null,8,["vehicle-id","vehicle","onUpdate:configuration"])])):m("",!0)]),_:2},[r!==0?{name:"actions",fn:a(o=>[o.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-danger clickable",title:"Fahrzeug löschen",onClick:u=>t.removeVehicleModal(u,r)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"]))]),key:"0"}:void 0]),1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),e[91]||(e[91]=g("hr",{class:"border-secondary"},null,-1)),l(E,null,{default:a(()=>[...e[32]||(e[32]=[i("Profile",-1)])]),_:1}),l(U,{collapsible:!0,collapsed:!0},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","car"],transform:"shrink-8"})]),_:1}),e[33]||(e[33]=i(" Fahrzeug-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Fahrzeug-Profil hinzufügen",onClick:t.addEvTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",rn,[l(z,{subtype:"info"},{default:a(()=>[...e[34]||(e[34]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",un,[(d(!0),p(W,null,D(t.evTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!0},x({default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[35]||(e[35]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[36]||(e[36]=[i(" Angaben zur Batterie ",-1)])]),_:1}),l(_,{title:"Kapazität der Batterie",unit:"kWh",min:1,step:1,required:"","model-value":r.battery_capacity/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"battery_capacity")},{help:a(()=>[...e[37]||(e[37]=[i(" Angabe der Netto-Kapazität der Fahrzeugbatterie. Dient zur Berechnung des manuellen SoC und der geladenen Reichweite. Die Netto-Kapazität unterscheidet sich meist von den Angaben der Fahrzeughersteller. So besitzt ein Tesla Model S 90 z. B. nur ca. 83kWh und nicht die durch die Typenbezeichnung suggerierten 90kWh. Andere Hersteller begrenzen die nutzbare Kapazität absichtlich, um eine höhere Lebensdauer der Akkus zu erreichen. Gängig sind eine Drosselung auf 90% der angegebenen Brutto-Kapazität. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",on,[l(_,{title:"Wirkungsgrad der Ladeelektronik",unit:"%",min:1,max:100,required:"","model-value":r.efficiency,"onUpdate:modelValue":u=>n.updateState(o,u,"efficiency")},{help:a(()=>[...e[38]||(e[38]=[i(" Durch Verluste in der Ladeelektronik (z. B. Umwandlung Wechselspannung in Gleichspannung) gelangt nicht die komplette Energie, welche durch den Zähler in der Wallbox gemessen wird, in den Akku des Fahrzeugs. Der anzugebende Wert liegt bei gängigen Fahrzeugen im Bereich 90-95%. Eine Ausnahme stellt der Zoe dar, dessen Chameleon-Lader je nach Modellversion und freigegebener Leistung der Wallbox teilweise nur auf ca. 50% kommt.",-1),g("br",null,null,-1),i(" Liegen die Angaben der Wallbox und des Fahrzeugs nach der Ladung mehrere Prozent auseinander, dann kann mit dieser Einstellung eine Feinabstimmung erfolgen: ",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu hoch: Wirkungsgrad um ein paar Prozent reduzieren",-1),g("br",null,null,-1),i(" SoC an der Wallbox zu gering: Wirkungsgrad um ein paar Prozent erhöhen",-1),g("br",null,null,-1)])]),_:1},8,["model-value","onUpdate:modelValue"])])),l(_,{title:"Durchschnittsverbrauch",unit:"kWh / 100km",min:1,step:.1,required:"","model-value":r.average_consump/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"average_consump")},null,8,["model-value","onUpdate:modelValue"]),l(s,{title:"Bidirektionales Laden",buttons:[{buttonValue:!1,text:"Nicht unterstützt",class:"btn-outline-danger"},{buttonValue:!0,text:"AC nach ISO15118-20",class:"btn-outline-success"}],"model-value":r.bidi,"onUpdate:modelValue":u=>n.updateState(o,u,"bidi")},{help:a(()=>[...e[39]||(e[39]=[i(' Für bidirektionales Laden wird eine openWB Pro benötigt. Die openWB Pro muss auf den Modus "Bidi" gestellt werden.',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),p("div",dn,[l(E,null,{default:a(()=>[...e[40]||(e[40]=[i(" Angaben zur Ladeleistung (DC) ",-1)])]),_:1}),l(_,{title:"Mindestleistung",min:0,unit:"kW","model-value":n.ac_current2dc_power(r.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_min_current")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Maximalleistung",unit:"kW","model-value":n.ac_current2dc_power(r.dc_max_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"dc_max_current")},null,8,["model-value","onUpdate:modelValue"])])):m("",!0),l(E,null,{default:a(()=>[e[41]||(e[41]=i(" Angaben zum Ladestrom ",-1)),t.dcChargingEnabled===!0?(d(),p("span",sn," (AC) ")):m("",!0)]),_:1}),l(A,{title:"Mindeststrom",min:6,max:16,step:1,unit:"A","model-value":r.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"min_current")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom bei einer Phase",min:6,max:32,step:1,unit:"A","model-value":r.max_current_single_phase,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_single_phase")},null,8,["model-value","onUpdate:modelValue"]),l(A,{title:"Maximalstrom mehrere Phasen",min:6,max:32,step:1,unit:"A","model-value":r.max_current_multi_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_current_multi_phases")},null,8,["model-value","onUpdate:modelValue"]),l(_,{title:"Erlaubte Stromabweichung",step:.1,min:0,max:5,unit:"A","model-value":r.nominal_difference,"onUpdate:modelValue":u=>n.updateState(o,u,"nominal_difference")},{help:a(()=>[...e[42]||(e[42]=[i(" In manchen Lademodi, z.B. bei der automatischen Phasenumschaltung, wird geprüft, ob das Fahrzeug mit der vorgegebenen Stromstärke lädt. Manche Fahrzeuge laden nicht exakt mit der vorgegebenen Stromstärke. Die erlaubte Abweichung kann hier eingestellt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(E,null,{default:a(()=>[e[43]||(e[43]=i(" Angaben zur Handhabung von Phasen ",-1)),t.dcChargingEnabled===!0?(d(),p("span",mn," (AC) ")):m("",!0)]),_:1}),l(s,{title:"Unterstützte Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:2,text:"2"},{buttonValue:3,text:"3"}],"model-value":r.max_phases,"onUpdate:modelValue":u=>n.updateState(o,u,"max_phases")},{help:a(()=>[...e[44]||(e[44]=[i(" Anzahl der Phasen, die der Fahrzeuglader (s.g. OBC - OnboardCharger) verwendet. Plugin-Hybride nutzen meist nur eine Phase, reine E-Autos meist 3, manche nur 2 Phasen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"CP-Unterbrechung",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.control_pilot_interruption,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption")},{help:a(()=>[...e[45]||(e[45]=[i(' Erläuterung siehe "Konfiguration - Ladepunkte" -> Hardware-Optionen ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),r.control_pilot_interruption?(d(),b(_,{key:2,title:"Dauer der CP-Unterbrechung",min:4,step:1,unit:"s","model-value":r.control_pilot_interruption_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"control_pilot_interruption_duration")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Phasenumschaltung blockieren",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_phase_switch,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_phase_switch")},{help:a(()=>[...e[46]||(e[46]=[i(' Erläuterung zu 1p3p siehe "Ladeeinstellungen" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Ladung aktiv halten",buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"model-value":r.prevent_charge_stop,"onUpdate:modelValue":u=>n.updateState(o,u,"prevent_charge_stop")},{help:a(()=>[...e[47]||(e[47]=[i(" Der Ladevorgang wird in den Lademodi PV- und Zielladen nach Ladebeginn nicht unterbrochen, selbst wenn nicht mehr genug Überschuss vorhanden ist. Diese Einstellung sollte bei Fahrzeugen aktiviert werden, die nach einer Ladungsunterbrechung keine Ladung mehr starten. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),f.installAssistantActive?m("",!0):(d(),p("div",gn,[l(_,{title:"Mindestzeit zwischen Umschaltungen",unit:"s",min:2,step:1,required:"","model-value":r.keep_charge_active_duration,"onUpdate:modelValue":u=>n.updateState(o,u,"keep_charge_active_duration")},{help:a(()=>[...e[48]||(e[48]=[i(" Manche Fahrzeuge benötigen nach der Umschaltung einige Zeit, bis sie mit der vorgegebenen Phasenzahl laden. In dieser Zeit wird keine neue Phasenumschaltung angestoßen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]))]),_:2},[n.$store.state.mqtt["openWB/general/extern"]===!1?{name:"actions",fn:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Fahrzeug-Profil duplizieren",onClick:L=>t.addEvTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Fahrzeug-Profil löschen",onClick:L=>t.removeEvTemplateModal(L,o)},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),key:"0"}:void 0]),1032,["title"]))),128))]))]),_:1}),l(U,{collapsible:!0,collapsed:n.$route.params.section!="charge_template"},{header:a(()=>[l(K,{class:"fa-lg"},{default:a(()=>[l(h,{icon:["far","file"]}),l(h,{icon:["fas","plug"],transform:"shrink-8"})]),_:1}),e[49]||(e[49]=i(" Lade-Profile ",-1))]),actions:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!1?(d(),b(k,{key:0,class:"bg-success clickable",title:"Neues Lade-Profil hinzufügen",onClick:t.addChargeTemplate},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[n.$store.state.mqtt["openWB/general/extern"]===!0?(d(),p("div",pn,[l(z,{subtype:"info"},{default:a(()=>[...e[50]||(e[50]=[i(' Diese Einstellungen sind nicht verfügbar, solange sich diese openWB im Steuerungsmodus "secondary" befindet. ',-1)])]),_:1})])):(d(),p("div",hn,[(d(!0),p(W,null,D(t.chargeTemplates,(r,o)=>(d(),b(U,{key:o,title:r.name?r.name:o,collapsible:!0,collapsed:!(n.$route.params.section=="charge_template"&&parseInt(n.$route.params.section_index)==r.id)},{actions:a(u=>[u.collapsed?m("",!0):(d(),b(k,{key:0,class:"bg-success clickable",title:"Lade-Profil duplizieren",onClick:L=>t.addChargeTemplate(L,o)},{default:a(()=>[l(h,{icon:["fas","copy"]})]),_:1},8,["onClick"])),!u.collapsed&&!o.endsWith("/0")?(d(),b(k,{key:1,class:"bg-danger clickable ml-1",title:"Lade-Profil löschen",onClick:B(L=>t.removeChargeTemplateModal(L,r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","trash"]})]),_:1},8,["onClick"])):m("",!0)]),default:a(()=>[l(C,{title:"Bezeichnung","model-value":r.name,disabled:o.endsWith("/0"),"onUpdate:modelValue":u=>n.updateState(o,u,"name")},x({_:2},[o.endsWith("/0")?{name:"help",fn:a(()=>[e[51]||(e[51]=i(" Das Standard-Profil kann nicht umbenannt werden. ",-1))]),key:"0"}:void 0]),1032,["model-value","disabled","onUpdate:modelValue"]),l(E,null,{default:a(()=>[...e[52]||(e[52]=[i(" Allgemeine Optionen ",-1)])]),_:1}),l(s,{title:"Aktiver Lademodus",buttons:[{buttonValue:"instant_charging",text:"Sofort",class:"btn-outline-danger"},{buttonValue:"pv_charging",text:"PV",class:"btn-outline-success"},{buttonValue:"scheduled_charging",text:"Ziel",class:"btn-outline-primary"},{buttonValue:"eco_charging",text:"Eco",class:"btn-outline-secondary"},{buttonValue:"stop",text:"Stop",class:"btn-outline-dark"}],"model-value":r.chargemode.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.selected"),onButtonClick:u=>t.openActiveChargeModeCard(o,u)},{help:a(()=>[...e[53]||(e[53]=[i(" Diese Einstellung entspricht dem gewählten Lademodus auf der Hauptseite und ist aktiv, wenn ein zugehöriges Fahrzeug angesteckt ist.",-1),g("br",null,null,-1),i(" Die zur Verfügung stehende Leistung wird intern anhand folgender Prioritätenliste auf die Fahrzeuge bzw. Ladepunkte verteilt:",-1),g("br",null,null,-1),g("ol",null,[g("li",null,"Ziel (Sofortladen) mit Priorität"),g("li",null,"Ziel (Sofortladen)"),g("li",null,"Zeit mit Priorität"),g("li",null,"Zeit"),g("li",null,"Sofort mit Priorität"),g("li",null,"Sofort"),g("li",null,"Eco (Min-Anteil) mit Priorität"),g("li",null,"Eco (Min-Anteil)"),g("li",null,"PV (Min-Anteil) mit Priorität"),g("li",null,"PV (Min-Anteil)"),g("li",null,"Ziel (PV) mit Priorität"),g("li",null,"Ziel (PV)"),g("li",null,"Eco (PV-Anteil) mit Priorität"),g("li",null,"Eco (PV-Anteil)"),g("li",null,"PV (PV-Anteil) mit Priorität"),g("li",null,"PV (PV-Anteil)"),g("li",null,"Bidi-Entladen ohne Priorität"),g("li",null,"Bidi-Entladen mit Priorität")],-1)])]),_:1},8,["model-value","onUpdate:modelValue","onButtonClick"]),f.installAssistantActive?m("",!0):(d(),p("div",cn,[l(s,{title:"Priorität",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.prio,"onUpdate:modelValue":u=>n.updateState(o,u,"prio")},{help:a(()=>[...e[54]||(e[54]=[i(" Die Ladefreigabe mit dem jeweils eingestellten Mindeststrom erfolgt für alle Fahrzeuge, soweit die verfügbare Leistung ausreicht. Fahrzeuge mit Priorität werden bevorzugt mit mehr Leistung geladen, falls verfügbar. Erst wenn alle priorisierten Fahrzeuge die maximale Ladeleistung bekommen und noch zusätzlicher Überschuss vorhanden ist, wird auch für Fahrzeuge ohne Priorität mehr Leistung freigegeben. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Standard nach Abstecken",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.load_default,"onUpdate:modelValue":u=>n.updateState(o,u,"load_default")},{help:a(()=>[...e[55]||(e[55]=[i(" Falls diese Option aktiviert ist, wird der betroffene Ladepunkt nach dem Abstecken auf das Standard Fahrzeug zurückgesetzt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),e[57]||(e[57]=g("hr",null,null,-1)),l(E,null,{default:a(()=>[...e[56]||(e[56]=[i("Einstellungen der Lademodi",-1)])]),_:1})])),l(U,{ref_for:!0,ref:`card-${o}-instant_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[58]||(e[58]=[i(" Sofort ",-1)])]),default:a(()=>[l(A,{title:`Soll-Ladestrom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.instant_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Soll-Ladeleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.instant_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.instant_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.instant_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.phases_to_use")},{help:a(()=>[...e[59]||(e[59]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (s.g. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.instant_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.selected")},{help:a(()=>[...e[60]||(e[60]=[i(" Sofortladen kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.instant_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.instant_charging.limit.soc")},{help:a(()=>[...e[61]||(e[61]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.instant_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.instant_charging.limit.amount")},{help:a(()=>[...e[62]||(e[62]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-pv_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[63]||(e[63]=[i(" PV ",-1)])]),default:a(()=>[l(A,{title:`Minimaler Dauerstrom${t.dcChargingEnabled?" (AC)":""}`,min:0,max:11,step:1,unit:"A",labels:[{label:"Aus",value:0},{label:6,value:6},{label:7,value:7},{label:8,value:8},{label:9,value:9},{label:10,value:10},{label:11,value:11},{label:12,value:12},{label:13,value:13},{label:14,value:14},{label:15,value:15},{label:16,value:16}],"model-value":r.chargemode.pv_charging.min_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_current")},{help:a(()=>[...e[64]||(e[64]=[i(' Hier kann eine Stromstärke eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Stromwert empfohlen wird. Diese Einstellung entspricht weitestgehend dem Lademodus "Min+PV" der Version 1.x. ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_current")},{help:a(()=>[...e[65]||(e[65]=[i(" Hier kann eine Leistung eingestellt werden, mit dem unabhängig vom vorhandenen Überschuss durchgeladen wird. Hierdurch wird z.B. an Tagen mit häufigem Sonne/Wolken-Wechsel oder mit nur wenig PV-Ertrag ein Laden ohne Unterbrechung ermöglicht. Folglich kann auch Netzbezug für das Fahrzeugladen entstehen, weshalb der niedrigste Leistungswert empfohlen wird. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.pv_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use")},{help:a(()=>[...e[66]||(e[66]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.pv_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.selected")},{help:a(()=>[...e[67]||(e[67]=[i(" PV kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.pv_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.limit.soc")},{help:a(()=>[...e[68]||(e[68]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.pv_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.pv_charging.limit.amount")},{help:a(()=>[...e[69]||(e[69]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"Mindest-SoC für das Fahrzeug",min:0,max:19,step:1,unit:"%",labels:[{label:"Aus",value:0},{label:5,value:5},{label:10,value:10},{label:15,value:15},{label:20,value:20},{label:25,value:25},{label:30,value:30},{label:35,value:35},{label:40,value:40},{label:45,value:45},{label:50,value:50},{label:55,value:55},{label:60,value:60},{label:65,value:65},{label:70,value:70},{label:75,value:75},{label:80,value:80},{label:85,value:85},{label:90,value:90},{label:95,value:95}],"model-value":r.chargemode.pv_charging.min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc")},{help:a(()=>[...e[70]||(e[70]=[i(' Liegt der Fahrzeug-Ladestand (SoC) unter dem hier eingestellten Wert, dann wird bis zum Erreichen dieses Wertes mit dem eingestellten "Mindest-SoC-Strom" geladen. Dies dient der Sicherstellung eines "Mindest-SoC" - z.B. für eine immer abzudeckende Fahrzeugreichweite - auch wenn kein oder zu wenig Überschuss verfügbar ist (=> Laden mit anteilig Netzstrom). Nach dem Erreichen des "Mindest-SoC" wird bei verfügbarem Überschuss geladen.',-1),g("br",null,null,-1),i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:`Mindest-SoC-Strom${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.pv_charging.min_soc_current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.min_soc_current")},{help:a(()=>[...e[71]||(e[71]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit dem hier festgelegten "Mindest-SoC-Strom" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:1,title:"Mindest-SoC-Leistung (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.pv_charging.dc_min_soc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.pv_charging.dc_min_soc_current")},{help:a(()=>[...e[72]||(e[72]=[i(' Wird der oben eingestellte "Mindest-SoC" des Fahrzeuges unterschritten, dann wird unabhängig vom Überschuss ein Ladevorgang mit der hier festgelegten "Mindest-SoC-Leistung" initiiert (ggf. mit anteilig Netzbezug). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen Mindest-SoC",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"}],"model-value":r.chargemode.pv_charging.phases_to_use_min_soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.phases_to_use_min_soc")},{help:a(()=>[...e[73]||(e[73]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Einspeisegrenze beachten",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.chargemode.pv_charging.feed_in_limit,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.pv_charging.feed_in_limit")},{help:a(()=>[...e[74]||(e[74]=[i(' Erläuterung siehe "Ladeeinstellungen" -> "Überschuss-Laden" -> "Regelparameter" -> "Regelpunkt Einspeisegrenze" ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"])]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[75]||(e[75]=[i(" Ziel ",-1)])]),default:a(()=>[l(E,null,{actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zielladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateSchedulePlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),help:a(()=>[...e[76]||(e[76]=[i(' Im Lademodus "Zielladen" wird der Ladestrom so angepasst, dass das Fahrzeug zum angegebenen Zeitpunkt den eingestellten SoC bzw. die einzuladende Energiemenge erreicht. Anhand des vorgegebenen Ladestroms wird der Zeitpunkt berechnet, an dem die Ladung spätestens starten muss.',-1),g("br",null,null,-1),i(' Ist der berechnete Zeitpunkt des Ladestarts noch nicht erreicht, wird mit Überschuss geladen. Auch nach Erreichen des Ziel-SoCs wird mit Überschuss geladen, solange bis das "SoC-Limit für das Fahrzeug" erreicht wird.',-1),g("br",null,null,-1),i(" Es wird nach den Vorgaben des Zeitplans geladen, dessen Zieltermin am nächsten liegt, bis max 20 Minuten nach dem angegebenen Zieltermin. ",-1)])]),default:a(()=>[e[77]||(e[77]=i(" Zielladepläne ",-1))]),_:2},1024),r.chargemode.scheduled_charging.plans.length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[78]||(e[78]=[i(" Es wurden noch keine Pläne für das Zielladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.chargemode.scheduled_charging.plans,(u,L)=>(d(),b(ne,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`chargemode.scheduled_charging.plans.${L}`),onSendCommand:e[3]||(e[3]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536),l(U,{ref_for:!0,ref:`card-${o}-eco_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[79]||(e[79]=[i(" Eco ",-1)])]),default:a(()=>[l(E,null,{help:a(()=>[...e[80]||(e[80]=[i(" Im Eco-Modus wird eine Preisgrenze vorgegeben. Wenn der Strompreis unter dieser Grenze liegt, wird mit dem eingestellten Ladestrom geladen und -falls vorhanden- zusätzlich mit dem Überschuss. Wenn die Preisgrenze überschritten wird, wird nur mit Überschuss geladen, wenn dieser vorhanden ist. ",-1)])]),default:a(()=>[e[81]||(e[81]=i("Arbeitsweise von Eco ",-1))]),_:1}),l(A,{title:`Minimaler Dauerstrom unter der Preisgrenze${t.dcChargingEnabled?" (AC)":""}`,min:6,max:32,step:1,unit:"A","model-value":r.chargemode.eco_charging.current,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.current")},null,8,["title","model-value","onUpdate:modelValue"]),t.dcChargingEnabled===!0?(d(),b(_,{key:0,title:"Minimale Dauerleistung unter der Preisgrenze (DC)",unit:"kW",min:0,"model-value":n.ac_current2dc_power(r.chargemode.eco_charging.dc_current),"onUpdate:modelValue":u=>n.updateState(o,n.dc_power2ac_current(u),"chargemode.eco_charging.dc_current")},null,8,["model-value","onUpdate:modelValue"])):m("",!0),l(s,{title:"Anzahl Phasen bei Überschuss",buttons:[{buttonValue:1,text:"1"},{buttonValue:3,text:"Maximum"},{buttonValue:0,text:"Automatik"}],"model-value":r.chargemode.eco_charging.phases_to_use,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.phases_to_use")},{help:a(()=>[...e[82]||(e[82]=[i(' Hier kann eingestellt werden, ob Ladevorgänge mit einer Phase oder dem möglichen Maximum in Abhängigkeit der "Ladepunkt"- und "Fahrzeug"-Einstellungen durchgeführt werden. Im Modus "Automatik" entscheidet die Regelung, welche Einstellung genutzt wird, um den verfügbaren Überschuss in die Fahrzeuge zu laden. Voraussetzung ist die verbaute Umschaltmöglichkeit zwischen einer und mehreren Phasen (sog. 1p3p).',-1),g("br",null,null,-1),i(" Wird die eingestellte Preisgrenze unterschritten, wird immer mit der maximalen Anzahl Phasen geladen. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(s,{title:"Begrenzung",buttons:[{buttonValue:"none",text:"Keine"},{buttonValue:"soc",text:"Fahrzeug-SoC"},{buttonValue:"amount",text:"Energie"}],"model-value":r.chargemode.eco_charging.limit.selected,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.selected")},{help:a(()=>[...e[83]||(e[83]=[i(" Eco kann ohne Fahrzeug-SoC-Begrenzung (Aus), mit Begrenzung des Fahrzeug-SoC (SoC) bei konfiguriertem SoC-Auslesemodul oder mittels Vorgabe eine gewünschten Energiemenge in kWh (Energie) genutzt werden. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(A,{title:"SoC-Limit für das Fahrzeug",min:5,max:100,step:5,unit:"%","model-value":r.chargemode.eco_charging.limit.soc,"onUpdate:modelValue":u=>n.updateState(o,u,"chargemode.eco_charging.limit.soc")},{help:a(()=>[...e[84]||(e[84]=[i(' Um die Fahrzeug-SoC-Begrenzung nutzen zu können, muss ein SoC-Modul für das jeweilige Fahrzeug eingerichtet sein (siehe "Konfiguration" -> "Fahrzeuge" -> "SoC-Modul"). ',-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(_,{title:"Energie-Limit",unit:"kWh",min:1,step:1,"model-value":r.chargemode.eco_charging.limit.amount/1e3,"onUpdate:modelValue":u=>n.updateState(o,u*1e3,"chargemode.eco_charging.limit.amount")},{help:a(()=>[...e[85]||(e[85]=[i(" Die geladene Energiemenge wird nach dem Anstecken neu gezählt. ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"]||!n.$store.state.mqtt["openWB/optional/ep/flexible_tariff/provider"].type?(d(),b(z,{key:1,subtype:"warning"},{default:a(()=>[...e[86]||(e[86]=[i(" Bitte in den übergreifenden Ladeeinstellungen einen Strompreis-Anbieter konfigurieren. Ohne Strompreis-Anbieter wird im Modus Eco nur geladen, wenn Überschuss vorhanden ist. ",-1)])]),_:1})):m("",!0),l(_,{title:"Preisgrenze für strompreisbasiertes Laden",min:"-80",max:"80",step:"0.01",precision:2,unit:"ct/kWh","model-value":r.chargemode.eco_charging.max_price*1e5,"onUpdate:modelValue":u=>n.updateState(o,parseFloat((u/1e5).toFixed(7)),"chargemode.eco_charging.max_price")},null,8,["model-value","onUpdate:modelValue"])]),_:2},1536),f.installAssistantActive?m("",!0):(d(),p("div",bn,[e[90]||(e[90]=g("hr",null,null,-1)),l(s,{title:"Zeitladen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":r.time_charging.active,"onUpdate:modelValue":u=>n.updateState(o,u,"time_charging.active")},{help:a(()=>[...e[87]||(e[87]=[g("p",null,' Der Lademodus Zeit kann parallel zu einem der anderen Lademodi aktiviert werden. Die Auswahl des Lademodus, der in der Regelung genutzt wird, erfolgt anhand der Übersicht in der Hilfe bei "Aktiver Lademodus". Wenn kein Zeitplan aktiv ist oder das Limit des Zeitplans erreicht wurde, wird der Lademodus verwendet, der bei "Aktiver Lademodus" ausgewählt ist. ',-1),g("p",null," Mit einem Zeitplan kann ein klar abgegrenzter Zeitbereich zum Fahrzeugladen definiert werden. Dies wird häufig genutzt, um einem Fahrzeug kurz vor der Abfahrt Strom anzubieten, damit dessen Vorklimatisierung nicht aus dem Fahrzeugakku, sondern aus der openWB bezogen wird (enteisen, vorwärmen, abkühlen). 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 Einstellungen zur Vorklimatisierung in der Fahrzeug-App). ",-1)])]),_:1},8,["model-value","onUpdate:modelValue"]),l(U,{ref_for:!0,ref:`card-${o}-scheduled_charging`,collapsible:!0,collapsed:!0,subtype:"secondary"},{header:a(()=>[...e[88]||(e[88]=[i(" Zeitladen-Pläne ",-1)])]),actions:a(()=>[l(k,{class:"bg-success clickable",title:"Neuen Zeitladen-Plan hinzufügen",onClick:B(u=>t.addChargeTemplateTimeChargingPlan(r.id),["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[(r.time_charging.plans??[]).length==0?(d(),b(z,{key:0,subtype:"info"},{default:a(()=>[...e[89]||(e[89]=[i(" Es wurden noch keine Pläne für das Zeitladen angelegt. ",-1)])]),_:1})):m("",!0),(d(!0),p(W,null,D(r.time_charging.plans??[],(u,L)=>(d(),b(te,{key:L,"model-value":u,"template-id":r.id,"dc-charging-enabled":t.dcChargingEnabled,"onUpdate:modelValue":T=>n.updateState(o,T,`time_charging.plans.${L}`),onSendCommand:e[4]||(e[4]=T=>n.$emit("sendCommand",T))},null,8,["model-value","template-id","dc-charging-enabled","onUpdate:modelValue"]))),128))]),_:2},1536)]))]),_:2},1032,["title","collapsed"]))),128))]))]),_:1},8,["collapsed"]),l(le,{"form-name":"vehicleConfigForm",onSave:e[5]||(e[5]=r=>n.$emit("save",n.mqttTopicsToPublish)),onReset:e[6]||(e[6]=r=>n.$emit("reset")),onDefaults:e[7]||(e[7]=r=>n.$emit("defaults"))})])])],64)}const vn=q(Ge,[["render",fn],["__file","/opt/openWB-dev/openwb-ui-settings/src/views/VehicleConfiguration.vue"]]),zn=Object.freeze(Object.defineProperty({__proto__:null,default:vn},Symbol.toStringTag,{value:"Module"}));export{fe as V,vn as a,zn as b}; diff --git a/web/settings/assets/backup_cloud-CXDQV4ep.js b/web/settings/assets/backup_cloud-CgD5zQhQ.js similarity index 89% rename from web/settings/assets/backup_cloud-CXDQV4ep.js rename to web/settings/assets/backup_cloud-CgD5zQhQ.js index 78964bb8b9..47e1ebb73e 100644 --- a/web/settings/assets/backup_cloud-CXDQV4ep.js +++ b/web/settings/assets/backup_cloud-CgD5zQhQ.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-C57poL-r.js";import{_ as p,l as u,k as i,e as l,m as d,q as c,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudNfs",mixins:[r]},m={class:"backup-cloud-nfs"};function _(t,e,b,k,v,x){const a=u("openwb-base-text-input");return i(),l("div",m,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>[...e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{$ as default}; +import{B as r}from"./DataManagement-lM5_tcaR.js";import{_ as p,l as u,k as i,e as l,m as d,q as c,A as o,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudNfs",mixins:[r]},m={class:"backup-cloud-nfs"};function _(t,e,b,k,v,x){const a=u("openwb-base-text-input");return i(),l("div",m,[d(a,{title:"Pfad zum NFS Share",pattern:"^([^/: ]+):(\\/[^/: ]+)+$",required:"","model-value":t.backupCloud.configuration.nfs_share,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.nfs_share"))},{help:c(()=>[...e[1]||(e[1]=[o(" 1. IP basierter Pfad: 1.2.3.4:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" 2. Host (FQDN) basierter Pfad: backupserver.domain.net:/pfad/zum/nfs-share",-1),n("br",null,null,-1),o(" Bitte entgegen der Syntax das Protokoll nicht davor schreiben. Falsch wäre, “nfs://” davor zu setzen. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nfs/backup_cloud.vue"]]);export{$ as default}; diff --git a/web/settings/assets/backup_cloud-CPUdKiBb.js b/web/settings/assets/backup_cloud-D9cn7cL6.js similarity index 96% rename from web/settings/assets/backup_cloud-CPUdKiBb.js rename to web/settings/assets/backup_cloud-D9cn7cL6.js index b38b653ca3..c11928299d 100644 --- a/web/settings/assets/backup_cloud-CPUdKiBb.js +++ b/web/settings/assets/backup_cloud-D9cn7cL6.js @@ -1 +1 @@ -import{B as c}from"./DataManagement-C57poL-r.js";import{_ as m,l as a,k as b,e as f,m as t,q as r,A as n,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,C){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])]),_:1}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>[...e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>[...e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])]),_:1}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>[...e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])]),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>[...e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>[...e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1})])}const $=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{$ as default}; +import{B as c}from"./DataManagement-lM5_tcaR.js";import{_ as m,l as a,k as b,e as f,m as t,q as r,A as n,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"BackupCloudOneDrive",mixins:[c]},v={class:"backup-cloud-one-drive"};function k(o,e,h,w,B,C){const d=a("openwb-base-alert"),u=a("openwb-base-text-input"),p=a("openwb-base-heading"),l=a("openwb-base-button-input");return b(),f("div",v,[t(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[n(" Zum Abruf der Zugangsberechtigung bitte die Konfiguration speichern, dann die Schritte 1-4 durchführen und danach die Konfiguration erneut speichern. ",-1),i("br",null,null,-1),n(" Auth Code und URL werden nur einmal benötigt werden nach erfolgreicher Autorisierung wieder gelöscht. ",-1)])]),_:1}),t(u,{title:"Backupverzeichnis in OneDrive",subtype:"text",required:"",pattern:"^/(.*/)*","model-value":o.backupCloud.configuration.backuppath,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.backuppath"))},{help:r(()=>[...e[4]||(e[4]=[n(" In diesem Verzeichnis werden die Backupdateien erstellt. Bitte den Pfad mit / beenden. ",-1),i("br",null,null,-1),n(" Beispiel: /openWB/Backup/ ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Anmeldedaten auf openWB gespeichert",readonly:"","model-value":o.backupCloud.configuration.persistent_tokencache?"Ja":"Nein"},null,8,["model-value"]),t(p,null,{default:r(()=>[...e[5]||(e[5]=[n(" Zugang zu OneDrive für diese openWB autorisieren ",-1)])]),_:1}),t(l,{title:"1. Anmeldeanforderung erstellen","button-text":"Autorisierungs-Code anfordern",subtype:"success",onButtonClicked:e[1]||(e[1]=s=>o.sendSystemCommand("requestMSALAuthCode",{}))},{help:r(()=>[...e[6]||(e[6]=[n(" Es werden Zugangstokens für OneDrive angefordert. Diese werden nur lokal auf dieser openWB gespeichert. Genutzt wird Device Flow mit public application.",-1),i("br",null,null,-1),n(" Weitere Infos:",-1),i("br",null,null,-1),i("a",{href:"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",target:"_blank",rel:"noopener noreferrer"},"https://docs.microsoft.com/en-us/azure/active-directory/develop/v2-oauth2-device-code",-1),i("a",{href:"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",target:"_blank",rel:"noopener noreferrer"},"https://learn.microsoft.com/en-us/azure/active-directory/develop/msal-client-applications",-1)])]),_:1}),t(u,{title:"2. Diesen Code kopieren",subtype:"text",readonly:"","model-value":o.backupCloud.configuration.authcode},null,8,["model-value"]),t(u,{title:"3. Anmelde-URL aufrufen",subtype:"url",readonly:"","model-value":o.backupCloud.configuration.authurl},{help:r(()=>[...e[7]||(e[7]=[n(" Diese URL im Browser öffnen und den Code eingeben. Dies erzeugt die notwendigen Zugangsberechtigung für diese openWB. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"4. Token abrufen und speichern","button-text":"Autorisierungs-Token abrufen",subtype:"success",onButtonClicked:e[2]||(e[2]=s=>o.sendSystemCommand("retrieveMSALTokens",{}))},{help:r(()=>[...e[8]||(e[8]=[n(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1})])}const $=m(g,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/onedrive/backup_cloud.vue"]]);export{$ as default}; diff --git a/web/settings/assets/backup_cloud-CzI98uku.js b/web/settings/assets/backup_cloud-DoxyAX26.js similarity index 94% rename from web/settings/assets/backup_cloud-CzI98uku.js rename to web/settings/assets/backup_cloud-DoxyAX26.js index 543561023e..c5d0a2e2f4 100644 --- a/web/settings/assets/backup_cloud-CzI98uku.js +++ b/web/settings/assets/backup_cloud-DoxyAX26.js @@ -1 +1 @@ -import{B as p}from"./DataManagement-C57poL-r.js";import{_ as d,l as r,k as m,e as b,m as u,q as i,A as a,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudSamba",mixins:[p]},g={class:"backup-cloud-samba"};function k(n,e,v,C,c,w){const l=r("openwb-base-text-input"),s=r("openwb-base-number-input");return m(),b("div",g,[u(l,{title:"Server",subtype:"host",required:"","model-value":n.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.smb_server"))},null,8,["model-value"]),u(l,{title:"Freigabe",required:"","model-value":n.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.smb_share"))},null,8,["model-value"]),u(l,{title:"Unterordner (optional)","model-value":n.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.smb_path"))},{help:i(()=>[...e[6]||(e[6]=[a(" Jeder Unterordner muss mit / enden.",-1),t("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),t("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),t("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])]),_:1},8,["model-value"]),u(l,{title:"Benutzer",subtype:"user","model-value":n.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.smb_user"))},null,8,["model-value"]),u(l,{title:"Kennwort",subtype:"password","model-value":n.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.smb_password"))},null,8,["model-value"]),u(s,{title:"Anzahl Backups aufbewahren","model-value":n.backupCloud.configuration.max_backups??0,min:0,max:100,required:"",step:1,"onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:i(()=>[...e[7]||(e[7]=[a(" 0 = keine automatische Löschung.",-1),t("br",null,null,-1),a(' Bei Werten > 0 werden nur die neuesten Backups behalten, ältere mit dem Prefix "openwb_backup_" werden gelöscht. ',-1)])]),_:1},8,["model-value"])])}const x=d(f,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{x as default}; +import{B as p}from"./DataManagement-lM5_tcaR.js";import{_ as d,l as r,k as m,e as b,m as u,q as i,A as a,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"BackupCloudSamba",mixins:[p]},g={class:"backup-cloud-samba"};function k(n,e,v,C,c,w){const l=r("openwb-base-text-input"),s=r("openwb-base-number-input");return m(),b("div",g,[u(l,{title:"Server",subtype:"host",required:"","model-value":n.backupCloud.configuration.smb_server,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.smb_server"))},null,8,["model-value"]),u(l,{title:"Freigabe",required:"","model-value":n.backupCloud.configuration.smb_share,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.smb_share"))},null,8,["model-value"]),u(l,{title:"Unterordner (optional)","model-value":n.backupCloud.configuration.smb_path,pattern:'(^\\/$)|(^([^\\\\:"\\|*?<>]+\\/)+$)',required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.smb_path"))},{help:i(()=>[...e[6]||(e[6]=[a(" Jeder Unterordner muss mit / enden.",-1),t("br",null,null,-1),a(' Die Zeichen \\:"|*?<> sind verboten!',-1),t("br",null,null,-1),a(" Beispiel 1: openwb/ ",-1),t("br",null,null,-1),a(" Beispiel 2: openwb/lp2/ ",-1)])]),_:1},8,["model-value"]),u(l,{title:"Benutzer",subtype:"user","model-value":n.backupCloud.configuration.smb_user,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.smb_user"))},null,8,["model-value"]),u(l,{title:"Kennwort",subtype:"password","model-value":n.backupCloud.configuration.smb_password,"onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.smb_password"))},null,8,["model-value"]),u(s,{title:"Anzahl Backups aufbewahren","model-value":n.backupCloud.configuration.max_backups??0,min:0,max:100,required:"",step:1,"onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:i(()=>[...e[7]||(e[7]=[a(" 0 = keine automatische Löschung.",-1),t("br",null,null,-1),a(' Bei Werten > 0 werden nur die neuesten Backups behalten, ältere mit dem Prefix "openwb_backup_" werden gelöscht. ',-1)])]),_:1},8,["model-value"])])}const x=d(f,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/samba/backup_cloud.vue"]]);export{x as default}; diff --git a/web/settings/assets/backup_cloud-CDlXI8NQ.js b/web/settings/assets/backup_cloud-z1NXuBiy.js similarity index 90% rename from web/settings/assets/backup_cloud-CDlXI8NQ.js rename to web/settings/assets/backup_cloud-z1NXuBiy.js index 0a1be4a4d8..493b9d2a94 100644 --- a/web/settings/assets/backup_cloud-CDlXI8NQ.js +++ b/web/settings/assets/backup_cloud-z1NXuBiy.js @@ -1 +1 @@ -import{B as r}from"./DataManagement-C57poL-r.js";import{_ as p,l as a,k as d,e as m,m as u,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"BackupCloudNextCloud",mixins:[r]},c={class:"backup-cloud-next-cloud"};function f(n,e,k,g,C,w){const t=a("openwb-base-text-input"),i=a("openwb-base-number-input");return d(),m("div",c,[u(t,{title:"Cloud-URL",subtype:"url",required:"","model-value":n.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},{help:s(()=>[...e[4]||(e[4]=[l(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])]),_:1},8,["model-value"]),u(t,{title:"Benutzername",subtype:"user","model-value":n.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),u(t,{title:"Passwort",subtype:"password","model-value":n.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),u(i,{title:"Anzahl Backups aufbewahren",min:0,step:1,required:"","model-value":n.backupCloud.configuration.max_backups??0,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:s(()=>[...e[5]||(e[5]=[l(" 0 = keine automatische Löschung; sonst werden nur die neuesten N Backups behalten. ",-1)])]),_:1},8,["model-value"])])}const L=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{L as default}; +import{B as r}from"./DataManagement-lM5_tcaR.js";import{_ as p,l as a,k as d,e as m,m as u,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"BackupCloudNextCloud",mixins:[r]},c={class:"backup-cloud-next-cloud"};function f(n,e,k,g,C,w){const t=a("openwb-base-text-input"),i=a("openwb-base-number-input");return d(),m("div",c,[u(t,{title:"Cloud-URL",subtype:"url",required:"","model-value":n.backupCloud.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},{help:s(()=>[...e[4]||(e[4]=[l(" Die Cloud-URL wird in der Form 'https://nextcloud-url' und Benutzername im Eingabefeld oder mit Zugangstoken erwartet. Die URL kann je nach NextCloud Installation so 'https://nextcloud-url/s/user_token' oder so 'https://nextcloud-url/index.php/s/user_token' aussehen. ",-1)])]),_:1},8,["model-value"]),u(t,{title:"Benutzername",subtype:"user","model-value":n.backupCloud.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"]),u(t,{title:"Passwort",subtype:"password","model-value":n.backupCloud.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"]),u(i,{title:"Anzahl Backups aufbewahren",min:0,step:1,required:"","model-value":n.backupCloud.configuration.max_backups??0,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o==null||o===""?0:Number(o)||0,"configuration.max_backups"))},{help:s(()=>[...e[5]||(e[5]=[l(" 0 = keine automatische Löschung; sonst werden nur die neuesten N Backups behalten. ",-1)])]),_:1},8,["model-value"])])}const L=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/backup_clouds/nextcloud/backup_cloud.vue"]]);export{L as default}; diff --git a/web/settings/assets/bat-BO99Yxvy.js b/web/settings/assets/bat-0iJT-x8M.js similarity index 88% rename from web/settings/assets/bat-BO99Yxvy.js rename to web/settings/assets/bat-0iJT-x8M.js index 114373687c..f2ce4e8028 100644 --- a/web/settings/assets/bat-BO99Yxvy.js +++ b/web/settings/assets/bat-0iJT-x8M.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[p]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const V=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as r,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitBat",mixins:[p]},_={class:"device-openwb-evukit-bat"};function v(t,e,b,f,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),u("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const V=r(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-DYO-TJpZ.js b/web/settings/assets/bat-4cfgum-E.js similarity index 87% rename from web/settings/assets/bat-DYO-TJpZ.js rename to web/settings/assets/bat-4cfgum-E.js index 50f956c602..536bdeabf5 100644 --- a/web/settings/assets/bat-DYO-TJpZ.js +++ b/web/settings/assets/bat-4cfgum-E.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFroniusBat",mixins:[a]},_={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const D=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFroniusBat",mixins:[a]},_={class:"device-fronius-bat"};function f(o,e,b,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Fronius Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.meter_id"))},null,8,["model-value"])])}const D=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-DfC3LldK.js b/web/settings/assets/bat-Ax30Gent.js similarity index 89% rename from web/settings/assets/bat-DfC3LldK.js rename to web/settings/assets/bat-Ax30Gent.js index 1fc0af80a9..d333ef9dd0 100644 --- a/web/settings/assets/bat-DfC3LldK.js +++ b/web/settings/assets/bat-Ax30Gent.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])]),_:1}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>[...e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const I=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceGoodWeBat",mixins:[m]},c={class:"device-goodwe-bat"};function b(o,e,f,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[a(" Einstellungen für GoodWe Batteriespeicher ",-1)])]),_:1}),t(s,{title:"GoodWe-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.battery_index"))},{help:i(()=>[...e[2]||(e[2]=[a(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const I=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/bat.vue"]]);export{I as default}; diff --git a/web/settings/assets/bat-DpnEphe_.js b/web/settings/assets/bat-BGnhimEI.js similarity index 87% rename from web/settings/assets/bat-DpnEphe_.js rename to web/settings/assets/bat-BGnhimEI.js index dac7c03a6f..f3abf0abcc 100644 --- a/web/settings/assets/bat-DpnEphe_.js +++ b/web/settings/assets/bat-BGnhimEI.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{V as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyBoyBat",mixins:[r]},b={class:"device-sunnyboy-bat"};function c(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-BtNiOzPi.js b/web/settings/assets/bat-BQtAwRjv.js similarity index 97% rename from web/settings/assets/bat-BtNiOzPi.js rename to web/settings/assets/bat-BQtAwRjv.js index 6e8f77b31b..e0ae538163 100644 --- a/web/settings/assets/bat-BtNiOzPi.js +++ b/web/settings/assets/bat-BQtAwRjv.js @@ -1 +1 @@ -import{C as g}from"./HardwareInstallation-DrK-NlWu.js";import{_ as b,l as u,k as f,e as B,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"DeviceMqttBat",mixins:[g]},w={class:"device-mqtt-bat"};function z(o,e,v,W,S,T){const d=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),a=u("openwb-base-button-group-input");return f(),B("div",w,[i(d,null,{default:l(()=>[...e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])]),_:1}),i(p,{subtype:"warning"},{default:l(()=>[e[2]||(e[2]=t(" Ist die ",-1)),e[3]||(e[3]=n("strong",null,"Benutzerverwaltung",-1)),e[4]||(e[4]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Speicher '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[5]||(e[5]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[31]||(e[31]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Beispiel: ",-1)),e[10]||(e[10]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/soc ",1)]),_:1}),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Beispiel: ",-1)),e[15]||(e[15]=n("span",{class:"text-info"},"95",-1))])]),e[32]||(e[32]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[16]||(e[16]=n("br",null,null,-1)),e[17]||(e[17]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Beispiel: ",-1)),e[20]||(e[20]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Beispiel: ",-1)),e[25]||(e[25]=n("span",{class:"text-info"},"123.45",-1))])]),e[33]||(e[33]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[26]||(e[26]=n("br",null,null,-1)),e[27]||(e[27]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[28]||(e[28]=n("br",null,null,-1)),e[29]||(e[29]=t(" Beispiel: ",-1)),e[30]||(e[30]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1}),i(d,null,{default:l(()=>[...e[34]||(e[34]=[t(" Optionale Einstellungen ",-1)])]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[40]||(e[40]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/mqtt/bat/"+s(o.component.id)+"/set/power_limit ",1)]),_:1}),e[35]||(e[35]=n("br",null,null,-1)),e[36]||(e[36]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[37]||(e[37]=n("br",null,null,-1)),e[38]||(e[38]=t(" Beispiel: ",-1)),e[39]||(e[39]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1}),i(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const V=b(k,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{V as default}; +import{C as g}from"./HardwareInstallation-DW5TYu17.js";import{_ as b,l as u,k as f,e as B,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"DeviceMqttBat",mixins:[g]},w={class:"device-mqtt-bat"};function z(o,e,v,W,S,T){const d=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),a=u("openwb-base-button-group-input");return f(),B("div",w,[i(d,null,{default:l(()=>[...e[1]||(e[1]=[t(" Einstellungen für MQTT Batteriespeicher ",-1)])]),_:1}),i(p,{subtype:"warning"},{default:l(()=>[e[2]||(e[2]=t(" Ist die ",-1)),e[3]||(e[3]=n("strong",null,"Benutzerverwaltung",-1)),e[4]||(e[4]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Speicher '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[5]||(e[5]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[31]||(e[31]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Speicherleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Ladung, negativ Entladung",-1)),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Beispiel: ",-1)),e[10]||(e[10]=n("span",{class:"text-info"},"-123",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/soc ",1)]),_:1}),e[11]||(e[11]=n("br",null,null,-1)),e[12]||(e[12]=t(" Ladestand des Speichers, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, gültige Werte 0 bis 100",-1)),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Beispiel: ",-1)),e[15]||(e[15]=n("span",{class:"text-info"},"95",-1))])]),e[32]||(e[32]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[16]||(e[16]=n("br",null,null,-1)),e[17]||(e[17]=t(" Geladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Beispiel: ",-1)),e[20]||(e[20]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[21]||(e[21]=n("br",null,null,-1)),e[22]||(e[22]=t(" Entladene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[23]||(e[23]=n("br",null,null,-1)),e[24]||(e[24]=t(" Beispiel: ",-1)),e[25]||(e[25]=n("span",{class:"text-info"},"123.45",-1))])]),e[33]||(e[33]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/bat/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[26]||(e[26]=n("br",null,null,-1)),e[27]||(e[27]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[28]||(e[28]=n("br",null,null,-1)),e[29]||(e[29]=t(" Beispiel: ",-1)),e[30]||(e[30]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1}),i(d,null,{default:l(()=>[...e[34]||(e[34]=[t(" Optionale Einstellungen ",-1)])]),_:1}),i(p,{subtype:"info"},{default:l(()=>[e[40]||(e[40]=t(' Wenn der Speicher die aktive Steuerung durch openWB unterstützt, kann die Option "Speicherleistung steuerbar" auf "Ja" gesetzt werden. Der Modus, um die Speicher-Entladung ins Fahrzeug zu steuern, kann in den übergreifenden Ladeeinstellungen gesetzt werden. Über folgendes Topic wird dem Speicher die Entladeleistung mitgeteilt. ',-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/mqtt/bat/"+s(o.component.id)+"/set/power_limit ",1)]),_:1}),e[35]||(e[35]=n("br",null,null,-1)),e[36]||(e[36]=t(" Entladeleistung in Watt (Float), die im Speicher gesetzt werden muss.",-1)),e[37]||(e[37]=n("br",null,null,-1)),e[38]||(e[38]=t(" Beispiel: ",-1)),e[39]||(e[39]=n("span",{class:"text-info"},"123.0",-1))])])]),_:1}),i(a,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const V=b(k,[["render",z],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/bat.vue"]]);export{V as default}; diff --git a/web/settings/assets/bat-BFJihL5b.js b/web/settings/assets/bat-BYye6D44.js similarity index 87% rename from web/settings/assets/bat-BFJihL5b.js rename to web/settings/assets/bat-BYye6D44.js index 2da93b4cce..b3de382f52 100644 --- a/web/settings/assets/bat-BFJihL5b.js +++ b/web/settings/assets/bat-BYye6D44.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceFemsBat",mixins:[r]},f={class:"device-fems-bat"};function _(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",f,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const M=p(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{M as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as o,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceFemsBat",mixins:[r]},f={class:"device-fems-bat"};function _(n,e,b,v,g,C){const i=o("openwb-base-heading"),s=o("openwb-base-number-input");return m(),u("div",f,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Anzahl der verbauten Speicher",required:"",min:1,max:2,"model-value":n.component.configuration.num,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.num"))},null,8,["model-value"])])}const M=p(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/bat.vue"]]);export{M as default}; diff --git a/web/settings/assets/bat-ChvTGfrS.js b/web/settings/assets/bat-Bkdbtauz.js similarity index 91% rename from web/settings/assets/bat-ChvTGfrS.js rename to web/settings/assets/bat-Bkdbtauz.js index 9c3989f2db..f6dfe9663d 100644 --- a/web/settings/assets/bat-ChvTGfrS.js +++ b/web/settings/assets/bat-Bkdbtauz.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as a,k as p,e as u,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeBat",mixins:[d]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>[...e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const h=m(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{h as default}; +import{C as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as a,k as p,e as u,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeBat",mixins:[d]},b={class:"device-solaredge-bat"};function f(o,e,_,c,v,x){const l=a("openwb-base-heading"),i=a("openwb-base-number-input");return p(),u("div",b,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SolarEdge Batteriespeicher ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(i,{title:"SolarEdge-Batterie-Index","model-value":o.component.configuration.battery_index,min:"1",max:"2","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.battery_index"))},{help:r(()=>[...e[3]||(e[3]=[s(" Wenn eine zweite Batterie am Wechselrichter angeschlossen ist, hier den Index 2 eintagen. Im Normalfall immer 1 eintragen. ",-1)])]),_:1},8,["model-value"])])}const h=m(g,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-LvnuQvaR.js b/web/settings/assets/bat-BodHor1L.js similarity index 89% rename from web/settings/assets/bat-LvnuQvaR.js rename to web/settings/assets/bat-BodHor1L.js index 2abe2e4409..8a4a30dae0 100644 --- a/web/settings/assets/bat-LvnuQvaR.js +++ b/web/settings/assets/bat-BodHor1L.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as i,l as r,k as s,e as o,m as p,q as l,A as n,x as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceAlphaEssBat",mixins:[a]},m={class:"device-alphaess-bat"};function u(_,e,f,b,g,h){const t=r("openwb-base-alert");return s(),o("div",m,[p(t,{subtype:"info"},{default:l(()=>[...e[0]||(e[0]=[n(" Der AlphaESS Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren.",-1),d("br",null,null,-1),n(' Zur Nutzung müssen über Webinterface oder App einmalig Zeiten für das Netzladen definiert werden. (Einstellungen -> Funktionseinstellungen -> Netzladen/Entladen). Hier einen durchgängigen Zeitraum eintragen (Ladezeit 1: 00:00-23:00, Ladezeit 2 23:00-00:00). Den Schalter "Netzladen" deaktivieren! ',-1)])]),_:1})])}const C=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/bat.vue"]]);export{C as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as i,l as r,k as s,e as o,m as p,q as l,A as n,x as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceAlphaEssBat",mixins:[a]},m={class:"device-alphaess-bat"};function u(_,e,f,b,g,h){const t=r("openwb-base-alert");return s(),o("div",m,[p(t,{subtype:"info"},{default:l(()=>[...e[0]||(e[0]=[n(" Der AlphaESS Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren.",-1),d("br",null,null,-1),n(' Zur Nutzung müssen über Webinterface oder App einmalig Zeiten für das Netzladen definiert werden. (Einstellungen -> Funktionseinstellungen -> Netzladen/Entladen). Hier einen durchgängigen Zeitraum eintragen (Ladezeit 1: 00:00-23:00, Ladezeit 2 23:00-00:00). Den Schalter "Netzladen" deaktivieren! ',-1)])]),_:1})])}const C=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat-Ikmja4Vs.js b/web/settings/assets/bat-BrzTqk8M.js similarity index 87% rename from web/settings/assets/bat-Ikmja4Vs.js rename to web/settings/assets/bat-BrzTqk8M.js index fdbecb13cb..36260799e5 100644 --- a/web/settings/assets/bat-Ikmja4Vs.js +++ b/web/settings/assets/bat-BrzTqk8M.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as p,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])]),_:1}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{D as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as t,k as p,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceHuaweiSmartLoggerBat",mixins:[s]},c={class:"device-huawei-smart-logger-bat"};function b(o,e,g,f,w,v){const i=t("openwb-base-heading"),a=t("openwb-base-number-input");return p(),u("div",c,[n(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Batteriespeicher ",-1)])]),_:1}),n(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-DjyCL_fH.js b/web/settings/assets/bat-CCSl-PUx.js similarity index 87% rename from web/settings/assets/bat-DjyCL_fH.js rename to web/settings/assets/bat-CCSl-PUx.js index 3134136bcd..f0370b8a82 100644 --- a/web/settings/assets/bat-DjyCL_fH.js +++ b/web/settings/assets/bat-CCSl-PUx.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisBat",mixins:[r]},_={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{D as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisBat",mixins:[r]},_={class:"device-solis-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-ClqXmjbq.js b/web/settings/assets/bat-CFqnjfN0.js similarity index 87% rename from web/settings/assets/bat-ClqXmjbq.js rename to web/settings/assets/bat-CFqnjfN0.js index 58b78ada47..d2dcda9b38 100644 --- a/web/settings/assets/bat-ClqXmjbq.js +++ b/web/settings/assets/bat-CFqnjfN0.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeBat",mixins:[r]},_={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeBat",mixins:[r]},_={class:"device-deye-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-Cso_FjAB.js b/web/settings/assets/bat-CdX7Dsq8.js similarity index 87% rename from web/settings/assets/bat-Cso_FjAB.js rename to web/settings/assets/bat-CdX7Dsq8.js index 0ae74a0f62..b17e36f801 100644 --- a/web/settings/assets/bat-Cso_FjAB.js +++ b/web/settings/assets/bat-CdX7Dsq8.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHBat",mixins:[r]},_={class:"device-kaco-nh-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),a=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Kaco NH Batteriespeicher ",-1)])]),_:1}),t(a,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/bat.vue"]]);export{q as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHBat",mixins:[r]},_={class:"device-kaco-nh-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),a=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Kaco NH Batteriespeicher ",-1)])]),_:1}),t(a,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/bat.vue"]]);export{q as default}; diff --git a/web/settings/assets/bat-C-8Z5eMd.js b/web/settings/assets/bat-Cg0kUFxT.js similarity index 95% rename from web/settings/assets/bat-C-8Z5eMd.js rename to web/settings/assets/bat-Cg0kUFxT.js index 03d4338aec..0cbf27edbb 100644 --- a/web/settings/assets/bat-C-8Z5eMd.js +++ b/web/settings/assets/bat-Cg0kUFxT.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as s,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(n,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":n.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":n.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateConfiguration(t,"configuration.jq_imported"))},{help:l(()=>[...e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const U=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{U as default}; +import{C as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as s,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonBat",mixins:[d]},b={class:"device-json-bat"};function v(n,e,w,j,q,C){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[7]||(e[7]=[i(" Einstellungen für JSON Batteriespeicher ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[8]||(e[8]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt (positiv Ladung, negativ Entladung) darstellt. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Ladestand",subtype:"text",required:"","model-value":n.component.configuration.jq_soc,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_soc"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Ladung",subtype:"text","model-value":n.component.configuration.jq_imported,"onUpdate:modelValue":e[5]||(e[5]=t=>n.updateConfiguration(t,"configuration.jq_imported"))},{help:l(()=>[...e[9]||(e[9]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand Entladung",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[6]||(e[6]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[10]||(e[10]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const U=s(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/bat.vue"]]);export{U as default}; diff --git a/web/settings/assets/bat-CW5lqe8H.js b/web/settings/assets/bat-Cn1BvUsy.js similarity index 87% rename from web/settings/assets/bat-CW5lqe8H.js rename to web/settings/assets/bat-Cn1BvUsy.js index c4b5c2d5e5..8af422d4b8 100644 --- a/web/settings/assets/bat-CW5lqe8H.js +++ b/web/settings/assets/bat-Cn1BvUsy.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as d,e as m,m as n,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceStuderBat",mixins:[a]},_={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return d(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as t,k as d,e as m,m as n,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceStuderBat",mixins:[a]},_={class:"device-studer-bat"};function b(o,e,f,v,g,w){const i=t("openwb-base-heading"),s=t("openwb-base-number-input");return d(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Studer Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-CrV_lSyl.js b/web/settings/assets/bat-CrV_lSyl.js deleted file mode 100644 index b354172ab2..0000000000 --- a/web/settings/assets/bat-CrV_lSyl.js +++ /dev/null @@ -1 +0,0 @@ -import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l,k as a,e as i,m as u,q as c,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceQCellsBat",mixins:[o]},p={class:"device-qcells-bat"};function m(_,n,b,g,f,h){const s=l("openwb-base-alert");return a(),i("div",p,[u(s,{subtype:"info"},{default:c(()=>[...n[0]||(n[0]=[e(" Die aktive Speichersteuerung erfolgt über das Solax Remote Control Modbus-Protokoll (Mode 1, Active Power Control).",-1),t("br",null,null,-1),e(" Unterstützte Hardware: QCells Q.VOLT HYB-G3-3P (Solax Gen4).",-1),t("br",null,null,-1),e(" openWB berechnet den Sollwert aus Hauslast und PV-Leistung.",-1),t("br",null,null,-1),e(" Damit bei 0W Speicher-Sollwert die Batterie nicht entlädt, muss die Hausanschlussgrenze am EVU-Zähler (max_total_power) korrekt gesetzt sein.",-1),t("br",null,null,-1),e(' Bitte die Felder "Maximale Ladeleistung" und "Maximale Entladeleistung" unter Ladeeinstellungen > Speichersteuerung entsprechend der Leistungsfähigkeit des Wechselrichters und der angeschlossenen Batterie konfigurieren. ',-1)])]),_:1})])}const L=r(d,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/bat.vue"]]);export{L as default}; diff --git a/web/settings/assets/bat-g5CpLXKe.js b/web/settings/assets/bat-D1f46Np3.js similarity index 87% rename from web/settings/assets/bat-g5CpLXKe.js rename to web/settings/assets/bat-D1f46Np3.js index cd3323d8b3..103efb4fd9 100644 --- a/web/settings/assets/bat-g5CpLXKe.js +++ b/web/settings/assets/bat-D1f46Np3.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolakonOneBat",mixins:[r]},c={class:"device-solakon-one-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/bat.vue"]]);export{D as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolakonOneBat",mixins:[r]},c={class:"device-solakon-one-bat"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",c,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Batteriespeicher ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-DM6pfv3v.js b/web/settings/assets/bat-D6j0cSWQ.js similarity index 87% rename from web/settings/assets/bat-DM6pfv3v.js rename to web/settings/assets/bat-D6j0cSWQ.js index 9d9237436e..ddf4f45561 100644 --- a/web/settings/assets/bat-DM6pfv3v.js +++ b/web/settings/assets/bat-D6j0cSWQ.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVenusCEBat",mixins:[r]},c={class:"device-venus_c_e-bat"};function b(o,e,f,v,g,C){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für Marstek Venus C, E Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVenusCEBat",mixins:[r]},c={class:"device-venus_c_e-bat"};function b(o,e,f,v,g,C){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für Marstek Venus C, E Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-CjexnhY1.js b/web/settings/assets/bat-DFNKb3el.js similarity index 87% rename from web/settings/assets/bat-CjexnhY1.js rename to web/settings/assets/bat-DFNKb3el.js index 40f6240884..4412421838 100644 --- a/web/settings/assets/bat-CjexnhY1.js +++ b/web/settings/assets/bat-DFNKb3el.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as o,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSunnyIslandBat",mixins:[r]},c={class:"device-sunnyisland-bat"};function b(n,e,f,v,g,w){const s=o("openwb-base-heading"),i=o("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Sunny Island Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const h=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-Cjlfvz8n.js b/web/settings/assets/bat-DJLzkMEi.js similarity index 91% rename from web/settings/assets/bat-Cjlfvz8n.js rename to web/settings/assets/bat-DJLzkMEi.js index 0a2e167554..082777185e 100644 --- a/web/settings/assets/bat-Cjlfvz8n.js +++ b/web/settings/assets/bat-DJLzkMEi.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as l,e as g,m as t,q as i,A as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSigenergyBat",mixins:[u]},c={class:"device-sigenergy-bat"};function _(r,e,f,v,h,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),g("div",c,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Sigenergy Batteriespeicher ",-1)])]),_:1}),t(a,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[o(" Der Sigenergy Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. Die aktive Beladung des Speichers ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":r.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>r.updateConfiguration(d,"configuration.modbus_id"))},{help:i(()=>[...e[3]||(e[3]=[o(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const E=m(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{E as default}; +import{C as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as l,e as g,m as t,q as i,A as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSigenergyBat",mixins:[u]},c={class:"device-sigenergy-bat"};function _(r,e,f,v,h,S){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),g("div",c,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Sigenergy Batteriespeicher ",-1)])]),_:1}),t(a,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[o(" Der Sigenergy Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. Die aktive Beladung des Speichers ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":r.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=d=>r.updateConfiguration(d,"configuration.modbus_id"))},{help:i(()=>[...e[3]||(e[3]=[o(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const E=m(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/bat.vue"]]);export{E as default}; diff --git a/web/settings/assets/bat-DGxxvF09.js b/web/settings/assets/bat-DZyRWMSA.js similarity index 87% rename from web/settings/assets/bat-DGxxvF09.js rename to web/settings/assets/bat-DZyRWMSA.js index d6273bd05d..14ebfeca23 100644 --- a/web/settings/assets/bat-DGxxvF09.js +++ b/web/settings/assets/bat-DZyRWMSA.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Victron Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID Speicher",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceVictronBat",mixins:[a]},_={class:"device-victron-bat"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Victron Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID Speicher",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-P6JfJZmF.js b/web/settings/assets/bat-DcL07sVl.js similarity index 89% rename from web/settings/assets/bat-P6JfJZmF.js rename to web/settings/assets/bat-DcL07sVl.js index 56af6670e6..dddcb5b744 100644 --- a/web/settings/assets/bat-P6JfJZmF.js +++ b/web/settings/assets/bat-DcL07sVl.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as p,k as t,e as c,y as i,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function f(s,e,v,b,l,g){const n=p("openwb-base-alert");return t(),c("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])]),_:1})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])]),_:1}))])}const h=d(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{h as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as p,k as t,e as c,y as i,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSonnenbatterieBat",mixins:[a]},m={class:"device-sonnenbatterie-bat"};function f(s,e,v,b,l,g){const n=p("openwb-base-alert");return t(),c("div",m,[s.device.configuration.variant===3?(t(),i(n,{key:0,subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Die Batterie lässt sich aktiv durch openWB steuern, da die JSON-API v2 verwendet wird. Dazu muss zwingend ein gültiges API-Token eingetragen sein. ",-1)])]),_:1})):(t(),i(n,{key:1,subtype:"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Die Batterie kann nicht aktiv durch openWB gesteuert werden, da die konfigurierte Datenverbindung dies nicht unterstützt. Es wird für die aktive Steuerung zwingend die 'JSON-API v2' benötigt. ",-1)])]),_:1}))])}const h=d(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/bat.vue"]]);export{h as default}; diff --git a/web/settings/assets/bat-CcOi7qeq.js b/web/settings/assets/bat-DgH1cQZt.js similarity index 87% rename from web/settings/assets/bat-CcOi7qeq.js rename to web/settings/assets/bat-DgH1cQZt.js index 9db891a6f2..304fe1566c 100644 --- a/web/settings/assets/bat-CcOi7qeq.js +++ b/web/settings/assets/bat-DgH1cQZt.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{q as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssBat",mixins:[r]},c={class:"device-fox_ess-bat"};function b(o,e,f,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Batteriespeicher ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/bat.vue"]]);export{q as default}; diff --git a/web/settings/assets/bat-C_Uav9BA.js b/web/settings/assets/bat-Np9R5pTH.js similarity index 88% rename from web/settings/assets/bat-C_Uav9BA.js rename to web/settings/assets/bat-Np9R5pTH.js index 7506fc3be4..3089cddef6 100644 --- a/web/settings/assets/bat-C_Uav9BA.js +++ b/web/settings/assets/bat-Np9R5pTH.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as r,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbBatkitBat",mixins:[p]},_={class:"device-openwb-batkit-bat"};function b(t,e,f,v,w,g){const i=o("openwb-base-heading"),s=o("openwb-base-select-input");return l(),m("div",_,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Batteriespeicher ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.version"))},null,8,["model-value"])])}const $=r(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_bat_kit/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-CWWcSN5h.js b/web/settings/assets/bat-QqXQiyrh.js similarity index 86% rename from web/settings/assets/bat-CWWcSN5h.js rename to web/settings/assets/bat-QqXQiyrh.js index d161f6b0e0..cd637f5023 100644 --- a/web/settings/assets/bat-CWWcSN5h.js +++ b/web/settings/assets/bat-QqXQiyrh.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as o,k as i,e as s,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceBatterXBat",mixins:[r]},l={class:"device-batterx-bat"};function d(_,e,b,u,f,x){const t=o("openwb-base-alert");return i(),s("div",l,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Der BatterX Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. ",-1)])]),_:1})])}const $=n(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/bat.vue"]]);export{$ as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as n,l as o,k as i,e as s,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceBatterXBat",mixins:[r]},l={class:"device-batterx-bat"};function d(_,e,b,u,f,x){const t=o("openwb-base-alert");return i(),s("div",l,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Der BatterX Speicher kann die Speicherentladung bei aktiver Speichersteuerung nur komplett sperren. Der teilweise Ausgleich durch Übergabe einer Entladeleistung an den Speicher ist nicht möglich. ",-1)])]),_:1})])}const $=n(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/bat.vue"]]);export{$ as default}; diff --git a/web/settings/assets/bat-VZSm2USJ.js b/web/settings/assets/bat-VZSm2USJ.js new file mode 100644 index 0000000000..888bcb88f0 --- /dev/null +++ b/web/settings/assets/bat-VZSm2USJ.js @@ -0,0 +1 @@ +import{C as o}from"./HardwareInstallation-DW5TYu17.js";import{_ as r,l as i,k as l,e as a,m as c,q as d,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceQCellsBat",mixins:[o]},u={class:"device-qcells-bat"};function m(b,n,_,g,f,h){const s=i("openwb-base-alert");return l(),a("div",u,[c(s,{subtype:"info"},{default:d(()=>[...n[0]||(n[0]=[e(" Die aktive Speichersteuerung erfolgt über das Solax Remote Control Modbus-Protokoll (Mode 4, Push Power-Positive/Negative).",-1),t("br",null,null,-1),e(" Unterstützte Hardware: QCells Q.VOLT HYB-G3-3P (Solax Gen4).",-1),t("br",null,null,-1),e(" openWB übergibt die Speicherleistung direkt als Push-Power an den Wechselrichter (0W = Entladesperre).",-1),t("br",null,null,-1),e(' Bitte die Felder "Maximale Ladeleistung" und "Maximale Entladeleistung" unter Ladeeinstellungen > Speichersteuerung entsprechend der Leistungsfähigkeit des Wechselrichters und der angeschlossenen Batterie konfigurieren. ',-1)])]),_:1})])}const S=r(p,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-BLn3ChiW.js b/web/settings/assets/bat-W2j8bFF3.js similarity index 90% rename from web/settings/assets/bat-BLn3ChiW.js rename to web/settings/assets/bat-W2j8bFF3.js index fcd60f4a3d..b33320cba1 100644 --- a/web/settings/assets/bat-BLn3ChiW.js +++ b/web/settings/assets/bat-W2j8bFF3.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as t,k as u,e as m,m as i,q as d,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},f={class:"device-openwb-flex-bat"};function _(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",f,[i(a,null,{default:d(()=>[...e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])]),_:1}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const S=r(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{S as default}; +import{C as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as r,l as t,k as u,e as m,m as i,q as d,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenwbFlexBat",mixins:[l]},f={class:"device-openwb-flex-bat"};function _(o,e,v,w,g,x){const a=t("openwb-base-heading"),p=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",f,[i(a,null,{default:d(()=>[...e[2]||(e[2]=[b(" Einstellungen für openWB-Flex Batteriespeicher ",-1)])]),_:1}),i(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"SDM120"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const S=r(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/bat.vue"]]);export{S as default}; diff --git a/web/settings/assets/bat-DM7fO5hq.js b/web/settings/assets/bat-Y4Bo2-xr.js similarity index 90% rename from web/settings/assets/bat-DM7fO5hq.js rename to web/settings/assets/bat-Y4Bo2-xr.js index ec27e8ab41..068078b548 100644 --- a/web/settings/assets/bat-DM7fO5hq.js +++ b/web/settings/assets/bat-Y4Bo2-xr.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as d,e as c,m as i,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>[...e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])]),_:1}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const q=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{q as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as t,k as d,e as c,m as i,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMTecBat",mixins:[m]},_={class:"device-mtec-bat"};function f(o,e,v,g,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-select-input"),u=t("openwb-base-number-input");return d(),c("div",_,[i(p,null,{default:a(()=>[...e[2]||(e[2]=[s(" Einstellungen für M-Tec Batteriespeicher ",-1)])]),_:1}),i(r,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:2,text:"Gen 2"},{value:3,text:"Gen 3"}],"model-value":o.component.configuration.generation,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.generation"))},null,8,["model-value"]),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const q=l(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/bat.vue"]]);export{q as default}; diff --git a/web/settings/assets/bat-BAPssBwn.js b/web/settings/assets/bat-fTz5eqR6.js similarity index 86% rename from web/settings/assets/bat-BAPssBwn.js rename to web/settings/assets/bat-fTz5eqR6.js index 0768ec3daa..9cd12d40ec 100644 --- a/web/settings/assets/bat-BAPssBwn.js +++ b/web/settings/assets/bat-fTz5eqR6.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as r,k as s,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPlenticoreBat",mixins:[o]},m={class:"device-kostal-plenticore-bat"};function d(_,e,u,b,f,k){const t=r("openwb-base-alert");return s(),i("div",m,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' Für die aktive Batteriesteuerung muss die Funktion "Extern über Protokoll (Modbus TCP)" in der Nutzeroberfläche des Plenticore mit dem Handwerkerzugang aktiviert werden. ',-1)])]),_:1})])}const N=n(l,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/bat.vue"]]);export{N as default}; +import{C as o}from"./HardwareInstallation-DW5TYu17.js";import{_ as n,l as r,k as s,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPlenticoreBat",mixins:[o]},m={class:"device-kostal-plenticore-bat"};function d(_,e,u,b,f,k){const t=r("openwb-base-alert");return s(),i("div",m,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' Für die aktive Batteriesteuerung muss die Funktion "Extern über Protokoll (Modbus TCP)" in der Nutzeroberfläche des Plenticore mit dem Handwerkerzugang aktiviert werden. ',-1)])]),_:1})])}const N=n(l,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/bat.vue"]]);export{N as default}; diff --git a/web/settings/assets/bat-CA1pDpyc.js b/web/settings/assets/bat-nFWbkTuH.js similarity index 92% rename from web/settings/assets/bat-CA1pDpyc.js rename to web/settings/assets/bat-nFWbkTuH.js index 51891f60e6..2d33a7a880 100644 --- a/web/settings/assets/bat-CA1pDpyc.js +++ b/web/settings/assets/bat-nFWbkTuH.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as d,m as a,q as b,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxBat",mixins:[l]},f={class:"device-solarmax-bat"};function g(o,e,v,x,w,S){const r=n("openwb-base-alert"),s=n("openwb-base-number-input"),u=n("openwb-base-button-group-input");return m(),d("div",f,[a(r,{subtype:"info"},{default:b(()=>[...e[2]||(e[2]=[i(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden.",-1),c("br",null,null,-1),i(' Die aktive Speichersteuerung ist ab Solarmax Software Version 3.4.4 verfügbar. Zur Nutzung muss die Funktion "Connectivity+" durch den Solarmax Support (nicht openWB Support) freigeschaltet werden. ',-1)])]),_:1}),a(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),a(u,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const D=p(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{D as default}; +import{C as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as d,m as a,q as b,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxBat",mixins:[l]},f={class:"device-solarmax-bat"};function g(o,e,v,x,w,S){const r=n("openwb-base-alert"),s=n("openwb-base-number-input"),u=n("openwb-base-button-group-input");return m(),d("div",f,[a(r,{subtype:"info"},{default:b(()=>[...e[2]||(e[2]=[i(" Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Batteriespeicher sind Teil eines Hybridsystems. Daher muss auch eine Komponente Wechselrichter angelegt werden.",-1),c("br",null,null,-1),i(' Die aktive Speichersteuerung ist ab Solarmax Software Version 3.4.4 verfügbar. Zur Nutzung muss die Funktion "Connectivity+" durch den Solarmax Support (nicht openWB Support) freigeschaltet werden. ',-1)])]),_:1}),a(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),a(u,{title:"Speicherleistung steuerbar",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":o.component.configuration.power_limit_controllable,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.power_limit_controllable"))},null,8,["model-value"])])}const D=p(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/bat.vue"]]);export{D as default}; diff --git a/web/settings/assets/bat-C5vCaakP.js b/web/settings/assets/bat-nQylh6hI.js similarity index 97% rename from web/settings/assets/bat-C5vCaakP.js rename to web/settings/assets/bat-nQylh6hI.js index a21d2b5428..ad5faf06aa 100644 --- a/web/settings/assets/bat-C5vCaakP.js +++ b/web/settings/assets/bat-nQylh6hI.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as d,k as p,e as g,m as l,q as i,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>[...e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])]),_:1}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>[...e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>[...e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; +import{C as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as d,k as p,e as g,m as l,q as i,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpBat",mixins:[u]},b={class:"device-http-bat"};function f(t,e,w,v,k,S){const s=d("openwb-base-heading"),o=d("openwb-base-text-input");return p(),g("div",b,[l(s,null,{default:i(()=>[...e[7]||(e[7]=[n(" Einstellungen für Http Batteriespeicher ",-1)])]),_:1}),l(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:i(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Ladestand",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.soc_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.soc_path"))},{help:i(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) in Prozent darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:i(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:i(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:i(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand laden",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:i(()=>[...e[13]||(e[13]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt. ",-1)])]),_:1},8,["model-value"]),l(o,{title:"Pfad für Zählerstand entladen",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[6]||(e[6]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:i(()=>[...e[14]||(e[14]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const C=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/bat.vue"]]);export{C as default}; diff --git a/web/settings/assets/bat_smart_energy-Czb4GYtP.js b/web/settings/assets/bat_smart_energy-Bc52yzFg.js similarity index 88% rename from web/settings/assets/bat_smart_energy-Czb4GYtP.js rename to web/settings/assets/bat_smart_energy-Bc52yzFg.js index 0c52543af8..547175c339 100644 --- a/web/settings/assets/bat_smart_energy-Czb4GYtP.js +++ b/web/settings/assets/bat_smart_energy-Bc52yzFg.js @@ -1 +1 @@ -import{C as i}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as p,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[i]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{M as default}; +import{C as i}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as o,k as p,e as u,m as t,q as d,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSunnyBoyBatSmartEnergy",mixins:[i]},b={class:"device-sunnyboy-bat-smart-energy"};function c(n,e,f,g,y,v){const s=o("openwb-base-heading"),r=o("openwb-base-number-input");return p(),u("div",b,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[_(" Einstellungen für SMA Sunny Boy Smart Energy Batteriespeicher ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(l,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/bat_smart_energy.vue"]]);export{M as default}; diff --git a/web/settings/assets/chargePoint-Bd2Kp2l0.js b/web/settings/assets/chargePoint-B5VvdkvH.js similarity index 90% rename from web/settings/assets/chargePoint-Bd2Kp2l0.js rename to web/settings/assets/chargePoint-B5VvdkvH.js index e3f795b717..fd3def83ba 100644 --- a/web/settings/assets/chargePoint-Bd2Kp2l0.js +++ b/web/settings/assets/chargePoint-B5VvdkvH.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{q as default}; +import{C as p}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointSatellite",mixins:[p]},c={class:"charge-point-openwb-satellite"};function g(n,e,f,b,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_series2_satellit/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-Dedwz5Jy.js b/web/settings/assets/chargePoint-C5jB_bOz.js similarity index 90% rename from web/settings/assets/chargePoint-Dedwz5Jy.js rename to web/settings/assets/chargePoint-C5jB_bOz.js index d4c5ea6666..47a87b719c 100644 --- a/web/settings/assets/chargePoint-Dedwz5Jy.js +++ b/web/settings/assets/chargePoint-C5jB_bOz.js @@ -1 +1 @@ -import{C as p}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{q as default}; +import{C as p}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as s,l as t,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointExternalOpenwb",mixins:[p]},c={class:"charge-point-external-openwb"};function g(n,e,b,f,h,w){const r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),m("div",c,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":n.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o-1,"configuration.duo_num"))},{help:d(()=>[...e[2]||(e[2]=[l(' Bei einfachen Ladepunkten ist hier immer eine "1" einzutragen. Lediglich bei einer openWB Duo kann mit "2" der zweite enthaltene Ladepunkt angesprochen werden. ',-1)])]),_:1},8,["model-value"])])}const q=s(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/external_openwb/chargePoint.vue"]]);export{q as default}; diff --git a/web/settings/assets/chargePoint-UK4SBHnE.js b/web/settings/assets/chargePoint-CYTSaRoE.js similarity index 90% rename from web/settings/assets/chargePoint-UK4SBHnE.js rename to web/settings/assets/chargePoint-CYTSaRoE.js index 46f716b561..84923a6fe1 100644 --- a/web/settings/assets/chargePoint-UK4SBHnE.js +++ b/web/settings/assets/chargePoint-CYTSaRoE.js @@ -1 +1 @@ -import{C as a}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as i,l as p,k as s,e as u,m as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"ChargePointOpenwbDcAdapter",mixins:[a]},d={class:"charge-point-openwb-dc-adapter"};function m(e,o,g,f,c,b){const n=p("openwb-base-text-input");return s(),u("div",d,[r(n,{title:"URL",subtype:"url",required:"","model-value":e.chargePoint.configuration.url,"onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.url"))},null,8,["model-value"]),r(n,{title:"Benutzername",subtype:"user","model-value":e.chargePoint.configuration.user,"onUpdate:modelValue":o[1]||(o[1]=t=>e.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),r(n,{title:"Passwort",subtype:"password","model-value":e.chargePoint.configuration.password,"onUpdate:modelValue":o[2]||(o[2]=t=>e.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const $=i(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{$ as default}; +import{C as a}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as i,l as p,k as s,e as u,m as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"ChargePointOpenwbDcAdapter",mixins:[a]},d={class:"charge-point-openwb-dc-adapter"};function m(e,o,g,f,c,b){const n=p("openwb-base-text-input");return s(),u("div",d,[r(n,{title:"URL",subtype:"url",required:"","model-value":e.chargePoint.configuration.url,"onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.url"))},null,8,["model-value"]),r(n,{title:"Benutzername",subtype:"user","model-value":e.chargePoint.configuration.user,"onUpdate:modelValue":o[1]||(o[1]=t=>e.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),r(n,{title:"Passwort",subtype:"password","model-value":e.chargePoint.configuration.password,"onUpdate:modelValue":o[2]||(o[2]=t=>e.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const $=i(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_dc_adapter/chargePoint.vue"]]);export{$ as default}; diff --git a/web/settings/assets/chargePoint-CIyU28Hf.js b/web/settings/assets/chargePoint-CuYVViGz.js similarity index 90% rename from web/settings/assets/chargePoint-CIyU28Hf.js rename to web/settings/assets/chargePoint-CuYVViGz.js index dfddd0d1f6..b1d7879158 100644 --- a/web/settings/assets/chargePoint-CIyU28Hf.js +++ b/web/settings/assets/chargePoint-CuYVViGz.js @@ -1 +1 @@ -import{C as s}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as p,l as n,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>[...e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])]),_:1},8,["model-value"])])}const W=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{W as default}; +import{C as s}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as p,l as n,k as u,e as m,m as i,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"ChargePointSmartwb",mixins:[s]},b={class:"charge-point-smartwb"};function c(t,e,f,_,w,v){const r=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),m("div",b,[i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Wartezeit",required:"",min:2,max:10,unit:"s","model-value":t.chargePoint.configuration.timeout,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:d(()=>[...e[2]||(e[2]=[l(" Zeitangabe in Sekunden, für die auf eine Antwort des Ladepunktes gewartet wird. Wird diese Zeit überschritten, so wird von einer Kommunikationsstörung ausgegangen. ",-1)])]),_:1},8,["model-value"])])}const W=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/smartwb/chargePoint.vue"]]);export{W as default}; diff --git a/web/settings/assets/chargePoint-DWLMU56i.js b/web/settings/assets/chargePoint-UefwMnyD.js similarity index 86% rename from web/settings/assets/chargePoint-DWLMU56i.js rename to web/settings/assets/chargePoint-UefwMnyD.js index c8668fe101..d4c42eb12b 100644 --- a/web/settings/assets/chargePoint-DWLMU56i.js +++ b/web/settings/assets/chargePoint-UefwMnyD.js @@ -1 +1 @@ -import{C as r}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as i,l as p,k as s,e as a,m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const B=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{B as default}; +import{C as r}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as i,l as p,k as s,e as a,m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"ChargePointOpenwbPro",mixins:[r]},d={class:"charge-point-openwb-pro"};function u(o,e,_,l,f,g){const t=p("openwb-base-text-input");return s(),a("div",d,[m(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.chargePoint.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])])}const B=i(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/chargePoint.vue"]]);export{B as default}; diff --git a/web/settings/assets/chargePoint-sYavUqxv.js b/web/settings/assets/chargePoint-XTkGOmLT.js similarity index 93% rename from web/settings/assets/chargePoint-sYavUqxv.js rename to web/settings/assets/chargePoint-XTkGOmLT.js index 4dfe6f1735..0755d12ef6 100644 --- a/web/settings/assets/chargePoint-sYavUqxv.js +++ b/web/settings/assets/chargePoint-XTkGOmLT.js @@ -1 +1 @@ -import{C as u}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as p,l as t,k as i,e as d,m,y as l,q as c,A as g,u as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},B={class:"charge-point-internal-openwb"};function h(e,n,b,k,v,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",B,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"},{value:"se",text:"openWB SE 11kW"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":n[0]||(n[0]=o=>a.updateMode(o))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"||e.chargePoint.configuration.mode=="se"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":n[1]||(n[1]=o=>e.updateConfiguration(o-1,"configuration.duo_num"))},{help:c(()=>[...n[2]||(n[2]=[g(' Bei einer openWB Duo oder openWB SE Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. Bei einer openWB SE mit einem Ladepunkt ist hier eine 1 einzutragen. ',-1)])]),_:1},8,["model-value"])):f("",!0)])}const D=p(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{D as default}; +import{C as u}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as p,l as t,k as i,e as d,m,y as l,q as c,A as g,u as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"ChargePointInternalOpenwb",mixins:[u],methods:{updateMode(e){["series","socket","pro_plus"].includes(e)&&this.updateConfiguration(0,"configuration.duo_num"),this.updateConfiguration(e,"configuration.mode")}}},B={class:"charge-point-internal-openwb"};function h(e,n,b,k,v,a){const r=t("openwb-base-select-input"),s=t("openwb-base-number-input");return i(),d("div",B,[m(r,{title:"Bauart","not-selected":"Bitte auswählen",required:"",options:[{value:"series",text:"openWB series1/2 in den Varianten custom, standard & standard+"},{value:"duo",text:"openWB series1/2 Duo"},{value:"socket",text:"openWB series1/2 Buchse"},{value:"pro_plus",text:"openWB Pro+"},{value:"se",text:"openWB SE 11kW"}],"model-value":e.chargePoint.configuration.mode,"onUpdate:modelValue":n[0]||(n[0]=o=>a.updateMode(o))},null,8,["model-value"]),e.chargePoint.configuration.mode=="duo"||e.chargePoint.configuration.mode=="se"?(i(),l(s,{key:0,title:"Ladepunkt-Nummer",required:"",min:1,max:2,"model-value":e.chargePoint.configuration.duo_num+1,"onUpdate:modelValue":n[1]||(n[1]=o=>e.updateConfiguration(o-1,"configuration.duo_num"))},{help:c(()=>[...n[2]||(n[2]=[g(' Bei einer openWB Duo oder openWB SE Duo können mit "1" oder "2" die beiden enthaltenen Ladepunkte angesprochen werden. Bei einer openWB SE mit einem Ladepunkt ist hier eine 1 einzutragen. ',-1)])]),_:1},8,["model-value"])):f("",!0)])}const D=p(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/chargePoint.vue"]]);export{D as default}; diff --git a/web/settings/assets/chargePoint-CZkD_QGG.js b/web/settings/assets/chargePoint-hTZAsZ1C.js similarity index 98% rename from web/settings/assets/chargePoint-CZkD_QGG.js rename to web/settings/assets/chargePoint-hTZAsZ1C.js index faea696080..bddf81a3e8 100644 --- a/web/settings/assets/chargePoint-CZkD_QGG.js +++ b/web/settings/assets/chargePoint-hTZAsZ1C.js @@ -1 +1 @@ -import{C as d}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as g,l as p,k as a,e as m,m as l,q as i,A as t,x as e,J as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>[...n[0]||(n[0]=[t(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])]),_:1}),l(u,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Ladepunkt '`+r(o.chargePoint.name)+"' ("+r(o.chargePoint.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(u,{subtype:"info"},{default:i(()=>[n[76]||(n[76]=e("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format). ",-1)),n[77]||(n[77]=e("p",null,' In Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics "openWB/set/chargepoint/id/get/..." und "openWB/chargepoint/set/..." bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ',-1)),e("ol",null,[e("li",null,[n[15]||(n[15]=t(" von openWB gesendete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"12.34",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"1",-1))])])]),e("li",null,[n[41]||(n[41]=t(" von openWB zwingend erwartete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"3",-1))])])]),e("li",null,[n[75]||(n[75]=t(" optionale Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[44]||(n[44]=e("br",null,null,-1)),n[45]||(n[45]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[46]||(n[46]=e("br",null,null,-1)),n[47]||(n[47]=t(" Beispiel: ",-1)),n[48]||(n[48]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[49]||(n[49]=e("br",null,null,-1)),n[50]||(n[50]=t(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[51]||(n[51]=e("br",null,null,-1)),n[52]||(n[52]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[53]||(n[53]=e("br",null,null,-1)),n[54]||(n[54]=t(" Beispiel: ",-1)),n[55]||(n[55]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[56]||(n[56]=e("br",null,null,-1)),n[57]||(n[57]=t(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[58]||(n[58]=e("br",null,null,-1)),n[59]||(n[59]=t(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[60]||(n[60]=e("br",null,null,-1)),n[61]||(n[61]=t(" Beispiel: ",-1)),n[62]||(n[62]=e("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[63]||(n[63]=e("br",null,null,-1)),n[64]||(n[64]=t(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[65]||(n[65]=e("br",null,null,-1)),n[66]||(n[66]=t(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[67]||(n[67]=e("br",null,null,-1)),n[68]||(n[68]=t(" Beispiel: ",-1)),n[69]||(n[69]=e("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid ",1)]),_:1}),n[70]||(n[70]=e("br",null,null,-1)),n[71]||(n[71]=t(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert. Der Tag darf nur einmalig nach dem Scannen gesendet werden. Nach der Verarbeitung leert openWB das Topic.",-1)),n[72]||(n[72]=e("br",null,null,-1)),n[73]||(n[73]=t(" Beispiel: ",-1)),n[74]||(n[74]=e("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1})])}const A=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{A as default}; +import{C as d}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as g,l as p,k as a,e as m,m as l,q as i,A as t,x as e,J as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"ChargePointMqtt",mixins:[d]},f={class:"charge-point-mqtt"};function k(o,n,B,w,v,W){const u=p("openwb-base-alert"),s=p("openwb-base-copy-to-clipboard");return a(),m("div",f,[l(u,{subtype:"danger"},{default:i(()=>[...n[0]||(n[0]=[t(" Dieser Ladepunkt-Typ darf nur in Kombination mit dem Simulator zur Fehleranalyse genutzt werden. Eine andere Verwendung ist laut den Nutzungsbedingungen untersagt. ",-1)])]),_:1}),l(u,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Ladepunkt '`+r(o.chargePoint.name)+"' ("+r(o.chargePoint.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(u,{subtype:"info"},{default:i(()=>[n[76]||(n[76]=e("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten von speziellen Topics im Broker gelesen bzw. geschrieben werden. Alle Daten werden als gültiges JSON gesendet und auch so erwartet! Zahlen mit Nachkommastellen (Float) verwenden einen Punkt als Dezimaltrenner (internationales Format). ",-1)),n[77]||(n[77]=e("p",null,' In Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics "openWB/set/chargepoint/id/get/..." und "openWB/chargepoint/set/..." bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ',-1)),e("ol",null,[e("li",null,[n[15]||(n[15]=t(" von openWB gesendete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/current ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Sollwert des Ladestroms, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"12.34",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/mqtt/chargepoint/"+r(o.chargePoint.id)+"/set/phases_to_use ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Sollwert für die Anzahl Phasen als Ganzzahl (Integer). Mögliche Werte: 1 oder 3",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"1",-1))])])]),e("li",null,[n[41]||(n[41]=t(" von openWB zwingend erwartete Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/currents ",1)]),_:1}),n[16]||(n[16]=e("br",null,null,-1)),n[17]||(n[17]=t(" Aktuelle Phasenströme des Ladepunktes, Array mit drei Zahlen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[18]||(n[18]=e("br",null,null,-1)),n[19]||(n[19]=t(" Beispiel: ",-1)),n[20]||(n[20]=e("span",{class:"text-info"},"[6.78,6.89,6.94]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power ",1)]),_:1}),n[21]||(n[21]=e("br",null,null,-1)),n[22]||(n[22]=t(" Leistung in Watt, mit Nachkommastellen (Float), positiv (laden) oder negativ (entladen, falls vom Ladepunkt unterstützt).",-1)),n[23]||(n[23]=e("br",null,null,-1)),n[24]||(n[24]=t(" Beispiel: ",-1)),n[25]||(n[25]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/plug_state ",1)]),_:1}),n[26]||(n[26]=e("br",null,null,-1)),n[27]||(n[27]=t(" Zeigt an, ob aktuell ein Fahrzeug angesteckt ist, Wahrheitswert (Bool).",-1)),n[28]||(n[28]=e("br",null,null,-1)),n[29]||(n[29]=t(" Beispiel: ",-1)),n[30]||(n[30]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/charge_state ",1)]),_:1}),n[31]||(n[31]=e("br",null,null,-1)),n[32]||(n[32]=t(" Zeigt an, ob ein Ladevorgang aktiv ist, Wahrheitswert (Bool).",-1)),n[33]||(n[33]=e("br",null,null,-1)),n[34]||(n[34]=t(" Beispiel: ",-1)),n[35]||(n[35]=e("span",{class:"text-info"},"true",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/phases_in_use ",1)]),_:1}),n[36]||(n[36]=e("br",null,null,-1)),n[37]||(n[37]=t(" Anzahl der Phasen, mit denen geladen wird, Ganzzahl (Integer). Mögliche Werte: 0 bis 3",-1)),n[38]||(n[38]=e("br",null,null,-1)),n[39]||(n[39]=t(" Beispiel: ",-1)),n[40]||(n[40]=e("span",{class:"text-info"},"3",-1))])])]),e("li",null,[n[75]||(n[75]=t(" optionale Topics ",-1)),e("ul",null,[e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/imported ",1)]),_:1}),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Geladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[44]||(n[44]=e("br",null,null,-1)),n[45]||(n[45]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[46]||(n[46]=e("br",null,null,-1)),n[47]||(n[47]=t(" Beispiel: ",-1)),n[48]||(n[48]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/exported ",1)]),_:1}),n[49]||(n[49]=e("br",null,null,-1)),n[50]||(n[50]=t(" Entladene Energie in Wh, mit Nachkommastellen (Float), nur positiv",-1)),n[51]||(n[51]=e("br",null,null,-1)),n[52]||(n[52]=t(" Wird dieses Topic nicht vom Ladepunkt gesendet, so wird intern ein Zählerstand anhand der Leistung simuliert.",-1)),n[53]||(n[53]=e("br",null,null,-1)),n[54]||(n[54]=t(" Beispiel: ",-1)),n[55]||(n[55]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/voltages ",1)]),_:1}),n[56]||(n[56]=e("br",null,null,-1)),n[57]||(n[57]=t(" Aktuelle Phasenspannungen des Ladepunktes, Array mit drei Zahlen (Float), nur positiv.",-1)),n[58]||(n[58]=e("br",null,null,-1)),n[59]||(n[59]=t(" Die Spannungen werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[60]||(n[60]=e("br",null,null,-1)),n[61]||(n[61]=t(" Beispiel: ",-1)),n[62]||(n[62]=e("span",{class:"text-info"},"[230.12,231.08,232.54]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/power_factors ",1)]),_:1}),n[63]||(n[63]=e("br",null,null,-1)),n[64]||(n[64]=t(" Aktuelle Leistungsfaktoren des Ladepunktes, Array mit drei Zahlen (Float), Wertebereich von -1 bis 1.",-1)),n[65]||(n[65]=e("br",null,null,-1)),n[66]||(n[66]=t(" Die Leistungsfaktoren werden nicht verarbeitet, sondern lediglich im Status angezeigt.",-1)),n[67]||(n[67]=e("br",null,null,-1)),n[68]||(n[68]=t(" Beispiel: ",-1)),n[69]||(n[69]=e("span",{class:"text-info"},"[-0.87,0.96,1.0]",-1))]),e("li",null,[l(s,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/chargepoint/"+r(o.chargePoint.id)+"/get/rfid ",1)]),_:1}),n[70]||(n[70]=e("br",null,null,-1)),n[71]||(n[71]=t(" Eine Zeichenfolge, die einen eingelesenen Tag für openWB repräsentiert. Der Tag darf nur einmalig nach dem Scannen gesendet werden. Nach der Verarbeitung leert openWB das Topic.",-1)),n[72]||(n[72]=e("br",null,null,-1)),n[73]||(n[73]=t(" Beispiel: ",-1)),n[74]||(n[74]=e("span",{class:"text-info"},'"123654"',-1))])])])])]),_:1})])}const A=g(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/mqtt/chargePoint.vue"]]);export{A as default}; diff --git a/web/settings/assets/commands-DVXr5SHv.js b/web/settings/assets/commands-DbPIi_R7.js similarity index 95% rename from web/settings/assets/commands-DVXr5SHv.js rename to web/settings/assets/commands-DbPIi_R7.js index c2d5f377b6..fe550a6c6a 100644 --- a/web/settings/assets/commands-DVXr5SHv.js +++ b/web/settings/assets/commands-DbPIi_R7.js @@ -1 +1 @@ -import{a as g}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as h,l as u,k as a,e as c,m as d,q as r,A as i,y as _,J as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let t=new FormData;t.append("command","update_pro_plus"),this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wird gestartet...","info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.","success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(t,n,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[t.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>[...n[0]||(n[0]=[i(" Hier kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte stelle sicher, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>[...n[1]||(n[1]=[i(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(t.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const A=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{A as default}; +import{a as g}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as h,l as u,k as a,e as c,m as d,q as r,A as i,y as _,J as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"ChargePointCommandsInternalOpenwb",mixins:[g],computed:{mode(){switch(this.chargePoint.configuration.mode){case"series":return"openWB series1/2 custom, standard & standard+";case"duo":return"openWB series1/2 Duo";case"socket":return"openWB series1/2 Buchse";case"pro_plus":return"openWB Pro+";default:return this.chargePoint.configuration.mode}}},methods:{async triggerUpdate(){let t=new FormData;t.append("command","update_pro_plus"),this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wird gestartet...","info"),console.debug(location),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/internal_openwb/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro+ wurde erfolgreich gestartet.","success")}).catch(e=>{var s="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),s+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),s+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),s+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(s,"danger")})},openSettings(){window.open("http://"+location.hostname+":8080","_blank")}}},b={class:"charge-point-commands-internal-openwb"},k={key:0};function B(t,n,e,s,w,o){const p=u("openwb-base-button-input"),m=u("openwb-base-alert");return a(),c("div",b,[t.chargePoint.configuration.mode=="pro_plus"?(a(),c("div",k,[d(p,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",onButtonClicked:o.triggerUpdate},{help:r(()=>[...n[0]||(n[0]=[i(" Hier kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte stelle sicher, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["onButtonClicked"]),d(p,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",onButtonClicked:o.openSettings},{help:r(()=>[...n[1]||(n[1]=[i(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["onButtonClicked"])])):(a(),_(m,{key:1,subtype:"secondary"},{default:r(()=>[i(' Der Ladepunkt-Typ "'+l(t.chargePoint.type)+'" bietet für die Bauart "'+l(o.mode)+'" keine Befehle an. ',1)]),_:1}))])}const A=h(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/internal_openwb/commands.vue"]]);export{A as default}; diff --git a/web/settings/assets/commands-WVGU9z4_.js b/web/settings/assets/commands-DzcJU8K3.js similarity index 94% rename from web/settings/assets/commands-WVGU9z4_.js rename to web/settings/assets/commands-DzcJU8K3.js index 88ee7a5855..00f0e59dc2 100644 --- a/web/settings/assets/commands-WVGU9z4_.js +++ b/web/settings/assets/commands-DzcJU8K3.js @@ -1 +1 @@ -import{a as d}from"./ChargePointInstallation-BeNMkMOi.js";import{_ as u,l as c,k as l,e as g,m as a,q as r,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}'),this.$root.postClientMessage("Die Aktualisierung der openWB Pro wird gestartet...","info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.","success")}).catch(e=>{var n="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),n+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),n+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),n+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(n,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,s,e,n,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>[...s[0]||(s[0]=[p(" Mit diesem Befehl kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte beachte, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>[...s[1]||(s[1]=[p(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["disabled","onButtonClicked"])])}const E=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{E as default}; +import{a as d}from"./ChargePointInstallation-Cmc7sApi.js";import{_ as u,l as c,k as l,e as g,m as a,q as r,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"ChargePointCommandsOpenwbPro",mixins:[d],methods:{async triggerUpdate(){let t=new FormData;t.append("command","update"),t.append("data",'{"ip_address":"'+this.chargePoint.configuration.ip_address+'"}'),this.$root.postClientMessage("Die Aktualisierung der openWB Pro wird gestartet...","info"),this.axios.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/charge_points/openwb_pro/commands.php",t,{timeout:5e3}).then(()=>{this.$root.postClientMessage("Die Aktualisierung der openWB Pro wurde erfolgreich gestartet.","success")}).catch(e=>{var n="Aktualisierung fehlgeschlagen!
";e.response?(console.error(e.response.status,e.response.data),n+=e.response.status+": "+e.response.data):e.request?(console.error(e.request),n+="Es wurde keine Antwort vom Server empfangen."):(console.error("Error",e.message),n+="Es ist ein unbekannter Fehler aufgetreten."),this.$root.postClientMessage(n,"danger")})},openSettings(){window.open("http://"+this.chargePoint.configuration.ip_address,"_blank")}}},h={class:"charge-point-commands-openwb-pro"};function f(t,s,e,n,b,o){const i=c("openwb-base-button-input");return l(),g("div",h,[a(i,{title:"Ladepunkt aktualisieren","button-text":"Update anfordern",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.triggerUpdate},{help:r(()=>[...s[0]||(s[0]=[p(" Mit diesem Befehl kannst Du die Aktualisierung der openWB Pro anstoßen. Bitte beachte, dass kein Fahrzeug angesteckt ist. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),a(i,{title:"Einstellungen öffnen","button-text":"Zu den Einstellungen",subtype:"success",disabled:t.chargePoint.configuration.ip_address==null,onButtonClicked:o.openSettings},{help:r(()=>[...s[1]||(s[1]=[p(" Mit diesem Befehl kannst Du die Einstellungen der openWB Pro in einem neuen Browser-Tab oder -Fenster öffnen. ",-1)])]),_:1},8,["disabled","onButtonClicked"])])}const E=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/charge_points/openwb_pro/commands.vue"]]);export{E as default}; diff --git a/web/settings/assets/consumption_counter-s9tb-xVk.js b/web/settings/assets/consumption_counter-CF8sdq_V.js similarity index 93% rename from web/settings/assets/consumption_counter-s9tb-xVk.js rename to web/settings/assets/consumption_counter-CF8sdq_V.js index 02fecf6b2e..21f2585a16 100644 --- a/web/settings/assets/consumption_counter-s9tb-xVk.js +++ b/web/settings/assets/consumption_counter-CF8sdq_V.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,x,B){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])]),_:1}),t(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOpenwbFlexConsumptionCounter",mixins:[d]},f={class:"device-openwb-flex-consumption-counter"};function g(n,e,w,v,x,B){const l=o("openwb-base-heading"),u=o("openwb-base-alert"),p=o("openwb-base-select-input"),a=o("openwb-base-number-input");return b(),c("div",f,[t(l,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für openWB-Flex Verbrauchszähler ",-1)])]),_:1}),t(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" Bei saldierenden Zählern (B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (SDM120, SDM630, SDM72D-M), wird der Zählerstand für den Bezug aus dem Zähler ausgelesen. Eine Messung der Einspeisung ist nicht möglich. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:"sdm120",text:"SDM120"},{value:"sdm630",text:"SDM630/SDM72D-M"},{value:"b23",text:"B23"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/consumption_counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-CAioz9cY.js b/web/settings/assets/counter-A_Eha_ow.js similarity index 85% rename from web/settings/assets/counter-CAioz9cY.js rename to web/settings/assets/counter-A_Eha_ow.js index 039e458f89..0e0b78c42a 100644 --- a/web/settings/assets/counter-CAioz9cY.js +++ b/web/settings/assets/counter-A_Eha_ow.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-DrK-NlWu.js";import{_ as o,l as s,k as r,e as a,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>[...e[0]||(e[0]=[c(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])]),_:1})])}const B=o(p,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{B as default}; +import{C as n}from"./HardwareInstallation-DW5TYu17.js";import{_ as o,l as s,k as r,e as a,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceTeslaCounter",mixins:[n]},l={class:"device-tesla-counter"};function _(d,e,u,f,v,x){const t=s("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:m(()=>[...e[0]||(e[0]=[c(" Je nach Firmware-Version ist nur ein Lastmanagement anhand der Gesamtleistung möglich, da nicht alle Firmware-Versionen Phasenströme liefern. ",-1)])]),_:1})])}const B=o(p,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/counter.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter-B08rzQq5.js b/web/settings/assets/counter-B6FDPfsT.js similarity index 87% rename from web/settings/assets/counter-B08rzQq5.js rename to web/settings/assets/counter-B6FDPfsT.js index c2ba6dc607..d57a945627 100644 --- a/web/settings/assets/counter-B08rzQq5.js +++ b/web/settings/assets/counter-B6FDPfsT.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as p,e as u,m as n,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as t,k as p,e as u,m as n,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMeCounter",mixins:[a]},_={class:"device-smart-me-counter"};function f(o,e,b,v,g,x){const r=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),u("div",_,[n(r,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für smart-me Zähler ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-DbRhyf8N.js b/web/settings/assets/counter-B7nJSb8E.js similarity index 89% rename from web/settings/assets/counter-DbRhyf8N.js rename to web/settings/assets/counter-B7nJSb8E.js index 8fb886dd76..633dff04b7 100644 --- a/web/settings/assets/counter-DbRhyf8N.js +++ b/web/settings/assets/counter-B7nJSb8E.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},v={class:"device-openwb-evukit-counter"};function _(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{V as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as t,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitCounter",mixins:[r]},v={class:"device-openwb-evukit-counter"};function _(o,e,f,b,w,x){const i=t("openwb-base-heading"),s=t("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Zähler ",-1)])]),_:1}),n(s,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-CNaWH3hH.js b/web/settings/assets/counter-B8QJAgEt.js similarity index 87% rename from web/settings/assets/counter-CNaWH3hH.js rename to web/settings/assets/counter-B8QJAgEt.js index 79bf2c5e77..2018e6a507 100644 --- a/web/settings/assets/counter-CNaWH3hH.js +++ b/web/settings/assets/counter-B8QJAgEt.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])]),_:1}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const q=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{q as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as u,m as t,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceAvmCounter",mixins:[s]},_={class:"device-avm-counter"};function f(o,e,v,b,x,g){const i=n("openwb-base-heading"),r=n("openwb-base-text-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für AVM Fritz!Box Zähler ",-1)])]),_:1}),t(r,{title:"Gerätename in der Fritz!Box",required:"","model-value":o.component.configuration.name,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.name"))},null,8,["model-value"])])}const q=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-5nvynE8p.js b/web/settings/assets/counter-BDr0k9oC.js similarity index 97% rename from web/settings/assets/counter-5nvynE8p.js rename to web/settings/assets/counter-BDr0k9oC.js index 2a407af9ed..2da32b7080 100644 --- a/web/settings/assets/counter-5nvynE8p.js +++ b/web/settings/assets/counter-BDr0k9oC.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as u,k as f,e as m,m as t,q as r,A as a,x as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,P,C){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>[...e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>[...e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>[...e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>[...e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const Z=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{Z as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as u,k as f,e as m,m as t,q as r,A as a,x as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJsonCounter",mixins:[s]},v={class:"device-json-counter"};function w(o,e,j,q,P,C){const i=u("openwb-base-heading"),l=u("openwb-base-text-input"),d=u("openwb-base-alert");return f(),m("div",v,[t(i,null,{default:r(()=>[...e[15]||(e[15]=[a(" Einstellungen für JSON Zähler ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":o.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.jq_power"))},{help:r(()=>[...e[16]||(e[16]=[a(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),g("br",null,null,-1),a(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Bezug",subtype:"text","model-value":o.component.configuration.jq_imported,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.jq_imported"))},{help:r(()=>[...e[17]||(e[17]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(l,{title:"Abfrage für Zählerstand Einspeisung",subtype:"text","model-value":o.component.configuration.jq_exported,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.jq_exported"))},{help:r(()=>[...e[18]||(e[18]=[a(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),t(d,{subtype:"info"},{default:r(()=>[...e[19]||(e[19]=[a(" Werden sowohl Leistung als auch Strom auf den Einzelphasen leer gelassen, erfolgt das Lastmanagement am EVU-Punkt nur anhand der Gesamtleistung am EVU-Punkt. Wird der Zähler als Zwischenzähler verwendet, wird in diesem Fall kein Lastmanagement durchgeführt. ",-1)])]),_:1}),t(l,{title:"Abfrage für Leistung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_l1,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.jq_power_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_l2,"onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.jq_power_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_l3,"onUpdate:modelValue":e[5]||(e[5]=n=>o.updateConfiguration(n,"configuration.jq_power_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_power_factor_l1,"onUpdate:modelValue":e[6]||(e[6]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_power_factor_l2,"onUpdate:modelValue":e[7]||(e[7]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Leistungsfaktor auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_power_factor_l3,"onUpdate:modelValue":e[8]||(e[8]=n=>o.updateConfiguration(n,"configuration.jq_power_factor_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_current_l1,"onUpdate:modelValue":e[9]||(e[9]=n=>o.updateConfiguration(n,"configuration.jq_current_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_current_l2,"onUpdate:modelValue":e[10]||(e[10]=n=>o.updateConfiguration(n,"configuration.jq_current_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_current_l3,"onUpdate:modelValue":e[11]||(e[11]=n=>o.updateConfiguration(n,"configuration.jq_current_l3"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 1",subtype:"text","model-value":o.component.configuration.jq_voltage_l1,"onUpdate:modelValue":e[12]||(e[12]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l1"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 2",subtype:"text","model-value":o.component.configuration.jq_voltage_l2,"onUpdate:modelValue":e[13]||(e[13]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l2"))},null,8,["model-value"]),t(l,{title:"Abfrage für Spannung auf Phase 3",subtype:"text","model-value":o.component.configuration.jq_voltage_l3,"onUpdate:modelValue":e[14]||(e[14]=n=>o.updateConfiguration(n,"configuration.jq_voltage_l3"))},null,8,["model-value"])])}const Z=p(b,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/counter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/counter-D_yHfG7M.js b/web/settings/assets/counter-BVtC0OIn.js similarity index 88% rename from web/settings/assets/counter-D_yHfG7M.js rename to web/settings/assets/counter-BVtC0OIn.js index 50099b951c..8a0c8011d4 100644 --- a/web/settings/assets/counter-D_yHfG7M.js +++ b/web/settings/assets/counter-BVtC0OIn.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as a,e as l,m as n,q as d,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:d(()=>[...o[1]||(o[1]=[m(" Einstellungen für Powerdog Zähler ",-1)])]),_:1}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const B=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{B as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as t,k as a,e as l,m as n,q as d,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DevicePowerdogCounter",mixins:[p]},_={class:"device-powerdog-counter"};function b(e,o,f,g,v,w){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return a(),l("div",_,[n(i,null,{default:d(()=>[...o[1]||(o[1]=[m(" Einstellungen für Powerdog Zähler ",-1)])]),_:1}),n(r,{title:"Einbau-Position",buttons:[{buttonValue:!1,text:"Hausverbrauch"},{buttonValue:!0,text:"EVU-Punkt"}],"model-value":e.component.configuration.position_evu,"onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.position_evu"))},null,8,["model-value"])])}const B=u(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/counter.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter-CqYIUc0x.js b/web/settings/assets/counter-BbIUpB6g.js similarity index 87% rename from web/settings/assets/counter-CqYIUc0x.js rename to web/settings/assets/counter-BbIUpB6g.js index 3bc4a1554f..add26b5786 100644 --- a/web/settings/assets/counter-CqYIUc0x.js +++ b/web/settings/assets/counter-BbIUpB6g.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as s,l as n,k as i,e as a,m as c,q as p,A as o,x as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{Z as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as s,l as n,k as i,e as a,m as c,q as p,A as o,x as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKostalPikoCounter",mixins:[r]},u={class:"device-kostal-piko-counter"};function _(d,e,f,b,h,k){const t=n("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),m("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=s(l,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/counter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/counter-CDmfO7fm.js b/web/settings/assets/counter-Bg6xqQnQ.js similarity index 87% rename from web/settings/assets/counter-CDmfO7fm.js rename to web/settings/assets/counter-Bg6xqQnQ.js index a2ae577899..cb7b8da4fb 100644 --- a/web/settings/assets/counter-CDmfO7fm.js +++ b/web/settings/assets/counter-Bg6xqQnQ.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as n,k as m,e as u,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisCounter",mixins:[p]},_={class:"device-solis-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Solis Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-Bq_4dQ6X.js b/web/settings/assets/counter-BoOPFIeZ.js similarity index 90% rename from web/settings/assets/counter-Bq_4dQ6X.js rename to web/settings/assets/counter-BoOPFIeZ.js index 6b802d34a8..e066745d92 100644 --- a/web/settings/assets/counter-Bq_4dQ6X.js +++ b/web/settings/assets/counter-BoOPFIeZ.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronCounter",mixins:[a]},_={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])]),_:1}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const q=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{q as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronCounter",mixins:[a]},_={class:"device-victron-counter"};function f(o,e,g,v,C,V){const r=t("openwb-base-heading"),u=t("openwb-base-number-input"),s=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Zähler ",-1)])]),_:1}),i(u,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(s,{title:"Messgerät",buttons:[{buttonValue:!1,text:"AC-In Victron GX"},{buttonValue:!0,text:"Energy Meter"}],"model-value":o.component.configuration.energy_meter,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.energy_meter"))},null,8,["model-value"])])}const q=p(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-BWI3WRrg.js b/web/settings/assets/counter-BtazrY2B.js similarity index 85% rename from web/settings/assets/counter-BWI3WRrg.js rename to web/settings/assets/counter-BtazrY2B.js index f42688bb1c..37d23b0482 100644 --- a/web/settings/assets/counter-BWI3WRrg.js +++ b/web/settings/assets/counter-BtazrY2B.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-DrK-NlWu.js";import{_ as o,l as s,k as i,e as r,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},d={class:"device-sonnenbatterie-counter"};function _(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",d,[a(n,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1})])}const M=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{M as default}; +import{C as t}from"./HardwareInstallation-DW5TYu17.js";import{_ as o,l as s,k as i,e as r,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSonnenbatterieCounter",mixins:[t]},d={class:"device-sonnenbatterie-counter"};function _(l,e,u,f,b,v){const n=s("openwb-base-alert");return i(),r("div",d,[a(n,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1})])}const M=o(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-B2RD41ZG.js b/web/settings/assets/counter-C1tkl5FT.js similarity index 88% rename from web/settings/assets/counter-B2RD41ZG.js rename to web/settings/assets/counter-C1tkl5FT.js index cbdc13b8cf..b17b1b3e14 100644 --- a/web/settings/assets/counter-B2RD41ZG.js +++ b/web/settings/assets/counter-C1tkl5FT.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as d,e as c,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as n,k as d,e as c,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecCounter",mixins:[a]},_={class:"device-mtec-counter"};function b(o,e,f,v,g,C){const r=n("openwb-base-heading"),m=n("openwb-base-number-input");return d(),c("div",_,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für M-Tec Zähler ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const V=u(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-DlTwNWk_.js b/web/settings/assets/counter-C51HlNOs.js similarity index 89% rename from web/settings/assets/counter-DlTwNWk_.js rename to web/settings/assets/counter-C51HlNOs.js index ae94a066c8..8c4b481f85 100644 --- a/web/settings/assets/counter-DlTwNWk_.js +++ b/web/settings/assets/counter-C51HlNOs.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as l,e as d,m as r,q as i,A as n,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])]),_:1}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>[...e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])]),_:1},8,["model-value"])])}const $=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{$ as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as t,k as l,e as d,m as r,q as i,A as n,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmCounter",mixins:[p]},f={class:"device-smahm-counter"};function b(o,e,g,v,M,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return l(),d("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für SMA-HM/EM Zähler ",-1)])]),_:1}),r(a,{title:"Seriennummer","model-value":o.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.serials"))},{help:i(()=>[...e[2]||(e[2]=[n(" Eine Seriennummer ist nur erforderlich, wenn mehrere SMA HomeManager in Betrieb sind.",-1),c("br",null,null,-1),n(" Funktioniert auch mit Energy Meter anstatt Home Manager. ",-1)])]),_:1},8,["model-value"])])}const $=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-DoLu61P3.js b/web/settings/assets/counter-CBhLJ0HX.js similarity index 90% rename from web/settings/assets/counter-DoLu61P3.js rename to web/settings/assets/counter-CBhLJ0HX.js index 7e8bfa101b..053bb9cdcc 100644 --- a/web/settings/assets/counter-DoLu61P3.js +++ b/web/settings/assets/counter-CBhLJ0HX.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDiscovergyCounter",mixins:[d]},g={class:"device-discovergy-counter"};function _(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",g,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const z=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{z as default}; +import{C as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDiscovergyCounter",mixins:[d]},g={class:"device-discovergy-counter"};function _(t,e,v,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",g,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Zähler ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const z=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/counter.vue"]]);export{z as default}; diff --git a/web/settings/assets/counter-C4Bc-LFa.js b/web/settings/assets/counter-CDUqz_Aw.js similarity index 88% rename from web/settings/assets/counter-C4Bc-LFa.js rename to web/settings/assets/counter-CDUqz_Aw.js index 7381d1a702..245e548b1a 100644 --- a/web/settings/assets/counter-C4Bc-LFa.js +++ b/web/settings/assets/counter-CDUqz_Aw.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(n,e,b,f,v,C){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const M=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyCounter",mixins:[m]},_={class:"device-sigenergy-counter"};function c(n,e,b,f,v,C){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return d(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Zähler ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const M=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-DqUnAcpd.js b/web/settings/assets/counter-CQa_tIvk.js similarity index 92% rename from web/settings/assets/counter-DqUnAcpd.js rename to web/settings/assets/counter-CQa_tIvk.js index aafb8fd16b..961ef5e31a 100644 --- a/web/settings/assets/counter-DqUnAcpd.js +++ b/web/settings/assets/counter-CQa_tIvk.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as c,e as m,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},b={class:"device-powerfox-counter"};function g(o,e,w,x,_,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return c(),m("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{A as default}; +import{C as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as t,k as c,e as m,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxCounter",mixins:[u]},b={class:"device-powerfox-counter"};function g(o,e,w,x,_,h){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return c(),m("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Zähler ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=l(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/counter.vue"]]);export{A as default}; diff --git a/web/settings/assets/counter-C7jGbtjK.js b/web/settings/assets/counter-CZ5K8g8Z.js similarity index 97% rename from web/settings/assets/counter-C7jGbtjK.js rename to web/settings/assets/counter-CZ5K8g8Z.js index 0db1798079..058d7b8d57 100644 --- a/web/settings/assets/counter-C7jGbtjK.js +++ b/web/settings/assets/counter-CZ5K8g8Z.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as u,k as g,e as f,m as l,q as i,A as t,x as e,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(o,n,z,w,v,W){const m=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard");return g(),f("div",B,[l(m,null,{default:i(()=>[...n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])]),_:1}),l(p,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Zähler '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(p,{subtype:"info"},{default:i(()=>[n[45]||(n[45]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"-123.45",-1))])]),n[46]||(n[46]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/imported ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/exported ",1)]),_:1}),n[15]||(n[15]=e("br",null,null,-1)),n[16]||(n[16]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[17]||(n[17]=e("br",null,null,-1)),n[18]||(n[18]=t(" Beispiel: ",-1)),n[19]||(n[19]=e("span",{class:"text-info"},"123.45",-1))])]),n[47]||(n[47]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/currents ",1)]),_:1}),n[20]||(n[20]=e("br",null,null,-1)),n[21]||(n[21]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[22]||(n[22]=e("br",null,null,-1)),n[23]||(n[23]=t(" Beispiel: ",-1)),n[24]||(n[24]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[48]||(n[48]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/frequency ",1)]),_:1}),n[25]||(n[25]=e("br",null,null,-1)),n[26]||(n[26]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[27]||(n[27]=e("br",null,null,-1)),n[28]||(n[28]=t(" Beispiel: ",-1)),n[29]||(n[29]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/voltages ",1)]),_:1}),n[30]||(n[30]=e("br",null,null,-1)),n[31]||(n[31]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[32]||(n[32]=e("br",null,null,-1)),n[33]||(n[33]=t(" Beispiel: ",-1)),n[34]||(n[34]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/powers ",1)]),_:1}),n[35]||(n[35]=e("br",null,null,-1)),n[36]||(n[36]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[37]||(n[37]=e("br",null,null,-1)),n[38]||(n[38]=t(" Beispiel: ",-1)),n[39]||(n[39]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power_factors ",1)]),_:1}),n[40]||(n[40]=e("br",null,null,-1)),n[41]||(n[41]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Beispiel: ",-1)),n[44]||(n[44]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1})])}const E=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{E as default}; +import{C as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as u,k as g,e as f,m as l,q as i,A as t,x as e,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceMqttCounter",mixins:[d]},B={class:"device-mqtt-counter"};function k(o,n,z,w,v,W){const m=u("openwb-base-heading"),p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard");return g(),f("div",B,[l(m,null,{default:i(()=>[...n[0]||(n[0]=[t(" Einstellungen für MQTT Zähler ",-1)])]),_:1}),l(p,{subtype:"warning"},{default:i(()=>[n[1]||(n[1]=t(" Ist die ",-1)),n[2]||(n[2]=e("strong",null,"Benutzerverwaltung",-1)),n[3]||(n[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),e("strong",null,`"Daten: Zähler '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),n[4]||(n[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),l(p,{subtype:"info"},{default:i(()=>[n[45]||(n[45]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power ",1)]),_:1}),n[5]||(n[5]=e("br",null,null,-1)),n[6]||(n[6]=t(" Bezugsleistung in Watt, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, positiv Bezug, negativ Einspeisung",-1)),n[7]||(n[7]=e("br",null,null,-1)),n[8]||(n[8]=t(" Beispiel: ",-1)),n[9]||(n[9]=e("span",{class:"text-info"},"-123.45",-1))])]),n[46]||(n[46]=t(" Falls keine Werte für die Zählerstände übermittelt werden, berechnet openWB die Zählerstände anhand der Leistung. ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/imported ",1)]),_:1}),n[10]||(n[10]=e("br",null,null,-1)),n[11]||(n[11]=t(" Bezogene Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[12]||(n[12]=e("br",null,null,-1)),n[13]||(n[13]=t(" Beispiel: ",-1)),n[14]||(n[14]=e("span",{class:"text-info"},"123.45",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/exported ",1)]),_:1}),n[15]||(n[15]=e("br",null,null,-1)),n[16]||(n[16]=t(" Eingespeiste Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),n[17]||(n[17]=e("br",null,null,-1)),n[18]||(n[18]=t(" Beispiel: ",-1)),n[19]||(n[19]=e("span",{class:"text-info"},"123.45",-1))])]),n[47]||(n[47]=t(" Ströme je Phase sind für phasenbasiertes Lastmanagement unbedingt erforderlich, sonst erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung am EVU-Punkt: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/currents ",1)]),_:1}),n[20]||(n[20]=e("br",null,null,-1)),n[21]||(n[21]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),n[22]||(n[22]=e("br",null,null,-1)),n[23]||(n[23]=t(" Beispiel: ",-1)),n[24]||(n[24]=e("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])]),n[48]||(n[48]=t(" Die Netzfrequenz, Spannungen, Leistungen und Leistungsfaktoren jeder Phase werden ausschließlich zu Anzeigezwecken verwendet: ",-1)),e("ul",null,[e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/frequency ",1)]),_:1}),n[25]||(n[25]=e("br",null,null,-1)),n[26]||(n[26]=t(" Netzfrequenz in Hz, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen",-1)),n[27]||(n[27]=e("br",null,null,-1)),n[28]||(n[28]=t(" Beispiel: ",-1)),n[29]||(n[29]=e("span",{class:"text-info"},"50.12",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/voltages ",1)]),_:1}),n[30]||(n[30]=e("br",null,null,-1)),n[31]||(n[31]=t(" Array mit den Spannungen je Phase in Volt, mit Nachkommastellen (Float)",-1)),n[32]||(n[32]=e("br",null,null,-1)),n[33]||(n[33]=t(" Beispiel: ",-1)),n[34]||(n[34]=e("span",{class:"text-info"},"[222.2,223.3,222.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/powers ",1)]),_:1}),n[35]||(n[35]=e("br",null,null,-1)),n[36]||(n[36]=t(" Array mit den Leistungen je Phase in Watt, mit Nachkommastellen (Float)",-1)),n[37]||(n[37]=e("br",null,null,-1)),n[38]||(n[38]=t(" Beispiel: ",-1)),n[39]||(n[39]=e("span",{class:"text-info"},"[12.3,23.4,-12.3]",-1))]),e("li",null,[l(r,{class:"text-info",tooltip:"Topic kopieren"},{default:i(()=>[t(" openWB/set/mqtt/counter/"+s(o.component.id)+"/get/power_factors ",1)]),_:1}),n[40]||(n[40]=e("br",null,null,-1)),n[41]||(n[41]=t(" Array mit den Leistungsfaktoren je Phase, mit Nachkommastellen (Float), Wertebereich -1 bis 1",-1)),n[42]||(n[42]=e("br",null,null,-1)),n[43]||(n[43]=t(" Beispiel: ",-1)),n[44]||(n[44]=e("span",{class:"text-info"},"[0.95,0.96,-0.95]",-1))])])]),_:1})])}const E=a(b,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/counter.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter-C_KHyjgh.js b/web/settings/assets/counter-ClRUzEkm.js similarity index 87% rename from web/settings/assets/counter-C_KHyjgh.js rename to web/settings/assets/counter-ClRUzEkm.js index bcf75f6d15..f9897f8dbf 100644 --- a/web/settings/assets/counter-C_KHyjgh.js +++ b/web/settings/assets/counter-ClRUzEkm.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as u,e as m,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoyCounter",mixins:[a]},_={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return u(),m("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as u,e as m,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoyCounter",mixins:[a]},_={class:"device-sunnyboy-counter"};function b(o,e,f,v,g,y){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return u(),m("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für SMA Sunny Boy/Tripower Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-CG8UPJNQ.js b/web/settings/assets/counter-Cm6ek-bl.js similarity index 90% rename from web/settings/assets/counter-CG8UPJNQ.js rename to web/settings/assets/counter-Cm6ek-bl.js index 384c09c728..e2a969d017 100644 --- a/web/settings/assets/counter-CG8UPJNQ.js +++ b/web/settings/assets/counter-Cm6ek-bl.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as m,e as d,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])]),_:1}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])]),_:1},8,["model-value"])])}const D=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as t,k as m,e as d,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVirtualCounter",mixins:[p]},_={class:"device-virtual-counter"};function f(n,e,b,g,v,h){const s=t("openwb-base-heading"),a=t("openwb-base-number-input");return m(),d("div",_,[o(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für virtuelle Zähler ",-1)])]),_:1}),o(a,{title:"Zusätzlicher Verbrauch",min:0,step:.05,unit:"kW",required:"","model-value":n.component.configuration.external_consumption/1e3,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u*1e3,"configuration.external_consumption"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die hier angegebene Leistung wird pauschal zu dem Leistungen der hinter dem Zähler liegenden Komponenten addiert. Damit lässt sich z. B. eine Reserve für nicht erfasste Verbraucher einstellen. ",-1)])]),_:1},8,["model-value"])])}const D=l(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/virtual/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-PiIXsMjs.js b/web/settings/assets/counter-CpadszTy.js similarity index 87% rename from web/settings/assets/counter-PiIXsMjs.js rename to web/settings/assets/counter-CpadszTy.js index 50453e043f..074886738d 100644 --- a/web/settings/assets/counter-PiIXsMjs.js +++ b/web/settings/assets/counter-CpadszTy.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as u,e as p,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},_={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{D as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as u,e as p,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerCounter",mixins:[s]},_={class:"device-huawei-smart-logger-counter"};function g(o,e,b,f,w,v){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return u(),p("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Zähler ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/counter.vue"]]);export{D as default}; diff --git a/web/settings/assets/counter-C68GXHgb.js b/web/settings/assets/counter-CuNF0eOV.js similarity index 84% rename from web/settings/assets/counter-C68GXHgb.js rename to web/settings/assets/counter-CuNF0eOV.js index c3a0a97c3f..a0e77eea5d 100644 --- a/web/settings/assets/counter-C68GXHgb.js +++ b/web/settings/assets/counter-CuNF0eOV.js @@ -1 +1 @@ -import{C as t}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as a,e as r,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=s("openwb-base-alert");return a(),r("div",_,[i(o,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const M=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{M as default}; +import{C as t}from"./HardwareInstallation-DW5TYu17.js";import{_ as n,l as s,k as a,e as r,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceCarloGavazziCounter",mixins:[t]},_={class:"device-carlo-gavazzi-counter"};function l(u,e,d,v,f,z){const o=s("openwb-base-alert");return a(),r("div",_,[i(o,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const M=n(m,[["render",l],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-JDvJyDSb.js b/web/settings/assets/counter-Cv4G8Tsg.js similarity index 87% rename from web/settings/assets/counter-JDvJyDSb.js rename to web/settings/assets/counter-Cv4G8Tsg.js index 2852c3cef5..aea107dc25 100644 --- a/web/settings/assets/counter-JDvJyDSb.js +++ b/web/settings/assets/counter-Cv4G8Tsg.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as i,e as a,m as c,q as p,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{Z as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as n,l as s,k as i,e as a,m as c,q as p,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalPlenticoreCounter",mixins:[r]},u={class:"device-kostal-plenticore-counter"};function _(d,e,f,b,h,v){const t=s("openwb-base-alert");return i(),a("div",u,[c(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[o(" Wenn der Zähler im Hausverbrauchs-Zweig installiert ist, muss die Hierarchie wie im ",-1),l("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Zähler",target:"_blank",rel:"noopener noreferrer"},"Wiki für Hausverbrauchs-Zähler",-1),o(" beschrieben, angeordnet werden. ",-1)])]),_:1})])}const Z=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/counter.vue"]]);export{Z as default}; diff --git a/web/settings/assets/counter-BLEEk5vk.js b/web/settings/assets/counter-D-70g2Df.js similarity index 85% rename from web/settings/assets/counter-BLEEk5vk.js rename to web/settings/assets/counter-D-70g2Df.js index b90472d637..4e49431e49 100644 --- a/web/settings/assets/counter-BLEEk5vk.js +++ b/web/settings/assets/counter-D-70g2Df.js @@ -1 +1 @@ -import{C as i}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as s,k as m,e as p,m as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const a={name:"DeviceChintCounter",mixins:[i]},c={class:"device-chint-counter"};function d(e,o,l,_,f,b){const n=s("openwb-base-number-input");return m(),p("div",c,[u(n,{title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"])])}const B=r(a,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/counter.vue"]]);export{B as default}; +import{C as i}from"./HardwareInstallation-DW5TYu17.js";import{_ as r,l as s,k as m,e as p,m as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const a={name:"DeviceChintCounter",mixins:[i]},c={class:"device-chint-counter"};function d(e,o,l,_,f,b){const n=s("openwb-base-number-input");return m(),p("div",c,[u(n,{title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=t=>e.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"])])}const B=r(a,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/counter.vue"]]);export{B as default}; diff --git a/web/settings/assets/counter-D8dbm9sC.js b/web/settings/assets/counter-D0mmwP6N.js similarity index 91% rename from web/settings/assets/counter-D8dbm9sC.js rename to web/settings/assets/counter-D0mmwP6N.js index b4b724b621..4910f7f8d8 100644 --- a/web/settings/assets/counter-D8dbm9sC.js +++ b/web/settings/assets/counter-D0mmwP6N.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as r,k as p,e as f,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeCounter",mixins:[d]},b={class:"device-solaredge-counter"};function c(o,e,_,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),f("div",b,[n(l,null,{default:s(()=>[...e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])]),_:1}),n(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])]),_:1}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const q=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{q as default}; +import{C as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as r,k as p,e as f,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolaredgeCounter",mixins:[d]},b={class:"device-solaredge-counter"};function c(o,e,_,v,w,C){const l=r("openwb-base-heading"),u=r("openwb-base-alert"),i=r("openwb-base-number-input");return p(),f("div",b,[n(l,null,{default:s(()=>[...e[2]||(e[2]=[a(" Einstellungen für SolarEdge Zähler ",-1)])]),_:1}),n(u,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Hierfür muss ein EVU-Zähler am SolarEdge Wechselrichter per Modbus angebunden sein. Der Zähler muss an erster Position im Wechselrichter konfiguriert sein. ",-1)])]),_:1}),n(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(i,{title:"SolarEdge-Meter-ID","model-value":o.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"])])}const q=m(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-xlfblTPy.js b/web/settings/assets/counter-D7FnqAtd.js similarity index 87% rename from web/settings/assets/counter-xlfblTPy.js rename to web/settings/assets/counter-D7FnqAtd.js index 55775fe9bb..bbf040a89b 100644 --- a/web/settings/assets/counter-xlfblTPy.js +++ b/web/settings/assets/counter-D7FnqAtd.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibeCounter",mixins:[p]},b={class:"device-nibe-counter"};function _(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibeCounter",mixins:[p]},b={class:"device-nibe-counter"};function _(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",b,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Nibe Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-CdY4HvNb.js b/web/settings/assets/counter-DKjZaavu.js similarity index 87% rename from web/settings/assets/counter-CdY4HvNb.js rename to web/settings/assets/counter-DKjZaavu.js index f0f167c320..843eb4f5fd 100644 --- a/web/settings/assets/counter-CdY4HvNb.js +++ b/web/settings/assets/counter-DKjZaavu.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{h as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeCounter",mixins:[p]},_={class:"device-deye-counter"};function b(o,e,f,v,g,C){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Zähler ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const h=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/counter.vue"]]);export{h as default}; diff --git a/web/settings/assets/counter-BmG9nVGY.js b/web/settings/assets/counter-DOSXCjzW.js similarity index 87% rename from web/settings/assets/counter-BmG9nVGY.js rename to web/settings/assets/counter-DOSXCjzW.js index 4cfa550d1f..8f9cff2897 100644 --- a/web/settings/assets/counter-BmG9nVGY.js +++ b/web/settings/assets/counter-DOSXCjzW.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssCounter",mixins:[p]},c={class:"device-fox_ess-counter"};function f(o,e,b,x,v,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",c,[t(s,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-C3j9bCHZ.js b/web/settings/assets/counter-DV-WMkEG.js similarity index 90% rename from web/settings/assets/counter-C3j9bCHZ.js rename to web/settings/assets/counter-DV-WMkEG.js index 6f4ceba0d5..e8e76546cd 100644 --- a/web/settings/assets/counter-C3j9bCHZ.js +++ b/web/settings/assets/counter-DV-WMkEG.js @@ -1 +1 @@ -import{C as n}from"./HardwareInstallation-DrK-NlWu.js";import{_ as s,l as a,k as i,e as l,m as c,q as m,x as e,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function d(_,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[c(t,{subtype:"info"},{default:m(()=>[...o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])]),_:1})])}const S=s(p,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{S as default}; +import{C as n}from"./HardwareInstallation-DW5TYu17.js";import{_ as s,l as a,k as i,e as l,m as c,q as m,x as e,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const p={name:"DeviceSolarLogCounter",mixins:[n]},u={class:"device-solar_log-counter"};function d(_,o,g,h,f,b){const t=a("openwb-base-alert");return i(),l("div",u,[c(t,{subtype:"info"},{default:m(()=>[...o[0]||(o[0]=[e("span",{class:"text-danger"},[r(" Solar-Log Zähler geben keine Ströme aus, sodass nur ein Lastmanagement anhand der Gesamtleistung, aber nicht phasenbasiert möglich ist."),e("br")],-1),r(" Solar-Log Zähler sind Hausverbrauchs-Zähler. Um die Werte am EVU-Punkt zu ermitteln, muss ein virtueller Zähler konfiguriert werden. Eine Beispiel-Konfiguration mit Solar-Log Zähler findest Du im ",-1),e("a",{href:"https://github.com/openWB/core/wiki/Hausverbrauchs-Z%C3%A4hler",target:"_blank",rel:"noopener noreferrer"}," Wiki für Hausverbrauchs-Zähler ",-1),r(". ",-1)])]),_:1})])}const S=s(p,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/counter.vue"]]);export{S as default}; diff --git a/web/settings/assets/counter-CcBkZQq0.js b/web/settings/assets/counter-DeNkZ-pw.js similarity index 83% rename from web/settings/assets/counter-CcBkZQq0.js rename to web/settings/assets/counter-DeNkZ-pw.js index b75a95ec6e..f944322c05 100644 --- a/web/settings/assets/counter-CcBkZQq0.js +++ b/web/settings/assets/counter-DeNkZ-pw.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as r,e as i,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=s("openwb-base-alert");return r(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const g=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{g as default}; +import{C as o}from"./HardwareInstallation-DW5TYu17.js";import{_ as n,l as s,k as r,e as i,m as a,q as p,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceThermiaCounter",mixins:[o]},_={class:"device-thermia-counter"};function u(d,e,f,l,v,b){const t=s("openwb-base-alert");return r(),i("div",_,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[m(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1})])}const g=n(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/counter.vue"]]);export{g as default}; diff --git a/web/settings/assets/counter-D2NORLkt.js b/web/settings/assets/counter-DefcYDVn.js similarity index 92% rename from web/settings/assets/counter-D2NORLkt.js rename to web/settings/assets/counter-DefcYDVn.js index 309e67fd2f..1707ff14d5 100644 --- a/web/settings/assets/counter-D2NORLkt.js +++ b/web/settings/assets/counter-DefcYDVn.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as r,k as m,e as g,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerCounter",mixins:[p]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),s=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])]),_:1}),t(s,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const q=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as r,k as m,e as g,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerCounter",mixins:[p]},_={class:"device-vzlogger-counter"};function c(n,e,b,v,w,Z){const a=r("openwb-base-heading"),s=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[u(" Einstellungen für VZLogger Zähler ",-1)])]),_:1}),t(s,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[u(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),t(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.line_power"))},null,8,["model-value"]),t(i,{title:"Zeile der Einspeisung",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.line_exported"))},null,8,["model-value"]),t(i,{title:"Zeile des Bezugs",min:0,"model-value":n.component.configuration.line_imported,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.line_imported"))},null,8,["model-value"])])}const q=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-C7uERgGk.js b/web/settings/assets/counter-DfOLZ8wG.js similarity index 88% rename from web/settings/assets/counter-C7uERgGk.js rename to web/settings/assets/counter-DfOLZ8wG.js index 8e7ce6b466..26104becee 100644 --- a/web/settings/assets/counter-C7uERgGk.js +++ b/web/settings/assets/counter-DfOLZ8wG.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,w){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])]),_:1}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])]),_:1},8,["model-value"])])}const I=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as o,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseCounter",mixins:[m]},_={class:"device-enphase-counter"};function f(n,e,b,v,g,w){const p=o("openwb-base-heading"),r=o("openwb-base-number-input");return d(),l("div",_,[t(p,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Enphase Envoy / IQ Gateway Zähler ",-1)])]),_:1}),t(r,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[s(' EID für "net-consumption" ',-1)])]),_:1},8,["model-value"])])}const I=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/counter.vue"]]);export{I as default}; diff --git a/web/settings/assets/counter-CALcAyno.js b/web/settings/assets/counter-Dm87iMnq.js similarity index 88% rename from web/settings/assets/counter-CALcAyno.js rename to web/settings/assets/counter-Dm87iMnq.js index debe7d55bc..d8c7dff8bb 100644 --- a/web/settings/assets/counter-CALcAyno.js +++ b/web/settings/assets/counter-Dm87iMnq.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiCounter",mixins:[m]},c={class:"device-kostal-piko-ci-counter"};function b(e,o,f,k,v,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return d(),l("div",c,[t(r,null,{default:i(()=>[...o[1]||(o[1]=[s(" Einstellungen für Kostal Piko CI Zähler ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=p=>e.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...o[2]||(o[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/counter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as n,k as d,e as l,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiCounter",mixins:[m]},c={class:"device-kostal-piko-ci-counter"};function b(e,o,f,k,v,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return d(),l("div",c,[t(r,null,{default:i(()=>[...o[1]||(o[1]=[s(" Einstellungen für Kostal Piko CI Zähler ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=p=>e.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...o[2]||(o[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/counter.vue"]]);export{M as default}; diff --git a/web/settings/assets/counter-CFHdp5Rg.js b/web/settings/assets/counter-DnGmCaut.js similarity index 85% rename from web/settings/assets/counter-CFHdp5Rg.js rename to web/settings/assets/counter-DnGmCaut.js index 0d19b63759..4799108f66 100644 --- a/web/settings/assets/counter-CFHdp5Rg.js +++ b/web/settings/assets/counter-DnGmCaut.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as s,l as n,k as r,e as a,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function d(_,e,u,f,b,h){const t=n("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])]),_:1})])}const K=s(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{K as default}; +import{C as o}from"./HardwareInstallation-DW5TYu17.js";import{_ as s,l as n,k as r,e as a,m as i,q as c,A as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceKostalSemCounter",mixins:[o]},l={class:"device-kostal-sem-counter"};function d(_,e,u,f,b,h){const t=n("openwb-base-alert");return r(),a("div",l,[i(t,{subtype:"info"},{default:c(()=>[...e[0]||(e[0]=[p(" Diese Komponente ist nur richtig, wenn der Zähler NICHT direkt am Wechselrichter (Kostal Plenticore) angeschlossen ist und daher separat abgefragt werden muss. ",-1)])]),_:1})])}const K=s(m,[["render",d],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/counter.vue"]]);export{K as default}; diff --git a/web/settings/assets/counter-CBsxLQUz.js b/web/settings/assets/counter-DqdzrzXR.js similarity index 87% rename from web/settings/assets/counter-CBsxLQUz.js rename to web/settings/assets/counter-DqdzrzXR.js index 7934fd4b63..f0e63b2729 100644 --- a/web/settings/assets/counter-CBsxLQUz.js +++ b/web/settings/assets/counter-DqdzrzXR.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>[...o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as n,k as m,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOrnoCounter",mixins:[p]},_={class:"device-orno-counter"};function b(e,o,f,v,g,C){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),u("div",_,[t(r,null,{default:d(()=>[...o[1]||(o[1]=[l(" Einstellungen für Orno WE-514 Zähler ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":e.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[0]||(o[0]=s=>e.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-N5EbHNfB.js b/web/settings/assets/counter-Drr6VJPX.js similarity index 89% rename from web/settings/assets/counter-N5EbHNfB.js rename to web/settings/assets/counter-Drr6VJPX.js index 04d2978975..99d96c94ac 100644 --- a/web/settings/assets/counter-N5EbHNfB.js +++ b/web/settings/assets/counter-Drr6VJPX.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as l,e as c,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKacoNHCounter",mixins:[u]},b={class:"device-kaco-nh-counter"};function f(t,e,g,v,w,k){const a=n("openwb-base-heading"),r=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),c("div",b,[o(a,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kaco NH SmartMeter ",-1)])]),_:1}),o(r,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[s(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1}),o(p,{title:"ID",required:"",min:"0",max:"65535","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=m=>t.updateConfiguration(m,"configuration.id"))},null,8,["model-value"])])}const q=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/counter.vue"]]);export{q as default}; +import{C as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as n,k as l,e as c,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKacoNHCounter",mixins:[u]},b={class:"device-kaco-nh-counter"};function f(t,e,g,v,w,k){const a=n("openwb-base-heading"),r=n("openwb-base-alert"),p=n("openwb-base-number-input");return l(),c("div",b,[o(a,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kaco NH SmartMeter ",-1)])]),_:1}),o(r,{subtype:"info"},{default:i(()=>[...e[2]||(e[2]=[s(" Mit diesem Modul ist kein phasenbasiertes Lastmanagement möglich, da keine Ströme der einzelnen Phasen gemessen werden. ",-1)])]),_:1}),o(p,{title:"ID",required:"",min:"0",max:"65535","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=m=>t.updateConfiguration(m,"configuration.id"))},null,8,["model-value"])])}const q=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/counter.vue"]]);export{q as default}; diff --git a/web/settings/assets/counter-CWRQi4AZ.js b/web/settings/assets/counter-SFsLwkGI.js similarity index 88% rename from web/settings/assets/counter-CWRQi4AZ.js rename to web/settings/assets/counter-SFsLwkGI.js index d1a7e1ff49..d7c47fc68a 100644 --- a/web/settings/assets/counter-CWRQi4AZ.js +++ b/web/settings/assets/counter-SFsLwkGI.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as c,l as t,k as m,e as d,m as o,q as s,A as l,x as n,J as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,x,v){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return m(),d("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as c,l as t,k as m,e as d,m as o,q as s,A as l,x as n,J as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShellyCounter",mixins:[p]},f={class:"device-shelly-counter"},h={class:"small"};function b(r,e,g,y,x,v){const i=t("openwb-base-heading"),a=t("openwb-base-alert");return m(),d("div",f,[o(i,null,{default:s(()=>[e[0]||(e[0]=l(" Einstellungen für Shelly Zähler ",-1)),n("span",h,"(Modul: "+u(r.$options.name)+")",1)]),_:1}),o(a,{subtype:"info"},{default:s(()=>[...e[1]||(e[1]=[n("span",{class:"text-danger"}," Als EVU-Zähler werden nur dreiphasige Shelly unterstützt (z.B. Shelly 3EM, Shelly Pro 3EM)",-1),n("br",null,null,-1),l(" Diese Komponente benötigt keine Einstellungen. ",-1)])]),_:1})])}const V=c(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/counter.vue"]]);export{V as default}; diff --git a/web/settings/assets/counter-BLIDMuvJ.js b/web/settings/assets/counter-YlkeS6Em.js similarity index 97% rename from web/settings/assets/counter-BLIDMuvJ.js rename to web/settings/assets/counter-YlkeS6Em.js index eea449c587..42d9abd43b 100644 --- a/web/settings/assets/counter-BLIDMuvJ.js +++ b/web/settings/assets/counter-YlkeS6Em.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as s,k as p,e as g,m as i,q as a,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>[...e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])]),_:1}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>[...e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const U=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{U as default}; +import{C as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as s,k as p,e as g,m as i,q as a,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpCounter",mixins:[u]},b={class:"device-http-counter"};function f(t,e,w,v,k,S){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),g("div",b,[i(d,null,{default:a(()=>[...e[6]||(e[6]=[n(" Einstellungen für Http Zähler ",-1)])]),_:1}),i(o,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=r=>t.updateConfiguration(r,"configuration.power_path"))},{help:a(()=>[...e[7]||(e[7]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Bezug",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.imported_path,"onUpdate:modelValue":e[1]||(e[1]=r=>t.updateConfiguration(r,"configuration.imported_path"))},{help:a(()=>[...e[8]||(e[8]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Zählerstand Einspeisung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[2]||(e[2]=r=>t.updateConfiguration(r,"configuration.exported_path"))},{help:a(()=>[...e[9]||(e[9]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 1",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l1_path,"onUpdate:modelValue":e[3]||(e[3]=r=>t.updateConfiguration(r,"configuration.current_l1_path"))},{help:a(()=>[...e[10]||(e[10]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 1. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 2",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l2_path,"onUpdate:modelValue":e[4]||(e[4]=r=>t.updateConfiguration(r,"configuration.current_l2_path"))},{help:a(()=>[...e[11]||(e[11]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 2. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"]),i(o,{title:"Pfad für Strom Phase 3",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.current_l3_path,"onUpdate:modelValue":e[5]||(e[5]=r=>t.updateConfiguration(r,"configuration.current_l3_path"))},{help:a(()=>[...e[12]||(e[12]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Stromstärke der 3. Phase in Ampere darstellt.",-1),l("br",null,null,-1),n(" Wird dieses Feld leer gelassen, werden keine Phasenströme ermittelt und es kann kein Lastmanagement berechnet werden! ",-1)])]),_:1},8,["model-value"])])}const U=m(h,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/counter.vue"]]);export{U as default}; diff --git a/web/settings/assets/counter-C9TFKAZS.js b/web/settings/assets/counter-c-gM0svN.js similarity index 92% rename from web/settings/assets/counter-C9TFKAZS.js rename to web/settings/assets/counter-c-gM0svN.js index d7e26eb458..97dfdb1ca0 100644 --- a/web/settings/assets/counter-C9TFKAZS.js +++ b/web/settings/assets/counter-c-gM0svN.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as b,e as c,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceOpenwbFlexCounter",mixins:[d]},_={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),c("div",_,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as o,k as b,e as c,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceOpenwbFlexCounter",mixins:[d]},_={class:"device-openwb-flex-counter"};function v(n,e,w,g,M,x){const l=o("openwb-base-heading"),a=o("openwb-base-alert"),p=o("openwb-base-select-input"),u=o("openwb-base-number-input");return b(),c("div",_,[t(l,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für openWB-Flex Zähler ",-1)])]),_:1}),t(a,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(" Bei saldierenden Zählern (MPM3PM, B23) werden die Zählerstände für Einspeisung und Bezug aus dem Zähler ausgelesen. Bei Zählern, die nicht saldierend arbeiten (Lovato, SDM630, SDM72D-M), werden die Zählerstände von der openWB berechnet. ",-1)])]),_:1}),t(p,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:3,text:"B23"},{value:1,text:"Lovato"},{value:0,text:"MPM3PM"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.version"))},null,8,["model-value"]),t(u,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":n.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.id"))},null,8,["model-value"])])}const $=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/counter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/counter-C5lMgFh-.js b/web/settings/assets/counter-tDR8t7cN.js similarity index 84% rename from web/settings/assets/counter-C5lMgFh-.js rename to web/settings/assets/counter-tDR8t7cN.js index 6244a2d82e..70ad44f73e 100644 --- a/web/settings/assets/counter-C5lMgFh-.js +++ b/web/settings/assets/counter-tDR8t7cN.js @@ -1 +1 @@ -import{C as o}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as a,e as i,m as r,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceJanitzaBat",mixins:[o]},u={class:"device-janitza-counter"};function _(d,e,f,l,v,b){const t=s("openwb-base-alert");return a(),i("div",u,[r(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])]),_:1})])}const j=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{j as default}; +import{C as o}from"./HardwareInstallation-DW5TYu17.js";import{_ as n,l as s,k as a,e as i,m as r,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceJanitzaBat",mixins:[o]},u={class:"device-janitza-counter"};function _(d,e,f,l,v,b){const t=s("openwb-base-alert");return a(),i("div",u,[r(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(' ModbusTCP muss im Janitza auf Port 502 aktiv und die ID auf "1" eingestellt sein. ',-1)])]),_:1})])}const j=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/counter.vue"]]);export{j as default}; diff --git a/web/settings/assets/counter_consumption-DMUt0xYl.js b/web/settings/assets/counter_consumption-Ds8Se4iG.js similarity index 90% rename from web/settings/assets/counter_consumption-DMUt0xYl.js rename to web/settings/assets/counter_consumption-Ds8Se4iG.js index daa9797db7..6630205202 100644 --- a/web/settings/assets/counter_consumption-DMUt0xYl.js +++ b/web/settings/assets/counter_consumption-Ds8Se4iG.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as p,k as d,e as u,m as t,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},c={class:"device-sonnenbatterie-counter-consumption"};function m(i,e,f,_,b,v){const n=p("openwb-base-alert");return d(),u("div",c,[t(n,{subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])]),_:1}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])]),_:1},8,["subtype"])])}const E=a(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{E as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as p,k as d,e as u,m as t,q as o,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceSonnenbatterieCounterConsumption",mixins:[s]},c={class:"device-sonnenbatterie-counter-consumption"};function m(i,e,f,_,b,v){const n=p("openwb-base-alert");return d(),u("div",c,[t(n,{subtype:"info"},{default:o(()=>[...e[0]||(e[0]=[r(" Diese Komponente liest die Daten des Verbrauchszählers der Sonnenbatterie aus, nicht die EVU-Daten! Es ist ggf. ein virtueller Zähler als EVU-Zähler zu konfigurieren, falls kein anderer Zähler vorhanden ist und ausgelesen werden kann. ",-1)])]),_:1}),t(n,{subtype:i.device.configuration.variant!==3?"danger":"info"},{default:o(()=>[...e[1]||(e[1]=[r(" Diese Komponente kann nur in Verbindung mit der JSON-API v2 verwendet werden, da die anderen Schnittstellen die Daten nicht zur Verfügung stellen. ",-1)])]),_:1},8,["subtype"])])}const E=a(l,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/counter_consumption.vue"]]);export{E as default}; diff --git a/web/settings/assets/counter_maxstorage-BPEg9Ghm.js b/web/settings/assets/counter_maxstorage-CTGozg4B.js similarity index 90% rename from web/settings/assets/counter_maxstorage-BPEg9Ghm.js rename to web/settings/assets/counter_maxstorage-CTGozg4B.js index 8414b0de90..6dfc2ed65f 100644 --- a/web/settings/assets/counter_maxstorage-BPEg9Ghm.js +++ b/web/settings/assets/counter_maxstorage-CTGozg4B.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as o,k as d,e as _,m as n,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxMsCounter",mixins:[p]},b={class:"device-solarmax-counter-maxstorage"};function f(t,e,g,x,v,A){const r=o("openwb-base-heading"),i=o("openwb-base-alert"),m=o("openwb-base-number-input");return d(),_("div",b,[n(r,null,{default:a(()=>[...e[1]||(e[1]=[s(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zähler ",-1)])]),_:1}),n(i,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Bei Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zählern lassen sich die Ströme einzelner Phasen nicht auslesen. Eine Regelung ist daher nur anhand der Gesamtleistung möglich. ",-1)])]),_:1}),n(m,{title:"Modbus ID",required:"","model-value":t.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/counter_maxstorage.vue"]]);export{T as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as o,k as d,e as _,m as n,q as a,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxMsCounter",mixins:[p]},b={class:"device-solarmax-counter-maxstorage"};function f(t,e,g,x,v,A){const r=o("openwb-base-heading"),i=o("openwb-base-alert"),m=o("openwb-base-number-input");return d(),_("div",b,[n(r,null,{default:a(()=>[...e[1]||(e[1]=[s(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zähler ",-1)])]),_:1}),n(i,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Bei Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Zählern lassen sich die Ströme einzelner Phasen nicht auslesen. Eine Regelung ist daher nur anhand der Gesamtleistung möglich. ",-1)])]),_:1}),n(m,{title:"Modbus ID",required:"","model-value":t.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/counter_maxstorage.vue"]]);export{T as default}; diff --git a/web/settings/assets/counter_sm-CDb5bKKk.js b/web/settings/assets/counter_sm-pNrELGGt.js similarity index 95% rename from web/settings/assets/counter_sm-CDb5bKKk.js rename to web/settings/assets/counter_sm-pNrELGGt.js index 590ca95165..76f77c70ce 100644 --- a/web/settings/assets/counter_sm-CDb5bKKk.js +++ b/web/settings/assets/counter_sm-pNrELGGt.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as f,l as i,k as g,e as c,m as o,q as a,A as t,x as l,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,k,S,s){const d=i("openwb-base-heading"),m=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(d,null,{default:a(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])]),_:1}),o(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>[...e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as f,l as i,k as g,e as c,m as o,q as a,A as t,x as l,J as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFroniusCounterSM",mixins:[p],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},v={class:"device-fronius-counter-sm"},w=["href"];function D(n,e,M,k,S,s){const d=i("openwb-base-heading"),m=i("openwb-base-select-input"),u=i("openwb-base-number-input");return g(),c("div",v,[o(d,null,{default:a(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius SmartMeter ",-1)])]),_:1}),o(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.variant"))},{help:a(()=>[...e[3]||(e[3]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.meter_id"))},{help:a(()=>[e[4]||(e[4]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},b(s.meterRealtimeUrl),9,w),e[5]||(e[5]=l("br",null,null,-1)),e[6]||(e[6]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const U=f(_,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/counter_sm.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-NkTYsz5d.js b/web/settings/assets/device-1i0aaNC5.js similarity index 91% rename from web/settings/assets/device-NkTYsz5d.js rename to web/settings/assets/device-1i0aaNC5.js index 0dac61f806..40eac50533 100644 --- a/web/settings/assets/device-NkTYsz5d.js +++ b/web/settings/assets/device-1i0aaNC5.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as i,k as d,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKacoNH",mixins:[u]},v={class:"device-kaco-nh"};function _(o,e,b,g,w,k){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return d(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Kaco NH ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Seriennummer",required:"","model-value":o.device.configuration.serial_number,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.serial_number"))},null,8,["model-value"])])}const H=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/device.vue"]]);export{H as default}; +import{D as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as i,k as d,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKacoNH",mixins:[u]},v={class:"device-kaco-nh"};function _(o,e,b,g,w,k){const r=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return d(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Kaco NH ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Seriennummer",required:"","model-value":o.device.configuration.serial_number,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.serial_number"))},null,8,["model-value"])])}const H=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/device.vue"]]);export{H as default}; diff --git a/web/settings/assets/device-Akr-Eknl.js b/web/settings/assets/device-B25qse-T.js similarity index 89% rename from web/settings/assets/device-Akr-Eknl.js rename to web/settings/assets/device-B25qse-T.js index 1c07868db7..15b5bd7d13 100644 --- a/web/settings/assets/device-Akr-Eknl.js +++ b/web/settings/assets/device-B25qse-T.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as m,e as d,m as i,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return m(),d("div",f,[i(a,null,{default:u(()=>[...e[2]||(e[2]=[c(" Einstellungen für Solarmax ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as t,k as m,e as d,m as i,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmax",mixins:[p]},f={class:"device-solarmax"};function b(o,e,v,g,x,w){const a=t("openwb-base-heading"),r=t("openwb-base-text-input"),s=t("openwb-base-number-input");return m(),d("div",f,[i(a,null,{default:u(()=>[...e[2]||(e[2]=[c(" Einstellungen für Solarmax ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-iH7FSbYH.js b/web/settings/assets/device-B2nna1eX.js similarity index 92% rename from web/settings/assets/device-iH7FSbYH.js rename to web/settings/assets/device-B2nna1eX.js index 237c609c8c..61fa530120 100644 --- a/web/settings/assets/device-iH7FSbYH.js +++ b/web/settings/assets/device-B2nna1eX.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as c,e as b,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPlenticore",mixins:[u]},_={class:"device-kostal-plenticore"};function v(o,e,g,w,k,C){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return c(),b("div",_,[t(l,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const W=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{W as default}; +import{D as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as i,k as c,e as b,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPlenticore",mixins:[u]},_={class:"device-kostal-plenticore"};function v(o,e,g,w,k,C){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return c(),b("div",_,[t(l,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Kostal Plenticore ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(" Wenn am Kostal Plenticore-Wechselrichter ein EM300 oder Kostal Smart Energy Meter (KSEM) angeschlossen ist, muss eine Zähler-und eine Wechselrichter-Komponente angelegt werden. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const W=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_plenticore/device.vue"]]);export{W as default}; diff --git a/web/settings/assets/device-DrU2EIBQ.js b/web/settings/assets/device-B6C66MkE.js similarity index 87% rename from web/settings/assets/device-DrU2EIBQ.js rename to web/settings/assets/device-B6C66MkE.js index 88f48fb4d9..14c3ee6488 100644 --- a/web/settings/assets/device-DrU2EIBQ.js +++ b/web/settings/assets/device-B6C66MkE.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartfox",mixins:[r]},f={class:"device-smartfox"};function _(o,e,v,x,b,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",f,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für Smartfox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartfox",mixins:[r]},f={class:"device-smartfox"};function _(o,e,v,x,b,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",f,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für Smartfox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smartfox/smartfox/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-CkLXsAHJ.js b/web/settings/assets/device-B8YHisMb.js similarity index 91% rename from web/settings/assets/device-CkLXsAHJ.js rename to web/settings/assets/device-B8YHisMb.js index c0b5a41ecf..119607c7dd 100644 --- a/web/settings/assets/device-CkLXsAHJ.js +++ b/web/settings/assets/device-B8YHisMb.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as p,e as m,m as i,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceThermia",mixins:[d]},v={class:"device-thermia"};function _(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",v,[i(r,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{T as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as t,k as p,e as m,m as i,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceThermia",mixins:[d]},v={class:"device-thermia"};function _(o,e,c,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return p(),m("div",v,[i(r,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Thermia ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const T=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/thermia/thermia/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-D6aGb8Ub.js b/web/settings/assets/device-B8aJ_v6z.js similarity index 90% rename from web/settings/assets/device-D6aGb8Ub.js rename to web/settings/assets/device-B8aJ_v6z.js index 5d267353e9..9deea60605 100644 --- a/web/settings/assets/device-D6aGb8Ub.js +++ b/web/settings/assets/device-B8aJ_v6z.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as c,e as m,m as o,q as s,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),m("div",f,[o(a,null,{default:s(()=>[...e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])]),_:1}),o(r,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as t,k as c,e as m,m as o,q as s,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPiko",mixins:[d]},f={class:"device-kostal-piko"};function b(n,e,v,g,k,h){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input");return c(),m("div",f,[o(a,null,{default:s(()=>[...e[1]||(e[1]=[i(" Einstellungen für Kostal Piko ",-1)])]),_:1}),o(r,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[i(" Der Wechselrichter liefert Werte nur, solange er auch PV-Leistung liefert. Nachts geht er in den Standby. Die Hausanschlussüberwachung ist nur aktiv, wenn der Wechselrichter auch aktiv ist. ",-1)])]),_:1}),o(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>n.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const y=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-D89U0LFt.js b/web/settings/assets/device-B9NfuMek.js similarity index 91% rename from web/settings/assets/device-D89U0LFt.js rename to web/settings/assets/device-B9NfuMek.js index 756c1f1349..636d2c1cb7 100644 --- a/web/settings/assets/device-D89U0LFt.js +++ b/web/settings/assets/device-B9NfuMek.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as l,e as b,m as i,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},v={class:"device-huawei-emma"};function _(o,e,g,w,c,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",v,[i(s,null,{default:u(()=>[...e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[...e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{$ as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as t,k as l,e as b,m as i,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHuaweiEmma",mixins:[m]},v={class:"device-huawei-emma"};function _(o,e,g,w,c,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),b("div",v,[i(s,null,{default:u(()=>[...e[3]||(e[3]=[d(" Einstellungen für Huawei EMMA ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"0",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},{help:u(()=>[...e[4]||(e[4]=[d(" Huawei Emma nutzt entgegen der Modbus-Spezifikation standardmäßig die Modbus ID 0. ",-1)])]),_:1},8,["model-value"])])}const $=p(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_emma/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-jAbWqT5Y.js b/web/settings/assets/device-BIqpmcKH.js similarity index 94% rename from web/settings/assets/device-jAbWqT5Y.js rename to web/settings/assets/device-BIqpmcKH.js index 18ad360b79..2a8c01d582 100644 --- a/web/settings/assets/device-jAbWqT5Y.js +++ b/web/settings/assets/device-BIqpmcKH.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as v,l as t,k as i,e as f,m as a,q as c,A as b,y as u,u as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,k,q){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>[...o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])]),_:1}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const $=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{$ as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as v,l as t,k as i,e as f,m as a,q as c,A as b,y as u,u as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceAlphaess",mixins:[m]},_={class:"device-alphaess"};function w(e,o,V,C,k,q){const d=t("openwb-base-heading"),s=t("openwb-base-select-input"),p=t("openwb-base-text-input"),l=t("openwb-base-number-input");return i(),f("div",_,[a(d,null,{default:c(()=>[...o[5]||(o[5]=[b(" Einstellungen für Alpha ESS ",-1)])]),_:1}),a(s,{title:"Ausleseart","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Alpha ESS-Kit"},{value:1,text:"Hi 5/10"}],"model-value":e.device.configuration.source,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.source"))},null,8,["model-value"]),e.device.configuration.source==1?(i(),u(p,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":e.device.configuration.ip_address,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":e.device.configuration.port,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])):r("",!0),e.device.configuration.source==1?(i(),u(l,{key:2,title:"Modbus ID",required:"","model-value":e.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":o[3]||(o[3]=n=>e.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])):r("",!0),a(s,{title:"Firmware Version","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"EMS älter als 1.23V"},{value:1,text:"EMS 1.23V oder neuer"}],"model-value":e.device.configuration.version,"onUpdate:modelValue":o[4]||(o[4]=n=>e.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const $=v(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/alpha_ess/alpha_ess/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-DqksrJOB.js b/web/settings/assets/device-BLQIpNFk.js similarity index 89% rename from web/settings/assets/device-DqksrJOB.js rename to web/settings/assets/device-BLQIpNFk.js index e5a2d8d760..cdf4be70d1 100644 --- a/web/settings/assets/device-DqksrJOB.js +++ b/web/settings/assets/device-BLQIpNFk.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSigenergy",mixins:[p]},_={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[g("Einstellungen für Sigenergy",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSigenergy",mixins:[p]},_={class:"device-sigenergy"};function f(o,e,b,v,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[g("Einstellungen für Sigenergy",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-CFpXw0Yl.js b/web/settings/assets/device-BLcj2_F_.js similarity index 91% rename from web/settings/assets/device-CFpXw0Yl.js rename to web/settings/assets/device-BLcj2_F_.js index 2dbe8b7336..89aa5934aa 100644 --- a/web/settings/assets/device-CFpXw0Yl.js +++ b/web/settings/assets/device-BLcj2_F_.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceIDM",mixins:[m]},v={class:"device-idm"};function c(o,e,g,w,C,D){const r=i("openwb-base-heading"),u=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(r,null,{default:a(()=>[...e[3]||(e[3]=[d(" Einstellungen für IDM ",-1)])]),_:1}),t(u,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss in der Fachmannebene aktiviert sein. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/idm/idm/device.vue"]]);export{P as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceIDM",mixins:[m]},v={class:"device-idm"};function c(o,e,g,w,C,D){const r=i("openwb-base-heading"),u=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(r,null,{default:a(()=>[...e[3]||(e[3]=[d(" Einstellungen für IDM ",-1)])]),_:1}),t(u,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss in der Fachmannebene aktiviert sein. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/idm/idm/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-CUOUt23w.js b/web/settings/assets/device-BQJszAHJ.js similarity index 92% rename from web/settings/assets/device-CUOUt23w.js rename to web/settings/assets/device-BQJszAHJ.js index 681081b831..036d4e7710 100644 --- a/web/settings/assets/device-CUOUt23w.js +++ b/web/settings/assets/device-BQJszAHJ.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const d=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(d,null,{default:a(()=>[...e[3]||(e[3]=[r(" Einstellungen für Siemens ",-1)])]),_:1}),t(p,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[r(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{U as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as i,k as b,e as f,m as t,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemens",mixins:[m]},v={class:"device-siemens"};function c(o,e,g,w,C,x){const d=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(d,null,{default:a(()=>[...e[3]||(e[3]=[r(" Einstellungen für Siemens ",-1)])]),_:1}),t(p,{subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[r(" Im Siemens-Speicher muss die Schnittstelle openWB gewählt werden. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-JZQCuW65.js b/web/settings/assets/device-BTX_U2ze.js similarity index 92% rename from web/settings/assets/device-JZQCuW65.js rename to web/settings/assets/device-BTX_U2ze.js index a47dd19398..c390508c79 100644 --- a/web/settings/assets/device-JZQCuW65.js +++ b/web/settings/assets/device-BTX_U2ze.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as s,k as p,e as l,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,b,_,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>[...e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])]),_:1}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])]),_:1},8,["model-value"])])}const A=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{A as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as s,k as p,e as l,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceLG",mixins:[m]},f={class:"device-lg"};function c(n,e,v,b,_,w){const d=s("openwb-base-heading"),o=s("openwb-base-text-input");return p(),l("div",f,[t(d,null,{default:r(()=>[...e[2]||(e[2]=[a(" Einstellungen für LG ESS V1.0 ",-1)])]),_:1}),t(o,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(o,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.password"))},{help:r(()=>[...e[3]||(e[3]=[a(' Passwort, um sich in den LG ESS V1.0 einzuloggen. Das Passwort ist standardmäßig die Registrierungsnummer, die sich auf einem Aufkleber auf dem PCS (dem Hybridwechselrichter und Batteriemanagementsystem) befindet. Alternativ findet man die Registrierungsnummer in der App unter dem Menüpunkt "Systeminformationen". Mit der Registrierungsnummer kann man sich dann in der Rolle "installer" einloggen. ',-1)])]),_:1},8,["model-value"])])}const A=u(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/lg/lg/device.vue"]]);export{A as default}; diff --git a/web/settings/assets/device-zXBzry27.js b/web/settings/assets/device-BTaZLgZX.js similarity index 93% rename from web/settings/assets/device-zXBzry27.js rename to web/settings/assets/device-BTaZLgZX.js index 303e8ef38c..76d5f25306 100644 --- a/web/settings/assets/device-zXBzry27.js +++ b/web/settings/assets/device-BTaZLgZX.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolarEdge",mixins:[u]},_={class:"device-solaredge"};function v(n,e,w,B,h,k){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),l=o("openwb-base-text-input"),p=o("openwb-base-number-input");return b(),c("div",_,[t(a,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),f("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Du mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(p,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>[...e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{D as default}; +import{D as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as o,k as b,e as c,m as t,q as s,A as r,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSolarEdge",mixins:[u]},_={class:"device-solaredge"};function v(n,e,w,B,h,k){const a=o("openwb-base-heading"),d=o("openwb-base-alert"),l=o("openwb-base-text-input"),p=o("openwb-base-number-input");return b(),c("div",_,[t(a,null,{default:s(()=>[...e[2]||(e[2]=[r(" Einstellungen für SolarEdge ",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[r(" ModbusTCP muss im Wechselrichter aktiviert werden und der Wechselrichter per LAN angebunden sein.",-1),f("br",null,null,-1),r(" SolarEdge lässt nur eine ModbusTCP-Verbindung zu. Wenn Du mit einem weiteren SmartHome-System, wie z.B. ioBroker oder openHAB, den SolarEdge-Wechselrichter abfragen, kann dies die Abfrage durch die openWB stören oder verhindern. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(p,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},{help:s(()=>[...e[4]||(e[4]=[r(" Je nach Produktionsdatum und Softwareversion ist 502 oder 1502 ab Werk eingestellt. Bitte im Wechselrichter überprüfen. ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-nVYvqlQr.js b/web/settings/assets/device-BTcCLzsp.js similarity index 91% rename from web/settings/assets/device-nVYvqlQr.js rename to web/settings/assets/device-BTcCLzsp.js index 29e787a973..5bb815adf1 100644 --- a/web/settings/assets/device-nVYvqlQr.js +++ b/web/settings/assets/device-BTcCLzsp.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as u,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSaxpower",mixins:[p]},v={class:"device-saxpower"};function _(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as i,k as u,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSaxpower",mixins:[p]},v={class:"device-saxpower"};function _(o,e,c,g,w,x){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return u(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Saxpower ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/saxpower/saxpower/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DgWAC9VW.js b/web/settings/assets/device-BVBeJeaC.js similarity index 89% rename from web/settings/assets/device-DgWAC9VW.js rename to web/settings/assets/device-BVBeJeaC.js index 74d9083a4b..509e4094ad 100644 --- a/web/settings/assets/device-DgWAC9VW.js +++ b/web/settings/assets/device-BVBeJeaC.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceChint",mixins:[p]},f={class:"device-chint"};function b(o,e,v,g,w,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Chint ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceChint",mixins:[p]},f={class:"device-chint"};function b(o,e,v,g,w,C){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Chint ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/chint/chint/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-f9fnP_KM.js b/web/settings/assets/device-Bb5dj_A8.js similarity index 95% rename from web/settings/assets/device-f9fnP_KM.js rename to web/settings/assets/device-Bb5dj_A8.js index 09fbefa53c..9d23933ef8 100644 --- a/web/settings/assets/device-f9fnP_KM.js +++ b/web/settings/assets/device-Bb5dj_A8.js @@ -1 +1 @@ -import{D as w}from"./HardwareInstallation-DrK-NlWu.js";import{_ as c,l as t,k as s,e as f,m as r,q as a,A as o,y as d,u as l,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHuawei",mixins:[w]},_={class:"device-huawei"};function k(n,e,D,H,C,y){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",_,[r(p,null,{default:a(()=>[...e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])]),_:1}),r(m,{subtype:"info"},{default:a(()=>[...e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])]),_:1}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>[...e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])]),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>[...e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])]),_:1},8,["model-value"])])}const E=c(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{E as default}; +import{D as w}from"./HardwareInstallation-DW5TYu17.js";import{_ as c,l as t,k as s,e as f,m as r,q as a,A as o,y as d,u as l,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHuawei",mixins:[w]},_={class:"device-huawei"};function k(n,e,D,H,C,y){const p=t("openwb-base-heading"),m=t("openwb-base-alert"),g=t("openwb-base-text-input"),u=t("openwb-base-number-input"),b=t("openwb-base-select-input");return s(),f("div",_,[r(p,null,{default:a(()=>[...e[4]||(e[4]=[o(" Einstellungen für Huawei ",-1)])]),_:1}),r(m,{subtype:"info"},{default:a(()=>[...e[5]||(e[5]=[o(' Die Antwort der Huawei Wechselrichter benötigt sehr viel Zeit. Es wird empfohlen, dass Regelintervall der openWB auf "sehr langsam" zu stellen. Mit unserem Huawei-Kit können Huawei Wechselrichter auch in normaler Regelgeschwindigkeit abgefragt werden. ',-1)])]),_:1}),n.device.configuration.type!="huawei_kit"?(s(),d(g,{key:0,title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"])):l("",!0),n.device.configuration.type!="huawei_kit"?(s(),d(u,{key:1,title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])):l("",!0),r(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.modbus_id"))},{help:a(()=>[...e[6]||(e[6]=[o(' Sind mehrere Huawei Wechselrichter als "Schwarm" verbunden, dann besitzt der Master vermutlich die ID "16". Über diese ID werden dann alle Daten in Summe zur Verfügung gestellt.',-1),v("br",null,null,-1),o(" Die IDs 1 bis 15 sind für einzelne Wechselrichter reserviert. ",-1)])]),_:1},8,["model-value"]),r(b,{title:"Anbindung","not-selected":"Bitte auswählen",options:[{value:"s_dongle",text:"SDongle"},{value:"huawei_kit",text:"Huawei Kit"},{value:"modbus_rtu",text:"Modbus RTU (mit Modbus/TCP Adapter)"}],"model-value":n.device.configuration.type,required:"","onUpdate:modelValue":e[3]||(e[3]=i=>n.updateConfiguration(i,"configuration.type"))},{help:a(()=>[...e[7]||(e[7]=[o(' Die Anbindung über den Huawei SDongle erfordert die Regelgeschwindigkeit "sehr langsam". Alternativ kann Huawei auch mittels Modbus/TCP Adapter (z.B. Protoss oder Elfin) über den Modbus RTU Ausgang des Wechselrichters abgefragt werden. Hier gibt es keine Einschränkungen der Regelgeschwindigkeit. Eine gleichzeitige Nutzung von SDongle und Modbus RTU ist nicht möglich. ',-1)])]),_:1},8,["model-value"])])}const E=c(h,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-Djudo4I7.js b/web/settings/assets/device-BgwGgK4V.js similarity index 93% rename from web/settings/assets/device-Djudo4I7.js rename to web/settings/assets/device-BgwGgK4V.js index 8b2a7317ff..53b5d125cc 100644 --- a/web/settings/assets/device-Djudo4I7.js +++ b/web/settings/assets/device-BgwGgK4V.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as b,l as t,k as f,e as v,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShelly",mixins:[m]},c={class:"device-shelly"};function g(n,e,h,w,y,V){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-select-input"),u=t("openwb-base-number-input");return f(),v("div",c,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Shelly ",-1)])]),_:1}),i(r,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[l(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":n.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.factor"))},{help:s(()=>[...e[5]||(e[5]=[l(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Phase",required:"",min:1,max:3,"model-value":n.device.configuration.phase,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.phase"))},{help:s(()=>[...e[6]||(e[6]=[l(" Gibt an an welcher Phase des Hausanschlusses die (erste) Phase des Shelly angeschlossen ist. ",-1)])]),_:1},8,["model-value"])])}const M=b(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{M as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as b,l as t,k as f,e as v,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceShelly",mixins:[m]},c={class:"device-shelly"};function g(n,e,h,w,y,V){const a=t("openwb-base-heading"),r=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-select-input"),u=t("openwb-base-number-input");return f(),v("div",c,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Shelly ",-1)])]),_:1}),i(r,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[l(" Unterstützt werden theoretisch alle ein- und dreiphasigen Shelly der Generation 1-3. Getestete Modelle sind Shelly 1pm, 1pm plus, Pro Pro 3EM, Plug S. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Vorzeichen invertieren","not-selected":"Bitte auswählen",options:[{value:-1,text:"ja"},{value:1,text:"nein"}],"model-value":n.device.configuration.factor,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.factor"))},{help:s(()=>[...e[5]||(e[5]=[l(" Einige Shelly Modelle liefern die Leistung mit umgedrehtem Vorzeichen. Falls dies der Fall sein sollte, das Vorzeichen invertieren. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Phase",required:"",min:1,max:3,"model-value":n.device.configuration.phase,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.phase"))},{help:s(()=>[...e[6]||(e[6]=[l(" Gibt an an welcher Phase des Hausanschlusses die (erste) Phase des Shelly angeschlossen ist. ",-1)])]),_:1},8,["model-value"])])}const M=b(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/shelly/shelly/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-B--mch3K.js b/web/settings/assets/device-BhtRgBIo.js similarity index 87% rename from web/settings/assets/device-B--mch3K.js rename to web/settings/assets/device-BhtRgBIo.js index 369a67c30b..4bb2ff8819 100644 --- a/web/settings/assets/device-B--mch3K.js +++ b/web/settings/assets/device-BhtRgBIo.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceBatterX",mixins:[r]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für BatterX ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as o,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceBatterX",mixins:[r]},_={class:"device-batterx"};function f(t,e,b,v,x,g){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),m("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für BatterX ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>t.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/batterx/batterx/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-fRG5_uqe.js b/web/settings/assets/device-BleyPfYn.js similarity index 89% rename from web/settings/assets/device-fRG5_uqe.js rename to web/settings/assets/device-BleyPfYn.js index 8a068b6213..0222e1d88a 100644 --- a/web/settings/assets/device-fRG5_uqe.js +++ b/web/settings/assets/device-BleyPfYn.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as i,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function v(o,e,w,_,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const D=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{D as default}; +import{D as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as i,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunways",mixins:[r]},f={class:"device-sunways"};function v(o,e,w,_,b,g){const a=i("openwb-base-heading"),s=i("openwb-base-text-input");return d(),u("div",f,[t(a,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Sunways ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const D=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sunways/sunways/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-I28jsbnC.js b/web/settings/assets/device-BnbWTLTe.js similarity index 92% rename from web/settings/assets/device-I28jsbnC.js rename to web/settings/assets/device-BnbWTLTe.js index c8dfadb250..ab4be0448d 100644 --- a/web/settings/assets/device-I28jsbnC.js +++ b/web/settings/assets/device-BnbWTLTe.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAlgodue",mixins:[p]},_={class:"device-algodue"};function g(o,e,c,w,C,D){const r=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),f("div",_,[t(r,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Algodue",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{B as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAlgodue",mixins:[p]},_={class:"device-algodue"};function g(o,e,c,w,C,D){const r=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),u=i("openwb-base-number-input");return b(),f("div",_,[t(r,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Algodue",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" ModbusTCP muss aktiviert sein. Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/algodue/algodue/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-B5RB3kWv.js b/web/settings/assets/device-BnuAgz8z.js similarity index 91% rename from web/settings/assets/device-B5RB3kWv.js rename to web/settings/assets/device-BnuAgz8z.js index 8e308bdcef..16dcb738ed 100644 --- a/web/settings/assets/device-B5RB3kWv.js +++ b/web/settings/assets/device-BnuAgz8z.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",v,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])]),_:1}),t(p,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; +import{D as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DevicePowerdog",mixins:[l]},v={class:"device-powerdog"};function g(o,e,c,w,C,x){const a=i("openwb-base-heading"),p=i("openwb-base-alert"),u=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",v,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[d(" Einstellungen für Powerdog ",-1)])]),_:1}),t(p,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[d(" ModbusTCP muss aktiviert sein. ",-1)])]),_:1}),t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=m(_,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerdog/powerdog/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-BuyzFtIE.js b/web/settings/assets/device-BoRz-h9D.js similarity index 87% rename from web/settings/assets/device-BuyzFtIE.js rename to web/settings/assets/device-BoRz-h9D.js index c0e21c71c1..50997c635d 100644 --- a/web/settings/assets/device-BuyzFtIE.js +++ b/web/settings/assets/device-BoRz-h9D.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmaWebbox",mixins:[p]},_={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für SMA Webbox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{h as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as r,l as t,k as d,e as m,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmaWebbox",mixins:[p]},_={class:"device-sma-webbox"};function b(o,e,f,v,x,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),m("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c(" Einstellungen für SMA Webbox ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(u,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_webbox/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-BUqTyqae.js b/web/settings/assets/device-BzspTrpe.js similarity index 87% rename from web/settings/assets/device-BUqTyqae.js rename to web/settings/assets/device-BzspTrpe.js index cebc9a63fe..70aa23f1e7 100644 --- a/web/settings/assets/device-BUqTyqae.js +++ b/web/settings/assets/device-BzspTrpe.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as t,k as d,e as l,m as s,q as u,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceYouless",mixins:[p]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>[...e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])]),_:1}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{h as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as r,l as t,k as d,e as l,m as s,q as u,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceYouless",mixins:[p]},_={class:"device-youless"};function f(o,e,v,b,g,x){const n=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[s(n,null,{default:u(()=>[...e[1]||(e[1]=[m(" Einstellungen für Youless ",-1)])]),_:1}),s(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=r(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-BKXFo9ZM.js b/web/settings/assets/device-C-2I3miB.js similarity index 89% rename from web/settings/assets/device-BKXFo9ZM.js rename to web/settings/assets/device-C-2I3miB.js index 311a92f930..a9398b048a 100644 --- a/web/settings/assets/device-BKXFo9ZM.js +++ b/web/settings/assets/device-C-2I3miB.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as m,e as u,m as i,q as s,A as o,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return m(),u("div",f,[i(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])]),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>[...e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as m,e as u,m as i,q as s,A as o,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceJson",mixins:[l]},f={class:"device-json"};function b(n,e,v,g,w,x){const r=t("openwb-base-heading"),a=t("openwb-base-text-input");return m(),u("div",f,[i(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für JSON ",-1)])]),_:1}),i(a,{title:"URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>n.updateConfiguration(p,"configuration.url"))},{help:s(()=>[...e[2]||(e[2]=[o(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein.",-1),c("br",null,null,-1),o(" Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-MN8XeDgn.js b/web/settings/assets/device-C3Gr4pTS.js similarity index 89% rename from web/settings/assets/device-MN8XeDgn.js rename to web/settings/assets/device-C3Gr4pTS.js index fef2a72e79..36bcccb2ef 100644 --- a/web/settings/assets/device-MN8XeDgn.js +++ b/web/settings/assets/device-C3Gr4pTS.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as s,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[t(r,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as s,k as d,e as u,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDiscovergy",mixins:[a]},v={class:"device-discovergy"};function f(o,e,g,_,b,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return d(),u("div",v,[t(r,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Discovergy ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-D03RaIUC.js b/web/settings/assets/device-CBCwFYPC.js similarity index 86% rename from web/settings/assets/device-D03RaIUC.js rename to web/settings/assets/device-CBCwFYPC.js index c51931ac5b..9a9e2cd145 100644 --- a/web/settings/assets/device-D03RaIUC.js +++ b/web/settings/assets/device-CBCwFYPC.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as d,e as c,m as n,q as m,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceRCT",mixins:[a]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{h as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as t,k as d,e as c,m as n,q as m,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceRCT",mixins:[a]},_={class:"device-rct"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),c("div",_,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[l(" Einstellungen für RCT ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/rct/rct/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-t3OGij3M.js b/web/settings/assets/device-CBmIgevJ.js similarity index 90% rename from web/settings/assets/device-t3OGij3M.js rename to web/settings/assets/device-CBmIgevJ.js index ae3e6f6611..70670026f5 100644 --- a/web/settings/assets/device-t3OGij3M.js +++ b/web/settings/assets/device-CBmIgevJ.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as l,e as c,m as i,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>[...e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])]),_:1},8,["model-value"])])}const E=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{E as default}; +import{D as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as l,e as c,m as i,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKaco",mixins:[u]},f={class:"device-kaco"};function b(o,e,v,g,w,x){const s=n("openwb-base-heading"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return l(),c("div",f,[i(s,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für Kaco ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},{help:a(()=>[...e[3]||(e[3]=[r(" Der Standardport für Kaco ist 502. ",-1)])]),_:1},8,["model-value"])])}const E=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DW4k7y4-.js b/web/settings/assets/device-CGFCc-6g.js similarity index 87% rename from web/settings/assets/device-DW4k7y4-.js rename to web/settings/assets/device-CGFCc-6g.js index b0559e7784..0d289d176f 100644 --- a/web/settings/assets/device-DW4k7y4-.js +++ b/web/settings/assets/device-CGFCc-6g.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as p,e as l,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarWorld",mixins:[a]},u={class:"device-solar_world"};function f(o,e,v,b,w,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),l("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{h as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as p,e as l,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarWorld",mixins:[a]},u={class:"device-solar_world"};function f(o,e,v,b,w,g){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return p(),l("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für SolarWorld ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_world/solar_world/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-DriAiQTh.js b/web/settings/assets/device-CJ46HRTm.js similarity index 89% rename from web/settings/assets/device-DriAiQTh.js rename to web/settings/assets/device-CJ46HRTm.js index aa74e3306c..243efc1216 100644 --- a/web/settings/assets/device-DriAiQTh.js +++ b/web/settings/assets/device-CJ46HRTm.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as i,k as m,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function v(o,e,_,b,g,w){const r=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>[...e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])]),_:1}),n(s,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as i,k as m,e as u,m as n,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSmartMe",mixins:[a]},f={class:"device-smart-me"};function v(o,e,_,b,g,w){const r=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",f,[n(r,null,{default:d(()=>[...e[2]||(e[2]=[l(" Einstellungen für smart-me ",-1)])]),_:1}),n(s,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const y=p(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-Fu4__SF-.js b/web/settings/assets/device-CM1a3210.js similarity index 92% rename from web/settings/assets/device-Fu4__SF-.js rename to web/settings/assets/device-CM1a3210.js index b78e6618f1..6321cad97a 100644 --- a/web/settings/assets/device-Fu4__SF-.js +++ b/web/settings/assets/device-CM1a3210.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as b,e as g,m as t,q as s,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSG",mixins:[p]},_={class:"device-sungrow-sg"};function v(o,e,c,w,C,S){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),g("div",_,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[u(" Einstellungen für Sungrow SG Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const N=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sg/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as i,k as b,e as g,m as t,q as s,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSG",mixins:[p]},_={class:"device-sungrow-sg"};function v(o,e,c,w,C,S){const a=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),g("div",_,[t(a,null,{default:s(()=>[...e[3]||(e[3]=[u(" Einstellungen für Sungrow SG Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[u(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const N=m(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sg/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-CX454zoq.js b/web/settings/assets/device-CMefLAy2.js similarity index 92% rename from web/settings/assets/device-CX454zoq.js rename to web/settings/assets/device-CMefLAy2.js index a8f124d7dc..d2a5f1aaf5 100644 --- a/web/settings/assets/device-CX454zoq.js +++ b/web/settings/assets/device-CMefLAy2.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSungrowIHM",mixins:[m]},g={class:"device-sungrow-ihm"};function v(o,e,c,w,C,k){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Sungrow iHomeManager",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" In der iSolarCloud muss Modbus TCP für Port 503 (!!!) aktiviert werden. Port 502 ist für die Kommunikation mit dem Wechselrichter vorgesehen. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_ihm/device.vue"]]);export{B as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSungrowIHM",mixins:[m]},g={class:"device-sungrow-ihm"};function v(o,e,c,w,C,k){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Sungrow iHomeManager",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" In der iSolarCloud muss Modbus TCP für Port 503 (!!!) aktiviert werden. Port 502 ist für die Kommunikation mit dem Wechselrichter vorgesehen. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_ihm/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-Ge0sqbOD.js b/web/settings/assets/device-CPQ3ylFo.js similarity index 91% rename from web/settings/assets/device-Ge0sqbOD.js rename to web/settings/assets/device-CPQ3ylFo.js index 1ec4448723..7cb158de10 100644 --- a/web/settings/assets/device-Ge0sqbOD.js +++ b/web/settings/assets/device-CPQ3ylFo.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{M as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as i,k as b,e as f,m as t,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceElgris",mixins:[p]},g={class:"device-elgris"};function v(o,e,c,w,C,D){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),l=i("openwb-base-text-input"),r=i("openwb-base-number-input");return b(),f("div",g,[t(u,null,{default:s(()=>[...e[3]||(e[3]=[a(" Einstellungen für Elgris",-1)])]),_:1}),t(d,{subtype:"info"},{default:s(()=>[...e[4]||(e[4]=[a(" Der Zähler ist auf Modbus-ID 1 und Port 502 vorkonfiguriert. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const M=m(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/elgris/elgris/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-BcaNUjQJ.js b/web/settings/assets/device-CQUgLNbO.js similarity index 96% rename from web/settings/assets/device-BcaNUjQJ.js rename to web/settings/assets/device-CQUgLNbO.js index 667b2a8327..ba4960ea59 100644 --- a/web/settings/assets/device-BcaNUjQJ.js +++ b/web/settings/assets/device-CQUgLNbO.js @@ -1 +1 @@ -import{D as f}from"./HardwareInstallation-DrK-NlWu.js";import{_ as g,l as d,k as r,e as b,m as l,q as a,A as i,y as s,u,x as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),t=d("openwb-base-text-input"),v=d("openwb-base-select-input");return r(),b("div",y,[l(m,null,{default:a(()=>[...e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])]),_:1}),l(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>[...e[7]||(e[7]=[i(' Bitte gib die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info findest Du in Deinem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])]),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>[...e[8]||(e[8]=[i(" Bitte wähle die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])]),_:1},8,["model-value"]),n.device.configuration.version>1?(r(),s(t,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>[...e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Du ein Token manuell erstellen möchtest, kannst Du dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])]),_:1},8,["model-value"])):u("",!0)])}const W=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{W as default}; +import{D as f}from"./HardwareInstallation-DW5TYu17.js";import{_ as g,l as d,k as r,e as b,m as l,q as a,A as i,y as s,u,x as p}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceEnphase",mixins:[f]},y={class:"device-enphase"};function k(n,e,V,c,E,h){const m=d("openwb-base-heading"),t=d("openwb-base-text-input"),v=d("openwb-base-select-input");return r(),b("div",y,[l(m,null,{default:a(()=>[...e[6]||(e[6]=[i(" Einstellungen für Enphase Envoy / IQ Gateway ",-1)])]),_:1}),l(t,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.hostname,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hostname"))},{help:a(()=>[...e[7]||(e[7]=[i(' Bitte gib die IP-Adresse oder den Hostnamen des Enphase Envoy oder IQ Gateway an. Die Info findest Du in Deinem Router. Ab Werk ist der Hostname "envoy" oder "envoy.local". ',-1)])]),_:1},8,["model-value"]),l(v,{title:"Version",required:"",options:[{value:1,text:"Firmware < 7.0"},{value:2,text:"Firmware ab 7.0"}],"model-value":n.device.configuration.version,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},{help:a(()=>[...e[8]||(e[8]=[i(" Bitte wähle die Version des Enphase Envoy oder IQ Gateway aus. Die Version 1 ist für Geräte mit einer Firmware-Version unter 7.0, die Version 2 für Geräte mit einer Firmware-Version ab 7.0. Ein angebundener Speicher wird nur bei Version 2 unterstützt. ",-1)])]),_:1},8,["model-value"]),n.device.configuration.version>1?(r(),s(t,{key:0,title:"Benutzer",subtype:"user","model-value":n.device.configuration.user,required:"","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.user"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:1,title:"Kennwort",subtype:"password","model-value":n.device.configuration.password,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.password"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:2,title:"Envoy Seriennummer","model-value":n.device.configuration.serial,required:"","onUpdate:modelValue":e[4]||(e[4]=o=>n.updateConfiguration(o,"configuration.serial"))},null,8,["model-value"])):u("",!0),n.device.configuration.version>1?(r(),s(t,{key:3,title:"Token",subtype:"password","model-value":n.device.configuration.token,required:"","onUpdate:modelValue":e[5]||(e[5]=o=>n.updateConfiguration(o,"configuration.token"))},{help:a(()=>[...e[9]||(e[9]=[i(" Wenn Benutzer, Kennwort und Seriennummer des Envoys angegeben werden, wird das Token automatisch beim Speichern abgerufen. Ebenfalls wird ein abgelaufenes Token (derzeit nach einem Jahr) automatisch erneuert.",-1),p("br",null,null,-1),i(" Wenn Du ein Token manuell erstellen möchtest, kannst Du dies auf der ",-1),p("a",{href:"https://developer.enphase.com/docs/quickstart.html",target:"_blank",rel:"noopener"}," Enphase-Webseite ",-1),i(" erledigen. ",-1)])]),_:1},8,["model-value"])):u("",!0)])}const W=g(w,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/device.vue"]]);export{W as default}; diff --git a/web/settings/assets/device-3lw2SJGr.js b/web/settings/assets/device-CSpwX2A7.js similarity index 87% rename from web/settings/assets/device-3lw2SJGr.js rename to web/settings/assets/device-CSpwX2A7.js index b2c6ed298d..5d1e0ee170 100644 --- a/web/settings/assets/device-3lw2SJGr.js +++ b/web/settings/assets/device-CSpwX2A7.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as d,e as l,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,k){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; +import{D as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as t,k as d,e as l,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKostalSteca",mixins:[r]},_={class:"device-kostal-steca"};function f(o,e,v,b,g,k){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return d(),l("div",_,[n(s,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-CsogXwrs.js b/web/settings/assets/device-CUpyrxDg.js similarity index 92% rename from web/settings/assets/device-CsogXwrs.js rename to web/settings/assets/device-CUpyrxDg.js index 8f00afea77..eecf265ee5 100644 --- a/web/settings/assets/device-CsogXwrs.js +++ b/web/settings/assets/device-CUpyrxDg.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as l,e as p,m as t,q as i,A as m,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function g(b,e,_,f,h,v){const o=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",c,[t(o,null,{default:i(()=>[...e[0]||(e[0]=[m("Einstellungen für MQTT",-1)])]),_:1}),t(r,{subtype:"info"},{default:i(()=>[...e[1]||(e[1]=[s("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),s("p",null," Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])]),_:1})])}const z=d(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{z as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as n,k as l,e as p,m as t,q as i,A as m,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMqtt",mixins:[a]},c={class:"device-mqtt"};function g(b,e,_,f,h,v){const o=n("openwb-base-heading"),r=n("openwb-base-alert");return l(),p("div",c,[t(o,null,{default:i(()=>[...e[0]||(e[0]=[m("Einstellungen für MQTT",-1)])]),_:1}),t(r,{subtype:"info"},{default:i(()=>[...e[1]||(e[1]=[s("p",null," Das MQTT Modul stellt keine aktive Verbindung her, sondern erwartet, dass die Daten an die angegebenen Topics im Broker gesendet werden. Alle Daten sind als gültiges JSON zu senden! Zahlen mit Nachkommastellen (Float) müssen einen Punkt als Dezimaltrenner verwenden (internationales Format). ",-1),s("p",null," Ab Version 2.1.8 wurden die Topics überarbeitet. Die bisherigen Topics openWB/set/bat/id/get/..., openWB/set/counter/id/get/... und openWB/set/pv/id/get/... bleiben aus Gründen der Abwärtskompatibilität weiterhin nutzbar. Wir empfehlen, auf die neuen Topics umzusteigen. Dies ermöglicht die Beseitigung von Einschränkungen, wie z. B. die fehlende Verrechnung bei Hybrid-Systemen oder die Berechnung fehlender Werte, wie der Phasen-Leistung aus Spannung und Stromstärken. ",-1)])]),_:1})])}const z=d(u,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/device.vue"]]);export{z as default}; diff --git a/web/settings/assets/device-CTvTEy9o.js b/web/settings/assets/device-CbAHx9k5.js similarity index 90% rename from web/settings/assets/device-CTvTEy9o.js rename to web/settings/assets/device-CbAHx9k5.js index 09739fa14d..3e39b167cb 100644 --- a/web/settings/assets/device-CTvTEy9o.js +++ b/web/settings/assets/device-CbAHx9k5.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as a,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,b,_,w){const s=a("openwb-base-heading"),i=a("openwb-base-text-input");return u(),p("div",f,[t(s,null,{default:l(()=>[...e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.username,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.username"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const A=d(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{A as default}; +import{D as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as a,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceAvm",mixins:[r]},f={class:"device-avm"};function c(o,e,g,b,_,w){const s=a("openwb-base-heading"),i=a("openwb-base-text-input");return u(),p("div",f,[t(s,null,{default:l(()=>[...e[3]||(e[3]=[m("Einstellungen für AVM Fritz!Box",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.username,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.username"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const A=d(v,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/avm/avm/device.vue"]]);export{A as default}; diff --git a/web/settings/assets/device-BqKfOrDp.js b/web/settings/assets/device-ChIotMSG.js similarity index 90% rename from web/settings/assets/device-BqKfOrDp.js rename to web/settings/assets/device-ChIotMSG.js index 8207af8c52..149ec188ad 100644 --- a/web/settings/assets/device-BqKfOrDp.js +++ b/web/settings/assets/device-ChIotMSG.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{U as default}; +import{D as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceE3dc",mixins:[s]},b={class:"device-e3dc"};function v(o,e,_,g,w,C){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),d=i("openwb-base-number-input");return p(),l("div",b,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für E3DC ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/e3dc/e3dc/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-BdzJGZry.js b/web/settings/assets/device-CkIrFtXj.js similarity index 90% rename from web/settings/assets/device-BdzJGZry.js rename to web/settings/assets/device-CkIrFtXj.js index 821f865731..0eb5066bc4 100644 --- a/web/settings/assets/device-BdzJGZry.js +++ b/web/settings/assets/device-CkIrFtXj.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as r,l as n,k as d,e as u,m as a,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceTasmota",mixins:[l]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const s=n("openwb-base-heading"),i=n("openwb-base-text-input"),p=n("openwb-base-select-input");return d(),u("div",v,[a(s,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])]),_:1}),a(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const T=r(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{T as default}; +import{D as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as r,l as n,k as d,e as u,m as a,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceTasmota",mixins:[l]},v={class:"device-tasmota"};function f(t,e,b,g,w,x){const s=n("openwb-base-heading"),i=n("openwb-base-text-input"),p=n("openwb-base-select-input");return d(),u("div",v,[a(s,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Tasmota",-1)])]),_:1}),a(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(p,{title:"Phase","not-selected":"Bitte auswählen",options:[{value:1,text:"1"},{value:2,text:"2"},{value:3,text:"3"}],"model-value":t.device.configuration.phase,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.phase"))},null,8,["model-value"])])}const T=r(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tasmota/tasmota/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-AZcRdq4E.js b/web/settings/assets/device-ClJMpktq.js similarity index 89% rename from web/settings/assets/device-AZcRdq4E.js rename to web/settings/assets/device-ClJMpktq.js index eb27bfcc4a..c9eade6b51 100644 --- a/web/settings/assets/device-AZcRdq4E.js +++ b/web/settings/assets/device-ClJMpktq.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as m,e as u,m as i,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceMTec",mixins:[p]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{T as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as m,e as u,m as i,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceMTec",mixins:[p]},f={class:"device-mtec"};function b(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return m(),u("div",f,[i(s,null,{default:l(()=>[...e[2]||(e[2]=[c("Einstellungen für M-Tec",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device-ZglIRb13.js b/web/settings/assets/device-Cm2E-XJI.js similarity index 91% rename from web/settings/assets/device-ZglIRb13.js rename to web/settings/assets/device-Cm2E-XJI.js index 4847e3fef7..73f319895b 100644 --- a/web/settings/assets/device-ZglIRb13.js +++ b/web/settings/assets/device-Cm2E-XJI.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as d,e as m,m as i,q as c,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>[...e[3]||(e[3]=[v("Einstellungen für Solis",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const D=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{D as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as t,k as d,e as m,m as i,q as c,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolis",mixins:[p]},_={class:"device-solis"};function f(o,e,g,w,h,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input"),l=t("openwb-base-select-input");return d(),m("div",_,[i(s,null,{default:c(()=>[...e[3]||(e[3]=[v("Einstellungen für Solis",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"inverter",text:"Wechselrichter ohne Speicheranbindung"},{value:"hybrid",text:"Hybridwechselrichter RHI/S Serie"}],"model-value":o.device.configuration.version,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const D=u(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-DwiBUt_R.js b/web/settings/assets/device-Co7SQh-h.js similarity index 86% rename from web/settings/assets/device-DwiBUt_R.js rename to web/settings/assets/device-Co7SQh-h.js index 26a571a14d..9f39f5ac08 100644 --- a/web/settings/assets/device-DwiBUt_R.js +++ b/web/settings/assets/device-Co7SQh-h.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as d,e as u,m as n,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const V=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{V as default}; +import{D as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as t,k as d,e as u,m as n,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceOpenDTU",mixins:[r]},_={class:"device-opendtu"};function f(o,e,v,b,g,x){const i=t("openwb-base-heading"),s=t("openwb-base-text-input");return d(),u("div",_,[n(i,null,{default:l(()=>[...e[1]||(e[1]=[m("Einstellungen für OpenDTU",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.url"))},null,8,["model-value"])])}const V=a(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/device.vue"]]);export{V as default}; diff --git a/web/settings/assets/device-DLe5rJBe.js b/web/settings/assets/device-CoDgAiu7.js similarity index 89% rename from web/settings/assets/device-DLe5rJBe.js rename to web/settings/assets/device-CoDgAiu7.js index 91d37b6540..3387fe54c5 100644 --- a/web/settings/assets/device-DLe5rJBe.js +++ b/web/settings/assets/device-CoDgAiu7.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as t,k as d,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOne",mixins:[p]},f={class:"device-solakon-one"};function b(o,e,v,g,k,w){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return d(),u("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für Solakon One",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as t,k as d,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOne",mixins:[p]},f={class:"device-solakon-one"};function b(o,e,v,g,k,w){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return d(),u("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für Solakon One",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=l(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-D7cbEhiT.js b/web/settings/assets/device-Com-9Ezv.js similarity index 91% rename from web/settings/assets/device-D7cbEhiT.js rename to web/settings/assets/device-Com-9Ezv.js index 8dce3dda70..1878eeb22d 100644 --- a/web/settings/assets/device-D7cbEhiT.js +++ b/web/settings/assets/device-Com-9Ezv.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJanitza",mixins:[d]},v={class:"device-janitza"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{B as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceJanitza",mixins:[d]},v={class:"device-janitza"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Janitza ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/janitza/janitza/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-B5V0NVAx.js b/web/settings/assets/device-CpwwCHau.js similarity index 90% rename from web/settings/assets/device-B5V0NVAx.js rename to web/settings/assets/device-CpwwCHau.js index f5283c298b..c72c00498e 100644 --- a/web/settings/assets/device-B5V0NVAx.js +++ b/web/settings/assets/device-CpwwCHau.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as s,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>[...e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{x as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as s,k as u,e as p,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceBYD",mixins:[a]},v={class:"device-byd"};function b(o,e,c,g,_,w){const r=s("openwb-base-heading"),i=s("openwb-base-text-input");return u(),p("div",v,[t(r,null,{default:l(()=>[...e[3]||(e[3]=[m(" Einstellungen für BYD ",-1)])]),_:1}),t(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/byd/byd/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-Cww7LhK6.js b/web/settings/assets/device-CrCdeJXU.js similarity index 94% rename from web/settings/assets/device-Cww7LhK6.js rename to web/settings/assets/device-CrCdeJXU.js index d9837ffd90..0e16e440d0 100644 --- a/web/settings/assets/device-Cww7LhK6.js +++ b/web/settings/assets/device-CrCdeJXU.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as b,l as i,k as g,e as v,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSH",mixins:[m]},c={class:"device-sungrow-sh"};function _(n,e,w,S,W,h){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",c,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Sungrow SH Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[s(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. Modbus muss in der iSolarCloud für den Wechselrichter aktiviert sein. ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:1,text:"SH (Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>[...e[6]||(e[6]=[s(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])]),_:1},8,["model-value"])])}const x=b(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sh/device.vue"]]);export{x as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as b,l as i,k as g,e as v,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowSH",mixins:[m]},c={class:"device-sungrow-sh"};function _(n,e,w,S,W,h){const l=i("openwb-base-heading"),d=i("openwb-base-alert"),a=i("openwb-base-text-input"),u=i("openwb-base-number-input"),p=i("openwb-base-select-input");return g(),v("div",c,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Sungrow SH Wechselrichter",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[5]||(e[5]=[s(" Bitte zur Fehlervermeidung die Firmware des Sungrow Wechselrichters und WiNet-S Dongles aktuell halten. Modbus muss in der iSolarCloud für den Wechselrichter aktiviert sein. ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"]),t(p,{title:"Version",options:[{value:0,text:"SH (Hybrid)"},{value:1,text:"SH (Hybrid) über WiNet-S Dongle"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},{help:r(()=>[...e[6]||(e[6]=[s(" Die Variante SH sollte möglichst über den internen LAN-Port genutzt werden (befindet sich am Wechselrichter hinter dem WiNet-S Dongle), da nur hier alle Werte vollständig ausgelesen werden können. Den WiNet-S Dongle zusätzlich ins Heimnetz (per LAN oder WLAN) einbinden, um iSolarCloud nutzen zu können. ",-1)])]),_:1},8,["model-value"])])}const x=b(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_sh/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-BnxlY63G.js b/web/settings/assets/device-CrgeMplj.js similarity index 95% rename from web/settings/assets/device-BnxlY63G.js rename to web/settings/assets/device-CrgeMplj.js index 0d0c40822f..0451051a37 100644 --- a/web/settings/assets/device-BnxlY63G.js +++ b/web/settings/assets/device-CrgeMplj.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as v,l as t,k as b,e as f,m as i,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceGoodWe",mixins:[m]},w={class:"device-goodwe"};function _(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",w,[i(l,null,{default:r(()=>[...e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])]),_:1}),i(a,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>[...e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>[...e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])]),_:1},8,["model-value"])])}const M=v(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as v,l as t,k as b,e as f,m as i,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceGoodWe",mixins:[m]},w={class:"device-goodwe"};function _(o,e,W,c,D,V){const l=t("openwb-base-heading"),a=t("openwb-base-alert"),p=t("openwb-base-text-input"),d=t("openwb-base-number-input"),u=t("openwb-base-select-input");return b(),f("div",w,[i(l,null,{default:r(()=>[...e[5]||(e[5]=[s("Einstellungen für GoodWe",-1)])]),_:1}),i(a,{subtype:"info"},{default:r(()=>[...e[6]||(e[6]=[s(" GoodWe-Wechselrichter verfügen über 3 Dongle: Den WiFi-Dongle, das Wifi-Lan-Kit und das Wifi-Lan-Kit 2.0. Die Einbindung über dieses Modul ist nur mit den Wifi-Lan-Kits möglich. Welches Kit benötigt wird ist vom Wechselrichter abhängig und kann bei GoodWe erfragt werden. ",-1)])]),_:1}),i(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(d,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"API-Version","not-selected":"Bitte auswählen",options:[{value:"v_1_7",text:"v1.7"},{value:"v_1_1",text:"v1.0/ v1.1"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},{help:r(()=>[...e[7]||(e[7]=[s(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Firmware","not-selected":"Bitte auswählen",options:[{value:8,text:"ARM < 9.0"},{value:9,text:"ARM ab 9.0"}],"model-value":o.device.configuration.firmware,required:"","onUpdate:modelValue":e[4]||(e[4]=n=>o.updateConfiguration(n,"configuration.firmware"))},{help:r(()=>[...e[8]||(e[8]=[s(" Die Auswahl der Firmware-Version beeinflusst die Auslesung der Wirkleistung und der Phasenströme des Zählers. ",-1)])]),_:1},8,["model-value"])])}const M=v(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/good_we/good_we/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-BzBPeuLF.js b/web/settings/assets/device-CsoeSeMr.js similarity index 89% rename from web/settings/assets/device-BzBPeuLF.js rename to web/settings/assets/device-CsoeSeMr.js index c28f2cebf2..df307c2741 100644 --- a/web/settings/assets/device-BzBPeuLF.js +++ b/web/settings/assets/device-CsoeSeMr.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as d,e as m,m as i,q as l,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const a=n("openwb-base-heading"),r=n("openwb-base-text-input"),s=n("openwb-base-number-input");return d(),m("div",g,[i(a,null,{default:l(()=>[...e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const H=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{H as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as n,k as d,e as m,m as i,q as l,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLogger",mixins:[p]},g={class:"device-huawei-smart-logger"};function f(o,e,b,v,w,x){const a=n("openwb-base-heading"),r=n("openwb-base-text-input"),s=n("openwb-base-number-input");return d(),m("div",g,[i(a,null,{default:l(()=>[...e[2]||(e[2]=[_(" Einstellungen für Huawei SmartLogger ",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const H=u(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/device.vue"]]);export{H as default}; diff --git a/web/settings/assets/device-C2Py-T5Y.js b/web/settings/assets/device-CtUghXi3.js similarity index 89% rename from web/settings/assets/device-C2Py-T5Y.js rename to web/settings/assets/device-CtUghXi3.js index b9778038f3..186bc5a236 100644 --- a/web/settings/assets/device-C2Py-T5Y.js +++ b/web/settings/assets/device-CtUghXi3.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibe",mixins:[p]},_={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[b("Einstellungen für Nibe",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{E as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceNibe",mixins:[p]},_={class:"device-nibe"};function f(o,e,v,g,w,x){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",_,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[b("Einstellungen für Nibe",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const E=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/nibe/nibe/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-CZhiiWs3.js b/web/settings/assets/device-CzcTMovl.js similarity index 96% rename from web/settings/assets/device-CZhiiWs3.js rename to web/settings/assets/device-CzcTMovl.js index ab6472fcf8..e8c614c668 100644 --- a/web/settings/assets/device-CZhiiWs3.js +++ b/web/settings/assets/device-CzcTMovl.js @@ -1 +1 @@ -import{D as g}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as s,k as p,e as k,m as l,q as u,A as t,x as n,J as a,y as A,u as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},I={class:"device-sonnenbatterie"},S=["href"],B=["href"],P=["href"],J=["href"];function R(i,e,z,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",I,[l(v,null,{default:u(()=>[...e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])]),_:1}),l(f,{subtype:"info"},{default:u(()=>[...e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])]),_:1}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,S),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,B),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>[...e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])]),_:1},8,["model-value"])):w("",!0)])}const c=m(_,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{c as default}; +import{D as g}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as s,k as p,e as k,m as l,q as u,A as t,x as n,J as a,y as A,u as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSonnenbatterie",mixins:[g],computed:{linkRestApi1(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery"},linkRestApi2(){return"http://"+this.device.configuration.ip_address+":7979/rest/devices/battery/M05"},linkJsonApi1(){return"http://"+this.device.configuration.ip_address+"/api/v1/status"},linkJsonApi2(){return"http://"+this.device.configuration.ip_address+"/api/v2/status"}}},I={class:"device-sonnenbatterie"},S=["href"],B=["href"],P=["href"],J=["href"];function R(i,e,z,C,D,r){const v=s("openwb-base-heading"),f=s("openwb-base-alert"),d=s("openwb-base-text-input"),b=s("openwb-base-select-input");return p(),k("div",I,[l(v,null,{default:u(()=>[...e[3]||(e[3]=[t(" Einstellungen für SonnenBatterie ",-1)])]),_:1}),l(f,{subtype:"info"},{default:u(()=>[...e[4]||(e[4]=[t(' Die Leistung steht nur in den Varianten "Rest-API 2" und "JSON-API" zur Verfügung.',-1),n("br",null,null,-1),t(" Die aktive Steuerung des Speichers durch openWB ist nur mit der JSON-API v2 möglich. ",-1)])]),_:1}),l(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),l(b,{title:"Datenverbindung",required:"","not-selected":"Bitte auswählen",options:[{value:0,text:"Rest-API 1 (z.B. ECO 4)"},{value:2,text:"Rest-API 2 (z.B. ECO 6)"},{value:1,text:"JSON-API v1(z.B. ECO 8 oder 10)"},{value:3,text:"JSON-API v2(z.B. ECO 8 oder 10)"}],"model-value":i.device.configuration.variant,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.variant"))},{help:u(()=>[e[5]||(e[5]=t(" Je nach SonnenBatterie muss die richtige Datenverbindung ausgewählt werden. Folgende URLs werden zum Abruf der Daten genutzt und können auch manuell über einen Browser abgefragt werden, um die richtige Einstellung zu finden:",-1)),e[6]||(e[6]=n("br",null,null,-1)),e[7]||(e[7]=t(" Rest-API 1: ",-1)),n("a",{href:r.linkRestApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi1),9,S),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Rest-API 2: ",-1)),n("a",{href:r.linkRestApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkRestApi2),9,B),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" JSON-API v1: ",-1)),n("a",{href:r.linkJsonApi1,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi1),9,P),e[12]||(e[12]=n("br",null,null,-1)),e[13]||(e[13]=t(" JSON-API v2: ",-1)),n("a",{href:r.linkJsonApi2,target:"_blank",rel:"noopener noreferrer"},a(r.linkJsonApi2),9,J),e[14]||(e[14]=n("br",null,null,-1))]),_:1},8,["model-value"]),i.device.configuration.variant===3?(p(),A(d,{key:0,title:"API-Token",subtype:"password",required:"","model-value":i.device.configuration.api_v2_token,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.api_v2_token"))},{help:u(()=>[...e[15]||(e[15]=[t(' API-Token für JSON-API v2. Dieses Token wird benötigt, um detaillierte Daten auszulesen und den Speicher aktiv zu steuern (optional). Es kann in der Weboberfläche der SonnenBatterie unter "Software-Integration" erstellt werden.',-1),n("br",null,null,-1),t(' Für die aktive Steuerung durch openWB ist ebenfalls die "Write API" zu aktivieren! ',-1)])]),_:1},8,["model-value"])):w("",!0)])}const c=m(_,[["render",R],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sonnen/sonnenbatterie/device.vue"]]);export{c as default}; diff --git a/web/settings/assets/device-DsVqYSqX.js b/web/settings/assets/device-D13_BqWq.js similarity index 90% rename from web/settings/assets/device-DsVqYSqX.js rename to web/settings/assets/device-D13_BqWq.js index c1d776f2c3..eed15f839a 100644 --- a/web/settings/assets/device-DsVqYSqX.js +++ b/web/settings/assets/device-D13_BqWq.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as m,e as u,m as n,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFems",mixins:[p]},c={class:"device-fems"};function v(o,e,_,b,g,w){const d=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",c,[n(d,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>[...e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])]),_:1},8,["model-value"])])}const P=l(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{P as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as i,k as m,e as u,m as n,q as a,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFems",mixins:[p]},c={class:"device-fems"};function v(o,e,_,b,g,w){const d=i("openwb-base-heading"),s=i("openwb-base-text-input");return m(),u("div",c,[n(d,null,{default:a(()=>[...e[2]||(e[2]=[r(" Einstellungen für openEMS, Fenecon FEMS, CENTURIO 10, Kaco Hy-Control ",-1)])]),_:1}),n(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(s,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},{help:a(()=>[...e[3]||(e[3]=[r(" Bei Nutzung von Fenecon FEMS ist das Passwort im Normalfall user, bei Kaco mit Hy-Control ist das Passwort meist admin. ",-1)])]),_:1},8,["model-value"])])}const P=l(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fems/fems/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-CrT-Q_nn.js b/web/settings/assets/device-D2x0p5db.js similarity index 89% rename from web/settings/assets/device-CrT-Q_nn.js rename to web/settings/assets/device-D2x0p5db.js index 73e534902c..49fb83f3f1 100644 --- a/web/settings/assets/device-CrT-Q_nn.js +++ b/web/settings/assets/device-D2x0p5db.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as r,k as u,e as d,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[t(s,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const P=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{P as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as r,k as u,e as d,m as t,q as l,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfox",mixins:[a]},c={class:"device-powerfox"};function v(o,e,w,_,b,g){const s=r("openwb-base-heading"),i=r("openwb-base-text-input");return u(),d("div",c,[t(s,null,{default:l(()=>[...e[2]||(e[2]=[m(" Einstellungen für Powerfox ",-1)])]),_:1}),t(i,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user"))},null,8,["model-value"]),t(i,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},null,8,["model-value"])])}const P=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-CkVVX1eZ.js b/web/settings/assets/device-D40Fwpnf.js similarity index 92% rename from web/settings/assets/device-CkVVX1eZ.js rename to web/settings/assets/device-D40Fwpnf.js index 37521a87d4..7e2bdf8eac 100644 --- a/web/settings/assets/device-CkVVX1eZ.js +++ b/web/settings/assets/device-D40Fwpnf.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as p,e as m,m as t,q as v,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceUPower",mixins:[d]},c={class:"device-upower"};function _(o,e,g,w,C,U){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return p(),m("div",c,[t(a,null,{default:v(()=>[...e[4]||(e[4]=[b("Einstellungen für UPower",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const G=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{G as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as i,k as p,e as m,m as t,q as v,A as b}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceUPower",mixins:[d]},c={class:"device-upower"};function _(o,e,g,w,C,U){const a=i("openwb-base-heading"),r=i("openwb-base-text-input"),u=i("openwb-base-number-input"),s=i("openwb-base-select-input");return p(),m("div",c,[t(a,null,{default:v(()=>[...e[4]||(e[4]=[b("Einstellungen für UPower",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(u,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),t(s,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"1",text:"Gen 1"},{value:"2",text:"Gen 2"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"])])}const G=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/upower/upower/device.vue"]]);export{G as default}; diff --git a/web/settings/assets/device-DBsitINB.js b/web/settings/assets/device-D5MbNowE.js similarity index 89% rename from web/settings/assets/device-DBsitINB.js rename to web/settings/assets/device-D5MbNowE.js index ff016c6b64..9c36cb2939 100644 --- a/web/settings/assets/device-DBsitINB.js +++ b/web/settings/assets/device-D5MbNowE.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFoxEss",mixins:[p]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{F as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceFoxEss",mixins:[p]},f={class:"device-fox_ess"};function b(o,e,v,g,x,w){const s=t("openwb-base-heading"),r=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_("Einstellungen für FoxEss",-1)])]),_:1}),i(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/device.vue"]]);export{F as default}; diff --git a/web/settings/assets/device-C5UrZly-.js b/web/settings/assets/device-D6o18n_v.js similarity index 89% rename from web/settings/assets/device-C5UrZly-.js rename to web/settings/assets/device-D6o18n_v.js index b135037015..a2258204b2 100644 --- a/web/settings/assets/device-C5UrZly-.js +++ b/web/settings/assets/device-D6o18n_v.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as o,k as u,e as m,m as i,q as r,A as t,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHttp",mixins:[d]},v={class:"device-http"};function _(n,e,b,g,x,w){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",v,[i(s,null,{default:r(()=>[...e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])]),_:1}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>[...e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])]),_:1},8,["model-value"])])}const N=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{N as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as o,k as u,e as m,m as i,q as r,A as t,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceHttp",mixins:[d]},v={class:"device-http"};function _(n,e,b,g,x,w){const s=o("openwb-base-heading"),p=o("openwb-base-text-input");return u(),m("div",v,[i(s,null,{default:r(()=>[...e[1]||(e[1]=[t(" Einstellungen für Http ",-1)])]),_:1}),i(p,{title:"Server-URL",subtype:"url",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.url"))},{help:r(()=>[...e[2]||(e[2]=[t(" Hier sind die Verbindungsangaben für den Http-Server einzutragen. Der Pfad für die einzelnen Daten wird in der Komponente hinterlegt.",-1),c("br",null,null,-1),t(" Beispiel: http://mein.server:8080 ",-1)])]),_:1},8,["model-value"])])}const N=l(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-DjFgC3FH.js b/web/settings/assets/device-D9AUjwae.js similarity index 91% rename from web/settings/assets/device-DjFgC3FH.js rename to web/settings/assets/device-D9AUjwae.js index a891cb92ff..ebbd7d4c7a 100644 --- a/web/settings/assets/device-DjFgC3FH.js +++ b/web/settings/assets/device-D9AUjwae.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSofar",mixins:[d]},v={class:"device-sofar"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{E as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSofar",mixins:[d]},v={class:"device-sofar"};function _(o,e,c,g,w,C){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",v,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[f("Einstellungen für Sofar",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sofar/sofar/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DiQe2xTf.js b/web/settings/assets/device-DDpMd1e0.js similarity index 89% rename from web/settings/assets/device-DiQe2xTf.js rename to web/settings/assets/device-DDpMd1e0.js index 40160e9eb2..88c6e0877b 100644 --- a/web/settings/assets/device-DiQe2xTf.js +++ b/web/settings/assets/device-DDpMd1e0.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron",mixins:[p]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron",mixins:[p]},v={class:"device-victron"};function f(o,e,b,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-C7Bv2cYw.js b/web/settings/assets/device-DHl3UXR-.js similarity index 91% rename from web/settings/assets/device-C7Bv2cYw.js rename to web/settings/assets/device-DHl3UXR-.js index 20ca997a8e..fda0322a47 100644 --- a/web/settings/assets/device-C7Bv2cYw.js +++ b/web/settings/assets/device-DHl3UXR-.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as b,e as _,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return b(),_("div",f,[t(a,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; +import{D as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as b,e as _,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyBoy",mixins:[l]},f={class:"device-sunnyboy"};function v(o,e,w,g,y,x){const a=n("openwb-base-heading"),p=n("openwb-base-alert"),d=n("openwb-base-text-input"),u=n("openwb-base-number-input");return b(),_("div",f,[t(a,null,{default:r(()=>[...e[2]||(e[2]=[s(" Einstellungen für SMA Sunny Boy/Tripower ",-1)])]),_:1}),t(p,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[s(' ModbusTCP muss entweder direkt am Wechselrichter, per Sunny Portal oder über das Tool "Sunny Explorer" aktiviert werden. Dies ist standardmäßig deaktiviert. ',-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const $=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/device.vue"]]);export{$ as default}; diff --git a/web/settings/assets/device-DteT1ftK.js b/web/settings/assets/device-DOt-8MOg.js similarity index 91% rename from web/settings/assets/device-DteT1ftK.js rename to web/settings/assets/device-DOt-8MOg.js index aa48d33814..2d5270fe4e 100644 --- a/web/settings/assets/device-DteT1ftK.js +++ b/web/settings/assets/device-DOt-8MOg.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{U as default}; +import{D as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS",mixins:[u]},f={class:"device-azzurro_zcs"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-B3JnKzHE.js b/web/settings/assets/device-DRKX4yJQ.js similarity index 91% rename from web/settings/assets/device-B3JnKzHE.js rename to web/settings/assets/device-DRKX4yJQ.js index 089b092a3b..77fd79d082 100644 --- a/web/settings/assets/device-B3JnKzHE.js +++ b/web/settings/assets/device-DRKX4yJQ.js @@ -1 +1 @@ -import{D as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as u,e as m,m as t,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceAmpere",mixins:[s]},v={class:"device-ampere"};function _(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",v,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{P as default}; +import{D as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as i,k as u,e as m,m as t,q as l,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceAmpere",mixins:[s]},v={class:"device-ampere"};function _(o,e,c,g,w,C){const a=i("openwb-base-heading"),p=i("openwb-base-text-input"),r=i("openwb-base-number-input");return u(),m("div",v,[t(a,null,{default:l(()=>[...e[3]||(e[3]=[f(" Einstellungen für Ampere Pro",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/ampere/ampere/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-BwzMCkFy.js b/web/settings/assets/device-DcBHTsLN.js similarity index 89% rename from web/settings/assets/device-BwzMCkFy.js rename to web/settings/assets/device-DcBHTsLN.js index d5d53ac8c8..9d8fb188ce 100644 --- a/web/settings/assets/device-BwzMCkFy.js +++ b/web/settings/assets/device-DcBHTsLN.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const I=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{I as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSunnyIsland",mixins:[p]},f={class:"device-sunnyisland"};function b(n,e,v,g,w,x){const s=t("openwb-base-heading"),a=t("openwb-base-text-input"),r=t("openwb-base-number-input");return u(),l("div",f,[i(s,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für Sunny Island ",-1)])]),_:1}),i(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"])])}const I=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_island/device.vue"]]);export{I as default}; diff --git a/web/settings/assets/device-Bkj5ye31.js b/web/settings/assets/device-Dlv7ykwm.js similarity index 87% rename from web/settings/assets/device-Bkj5ye31.js rename to web/settings/assets/device-Dlv7ykwm.js index 495fa38592..fd93e1f7ae 100644 --- a/web/settings/assets/device-Bkj5ye31.js +++ b/web/settings/assets/device-Dlv7ykwm.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as l,e as d,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarLog",mixins:[r]},u={class:"device-solar_log"};function f(o,e,g,v,b,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return l(),d("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{q as default}; +import{D as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as t,k as l,e as d,m as n,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarLog",mixins:[r]},u={class:"device-solar_log"};function f(o,e,g,v,b,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return l(),d("div",u,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[_(" Einstellungen für Solar-Log ",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_log/solar_log/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-DwFvJqbg.js b/web/settings/assets/device-DoaiL166.js similarity index 94% rename from web/settings/assets/device-DwFvJqbg.js rename to web/settings/assets/device-DoaiL166.js index dd46c1a164..f6ddfb1bfb 100644 --- a/web/settings/assets/device-DwFvJqbg.js +++ b/web/settings/assets/device-DoaiL166.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as g,e as b,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function c(n,e,_,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>[...e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])]),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>[...e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const M=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{M as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as i,k as g,e as b,m as t,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolax",mixins:[p]},v={class:"device-solax"};function c(n,e,_,w,x,G){const l=i("openwb-base-heading"),d=i("openwb-base-text-input"),a=i("openwb-base-number-input"),u=i("openwb-base-select-input");return g(),b("div",v,[t(l,null,{default:r(()=>[...e[4]||(e[4]=[s(" Einstellungen für Solax ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",min:1,max:65535,placeholder:502,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},{help:r(()=>[...e[5]||(e[5]=[s(" Standardmäßig ist der Port 502. Dieser sollte nur geändert werden, wenn der Solax Wechselrichter auf einen anderen Port konfiguriert wurde. ",-1)])]),_:1},8,["model-value"]),t(a,{title:"Modbus-ID",required:"",min:0,max:255,"model-value":n.device.configuration.modbus_id,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:r(()=>[...e[6]||(e[6]=[s(" Laut der Schnittstellenbeschreibung ist die ID bei Solax ab Werk auf 1 gesetzt. Entgegen der Beschreibung ist meist für Gen4 eine ID größer als 2 eingestellt. Bei Gen3 sogar (gegen jeglicher Modbus Standards) eine 0. ",-1)])]),_:1},8,["model-value"]),t(u,{title:"Generation","not-selected":"Bitte auswählen",options:[{value:"g2",text:"Gen 2"},{value:"g3",text:"Gen 3 & Gen4"},{value:"g4",text:"Gen 4 Boost & Gen 4 Mini"}],"model-value":n.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"])])}const M=m(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solax/solax/device.vue"]]);export{M as default}; diff --git a/web/settings/assets/device-D2Tob0bp.js b/web/settings/assets/device-Dompx4E-.js similarity index 91% rename from web/settings/assets/device-D2Tob0bp.js rename to web/settings/assets/device-Dompx4E-.js index 57ae663d42..534f777535 100644 --- a/web/settings/assets/device-D2Tob0bp.js +++ b/web/settings/assets/device-Dompx4E-.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as p,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowMicro",mixins:[a]},b={class:"device-sungrow-micro"};function g(o,e,v,_,w,x){const s=t("openwb-base-heading"),u=t("openwb-base-text-input"),r=t("openwb-base-number-input");return p(),l("div",b,[i(s,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Sungrow Micro Wechselrichter SxxxS",-1)])]),_:1}),i(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=d(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_micro/device.vue"]]);export{B as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as p,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSungrowMicro",mixins:[a]},b={class:"device-sungrow-micro"};function g(o,e,v,_,w,x){const s=t("openwb-base-heading"),u=t("openwb-base-text-input"),r=t("openwb-base-number-input");return p(),l("div",b,[i(s,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für Sungrow Micro Wechselrichter SxxxS",-1)])]),_:1}),i(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=d(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sungrow/sungrow_micro/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-D86kZoMv.js b/web/settings/assets/device-DprB4FVH.js similarity index 91% rename from web/settings/assets/device-D86kZoMv.js rename to web/settings/assets/device-DprB4FVH.js index f2c13071b4..f45a5089d7 100644 --- a/web/settings/assets/device-D86kZoMv.js +++ b/web/settings/assets/device-DprB4FVH.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as l,e as p,m as i,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceCarloGavazzi",mixins:[d]},f={class:"device-carlo-gavazzi"};function _(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",f,[i(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as t,k as l,e as p,m as i,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceCarloGavazzi",mixins:[d]},f={class:"device-carlo-gavazzi"};function _(o,e,b,g,z,w){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return l(),p("div",f,[i(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Carlo Gavazzi ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),i(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=u(c,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/carlo_gavazzi/carlo_gavazzi/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-B-wUAE96.js b/web/settings/assets/device-DsQ4isEF.js similarity index 91% rename from web/settings/assets/device-B-wUAE96.js rename to web/settings/assets/device-DsQ4isEF.js index 00cc8bbc3c..ae9d495bc7 100644 --- a/web/settings/assets/device-B-wUAE96.js +++ b/web/settings/assets/device-DsQ4isEF.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as l,e as p,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceKostalSEM",mixins:[d]},v={class:"device-kostal-sem"};function _(o,e,c,g,w,k){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",v,[t(s,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{B as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as i,k as l,e as p,m as t,q as m,A as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceKostalSEM",mixins:[d]},v={class:"device-kostal-sem"};function _(o,e,c,g,w,k){const s=i("openwb-base-heading"),r=i("openwb-base-text-input"),a=i("openwb-base-number-input");return l(),p("div",v,[t(s,null,{default:m(()=>[...e[3]||(e[3]=[f(" Einstellungen für Kostal Smart Energy Meter oder TQ EM 410 ",-1)])]),_:1}),t(r,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const B=u(b,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_sem/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-DZbbGgNj.js b/web/settings/assets/device-JaS8E22E.js similarity index 91% rename from web/settings/assets/device-DZbbGgNj.js rename to web/settings/assets/device-JaS8E22E.js index 78009c70f7..a83dfee259 100644 --- a/web/settings/assets/device-DZbbGgNj.js +++ b/web/settings/assets/device-JaS8E22E.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as m,e as _,m as a,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>[...e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])]),_:1},8,["model-value"])])}const q=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{q as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as n,k as m,e as _,m as a,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarwatt",mixins:[p]},v={class:"device-solarwatt"};function c(t,e,w,b,g,x){const s=n("openwb-base-heading"),l=n("openwb-base-text-input"),d=n("openwb-base-select-input");return m(),_("div",v,[a(s,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Solarwatt/My Reserve ",-1)])]),_:1}),a(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":t.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),a(d,{title:"Abrufmethode","not-selected":"Bitte auswählen",options:[{value:0,text:"Gateway"},{value:1,text:"Energy Manager"}],"model-value":t.device.configuration.energy_manager,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.energy_manager"))},{help:i(()=>[...e[3]||(e[3]=[r(" Wenn beide Abrufmethoden verwendet werden sollen, muss für jede Methode ein Gerät erstellt werden. ",-1)])]),_:1},8,["model-value"])])}const q=u(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_watt/solar_watt/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-DntiDAu1.js b/web/settings/assets/device-MHdIpW0v.js similarity index 89% rename from web/settings/assets/device-DntiDAu1.js rename to web/settings/assets/device-MHdIpW0v.js index 7ebd634f21..cef2bfe01e 100644 --- a/web/settings/assets/device-DntiDAu1.js +++ b/web/settings/assets/device-MHdIpW0v.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuder",mixins:[p]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Studer ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as n,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuder",mixins:[p]},f={class:"device-studer"};function b(o,e,v,g,w,x){const r=n("openwb-base-heading"),s=n("openwb-base-text-input"),a=n("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Studer ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-ByU2v5ON.js b/web/settings/assets/device-ZJQLxXJQ.js similarity index 91% rename from web/settings/assets/device-ByU2v5ON.js rename to web/settings/assets/device-ZJQLxXJQ.js index 85a57d9c0d..2993b82827 100644 --- a/web/settings/assets/device-ByU2v5ON.js +++ b/web/settings/assets/device-ZJQLxXJQ.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVarta",mixins:[d]},b={class:"device-varta"};function _(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{E as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as i,k as p,e as l,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVarta",mixins:[d]},b={class:"device-varta"};function _(o,e,c,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),l("div",b,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für Varta ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const E=u(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-NDckeTVc.js b/web/settings/assets/device-azgVVgJz.js similarity index 93% rename from web/settings/assets/device-NDckeTVc.js rename to web/settings/assets/device-azgVVgJz.js index d7bcecd9a7..344dc21238 100644 --- a/web/settings/assets/device-NDckeTVc.js +++ b/web/settings/assets/device-azgVVgJz.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as i,k as v,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const u=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(u,null,{default:s(()=>[...e[4]||(e[4]=[a("Einstellungen für Growatt",-1)])]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>[...e[5]||(e[5]=[a(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as i,k as v,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceGrowatt",mixins:[p]},g={class:"device-growatt"};function _(o,e,c,w,V,C){const u=i("openwb-base-heading"),d=i("openwb-base-text-input"),r=i("openwb-base-number-input"),l=i("openwb-base-select-input");return v(),b("div",g,[n(u,null,{default:s(()=>[...e[4]||(e[4]=[a("Einstellungen für Growatt",-1)])]),_:1}),n(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.ip_address"))},null,8,["model-value"]),n(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.port"))},null,8,["model-value"]),n(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),n(l,{title:"Version","not-selected":"Bitte auswählen",options:[{value:"MAX",text:"MAX Series"},{value:"TL-X",text:"TL-X Inverter"}],"model-value":o.device.configuration.version,required:"","onUpdate:modelValue":e[3]||(e[3]=t=>o.updateConfiguration(t,"configuration.version"))},{help:s(()=>[...e[5]||(e[5]=[a(" Die Wahl der API-Version beeinflusst die Auslesung der Speicherleistung und der Import/ Export Werte des Zählers. ",-1)])]),_:1},8,["model-value"])])}const X=m(f,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/growatt/growatt/device.vue"]]);export{X as default}; diff --git a/web/settings/assets/device-QTYXfo_2.js b/web/settings/assets/device-bwNUNyPA.js similarity index 92% rename from web/settings/assets/device-QTYXfo_2.js rename to web/settings/assets/device-bwNUNyPA.js index acdbec5e43..4f40eb0ead 100644 --- a/web/settings/assets/device-QTYXfo_2.js +++ b/web/settings/assets/device-bwNUNyPA.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as p,e as c,m as t,q as s,A as o,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFronius",mixins:[u]},b={class:"device-fronius"};function g(i,e,v,h,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const F=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{F as default}; +import{D as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as p,e as c,m as t,q as s,A as o,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceFronius",mixins:[u]},b={class:"device-fronius"};function g(i,e,v,h,w,x){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),d=n("openwb-base-text-input");return p(),c("div",b,[t(r,null,{default:s(()=>[...e[1]||(e[1]=[o(" Einstellungen für Fronius ",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[2]||(e[2]=[o(" Die Fronius API muss aktiviert sein.",-1),_("br",null,null,-1),o(" Sind nur Symos in Nutzung, welche über Fronius Solar Net / DATCOM miteinander verbunden sind, muss nur ein Gerät mit einer Komponente Wechselrichter angelegt werden. Sind aber z.B. Symo und Symo Hybrid im Einsatz, muss für jeden Wechselrichter ein Gerät mit einer Komponente Wechselrichter angelegt werden. Die Zähler-Komponente für das Smart-Meter wird in dem Gerät angelegt, dass den Wechselrichter enthält, an den das SmartMeter angeschlossen ist. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname",subtype:"host",required:"","model-value":i.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=l=>i.updateConfiguration(l,"configuration.ip_address"))},null,8,["model-value"])])}const F=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/device.vue"]]);export{F as default}; diff --git a/web/settings/assets/device-CnqEvKdN.js b/web/settings/assets/device-fOYVFPuS.js similarity index 91% rename from web/settings/assets/device-CnqEvKdN.js rename to web/settings/assets/device-fOYVFPuS.js index a5d41db5af..b1f625e7a4 100644 --- a/web/settings/assets/device-CnqEvKdN.js +++ b/web/settings/assets/device-fOYVFPuS.js @@ -1 +1 @@ -import{D as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as u,e as p,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceQCells",mixins:[r]},b={class:"device-qcells"};function v(o,e,_,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",b,[t(l,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{U as default}; +import{D as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as i,k as u,e as p,m as t,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceQCells",mixins:[r]},b={class:"device-qcells"};function v(o,e,_,g,w,C){const l=i("openwb-base-heading"),a=i("openwb-base-text-input"),s=i("openwb-base-number-input");return u(),p("div",b,[t(l,null,{default:m(()=>[...e[3]||(e[3]=[c(" Einstellungen für QCells ESS ",-1)])]),_:1}),t(a,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const U=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/qcells/qcells/device.vue"]]);export{U as default}; diff --git a/web/settings/assets/device-BIKPUvlF.js b/web/settings/assets/device-fle-hzCB.js similarity index 87% rename from web/settings/assets/device-BIKPUvlF.js rename to web/settings/assets/device-fle-hzCB.js index 9aca49497c..020b2d9b68 100644 --- a/web/settings/assets/device-BIKPUvlF.js +++ b/web/settings/assets/device-fle-hzCB.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as m,e as d,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMystrom",mixins:[a]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c("Einstellungen für mystrom",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{h as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as t,k as m,e as d,m as n,q as l,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceMystrom",mixins:[a]},_={class:"device-mystrom"};function f(o,e,v,b,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-text-input");return m(),d("div",_,[n(s,null,{default:l(()=>[...e[1]||(e[1]=[c("Einstellungen für mystrom",-1)])]),_:1}),n(i,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.ip_address"))},null,8,["model-value"])])}const h=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mystrom/mystrom/device.vue"]]);export{h as default}; diff --git a/web/settings/assets/device-jjyvBZq_.js b/web/settings/assets/device-gBv6mP6a.js similarity index 90% rename from web/settings/assets/device-jjyvBZq_.js rename to web/settings/assets/device-gBv6mP6a.js index 0a30eb441e..74f34ce208 100644 --- a/web/settings/assets/device-jjyvBZq_.js +++ b/web/settings/assets/device-gBv6mP6a.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as _,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceKostalPikoCi",mixins:[d]},f={class:"device-kostal-piko-ci"};function v(o,e,g,k,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-alert"),l=t("openwb-base-text-input"),u=t("openwb-base-number-input");return _(),b("div",f,[n(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Einstellungen für Kostal Piko CI",-1)])]),_:1}),n(r,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Die Kommunikation erfolgt via Modbus/TCP. ",-1)])]),_:1}),n(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),n(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const y=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/device.vue"]]);export{y as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as t,k as _,e as b,m as n,q as s,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceKostalPikoCi",mixins:[d]},f={class:"device-kostal-piko-ci"};function v(o,e,g,k,w,C){const p=t("openwb-base-heading"),r=t("openwb-base-alert"),l=t("openwb-base-text-input"),u=t("openwb-base-number-input");return _(),b("div",f,[n(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Einstellungen für Kostal Piko CI",-1)])]),_:1}),n(r,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[a(" Die Kommunikation erfolgt via Modbus/TCP. ",-1)])]),_:1}),n(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),n(u,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const y=m(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/device-Cu_Afhxv.js b/web/settings/assets/device-hpmNmTOM.js similarity index 91% rename from web/settings/assets/device-Cu_Afhxv.js rename to web/settings/assets/device-hpmNmTOM.js index e2c26dfabe..dc93d5e41c 100644 --- a/web/settings/assets/device-Cu_Afhxv.js +++ b/web/settings/assets/device-hpmNmTOM.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as r,k as p,e as m,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,k,w){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return p(),m("div",v,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])]),_:1}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>[...e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])]),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; +import{D as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as r,k as p,e as m,m as i,q as s,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceKostalPikoOld",mixins:[u]},v={class:"device-kostal-piko-old"};function c(o,e,g,b,k,w){const a=r("openwb-base-heading"),n=r("openwb-base-text-input");return p(),m("div",v,[i(a,null,{default:s(()=>[...e[3]||(e[3]=[l(" Einstellungen für Kostal Piko (alte Generation) ",-1)])]),_:1}),i(n,{title:"URL",subtype:"url",required:"","model-value":o.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.url"))},{help:s(()=>[...e[4]||(e[4]=[l(' Es wird eine komplette URL inklusive Protokoll erwartet. Normalerweise ist der Wechselrichter über "http://IP" zu erreichen. ',-1)])]),_:1},8,["model-value"]),i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.device.configuration.user,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.user"))},null,8,["model-value"]),i(n,{title:"Passwort",subtype:"password",required:"","model-value":o.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"])])}const x=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_old/device.vue"]]);export{x as default}; diff --git a/web/settings/assets/device-BJXiIXwb.js b/web/settings/assets/device-i8-KJ-Ws.js similarity index 91% rename from web/settings/assets/device-BJXiIXwb.js rename to web/settings/assets/device-i8-KJ-Ws.js index 159150d1b7..d23d664e55 100644 --- a/web/settings/assets/device-BJXiIXwb.js +++ b/web/settings/assets/device-i8-KJ-Ws.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS3P",mixins:[u]},f={class:"device-azzurro_zcs_3p"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs_3p/device.vue"]]);export{P as default}; +import{D as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as i,k as p,e as l,m as t,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceZCS3P",mixins:[u]},f={class:"device-azzurro_zcs_3p"};function b(o,e,v,g,z,w){const a=i("openwb-base-heading"),s=i("openwb-base-text-input"),r=i("openwb-base-number-input");return p(),l("div",f,[t(a,null,{default:m(()=>[...e[3]||(e[3]=[_(" Einstellungen für Azzurro ZCS ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(r,{title:"Modbus ID",required:"","model-value":o.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"])])}const P=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/azzurro_zcs/azzurro_zcs_3p/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-CT8s8OAc.js b/web/settings/assets/device-lj_s42gJ.js similarity index 92% rename from web/settings/assets/device-CT8s8OAc.js rename to web/settings/assets/device-lj_s42gJ.js index 56148469d1..9a9ed45130 100644 --- a/web/settings/assets/device-CT8s8OAc.js +++ b/web/settings/assets/device-lj_s42gJ.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as b,e as f,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(u,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{B as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as i,k as b,e as f,m as t,q as r,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSiemensSentron",mixins:[m]},v={class:"device-siemens-sentron"};function c(n,e,g,w,C,x){const u=i("openwb-base-heading"),d=i("openwb-base-alert"),p=i("openwb-base-text-input"),s=i("openwb-base-number-input");return b(),f("div",v,[t(u,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Siemens Sentron ",-1)])]),_:1}),t(d,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[a(' Derzeit werden nur Messgeräte vom Typ "7KM PAC2200" mit Ethernet-Schnittstelle unterstützt. ',-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.ip_address"))},null,8,["model-value"]),t(s,{title:"Port",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.port"))},null,8,["model-value"]),t(s,{title:"Modbus ID",required:"","model-value":n.device.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},null,8,["model-value"])])}const B=l(_,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/siemens/siemens_sentron/device.vue"]]);export{B as default}; diff --git a/web/settings/assets/device-BqQNuquo.js b/web/settings/assets/device-m9d0bD8m.js similarity index 89% rename from web/settings/assets/device-BqQNuquo.js rename to web/settings/assets/device-m9d0bD8m.js index 089a585c0e..a2ec9b03a2 100644 --- a/web/settings/assets/device-BqQNuquo.js +++ b/web/settings/assets/device-m9d0bD8m.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron3P75CT",mixins:[a]},v={class:"device-victron-3p75ct"};function f(o,e,b,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron 3P75CT ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron_3p75ct/device.vue"]]);export{T as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceVictron3P75CT",mixins:[a]},v={class:"device-victron-3p75ct"};function f(o,e,b,g,w,C){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),p=t("openwb-base-number-input");return u(),l("div",v,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron 3P75CT ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(p,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const T=d(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron_3p75ct/device.vue"]]);export{T as default}; diff --git a/web/settings/assets/device--YYhIuOQ.js b/web/settings/assets/device-o47QZlML.js similarity index 89% rename from web/settings/assets/device--YYhIuOQ.js rename to web/settings/assets/device-o47QZlML.js index 8c3c1736d1..3c9810140d 100644 --- a/web/settings/assets/device--YYhIuOQ.js +++ b/web/settings/assets/device-o47QZlML.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as l,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{F as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as l,e as u,m as i,q as m,A as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceOpenwbFlex",mixins:[a]},c={class:"device-openwb-flex"};function f(o,e,v,w,g,x){const p=t("openwb-base-heading"),s=t("openwb-base-text-input"),r=t("openwb-base-number-input");return l(),u("div",c,[i(p,null,{default:m(()=>[...e[2]||(e[2]=[_(" Einstellungen für openWB-Flex ",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(r,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const F=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/device.vue"]]);export{F as default}; diff --git a/web/settings/assets/device-DBTWS1zk.js b/web/settings/assets/device-qKrSKUqA.js similarity index 88% rename from web/settings/assets/device-DBTWS1zk.js rename to web/settings/assets/device-qKrSKUqA.js index c37ec90420..f8d0fb9486 100644 --- a/web/settings/assets/device-DBTWS1zk.js +++ b/web/settings/assets/device-qKrSKUqA.js @@ -1 +1 @@ -import{D as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as l,e as u,m as n,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceVZLogger",mixins:[d]},c={class:"device-vzlogger"};function _(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",c,[n(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])]),_:1}),n(p,{title:"IP oder Hostname",subtype:"url",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>[...e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{D as default}; +import{D as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as t,k as l,e as u,m as n,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceVZLogger",mixins:[d]},c={class:"device-vzlogger"};function _(o,e,v,f,b,w){const r=t("openwb-base-heading"),p=t("openwb-base-text-input");return l(),u("div",c,[n(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für VZLogger ",-1)])]),_:1}),n(p,{title:"IP oder Hostname",subtype:"url",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.ip_address"))},{help:i(()=>[...e[2]||(e[2]=[s(" Bei Angabe des Ports muss auch das Schema mit angegeben werden: http://ip:port ",-1)])]),_:1},8,["model-value"])])}const D=m(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/device.vue"]]);export{D as default}; diff --git a/web/settings/assets/device-DJRFYW8u.js b/web/settings/assets/device-qj1Qycjk.js similarity index 86% rename from web/settings/assets/device-DJRFYW8u.js rename to web/settings/assets/device-qj1Qycjk.js index 65d240e1a0..bc634ffd66 100644 --- a/web/settings/assets/device-DJRFYW8u.js +++ b/web/settings/assets/device-qj1Qycjk.js @@ -1 +1 @@ -import{D as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as d,e as l,m as t,q as m,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceBenning",mixins:[a]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>[...e[1]||(e[1]=[u("Einstellungen für Benning",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{q as default}; +import{D as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as o,k as d,e as l,m as t,q as m,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceBenning",mixins:[a]},_={class:"device-benning"};function f(n,e,b,g,v,x){const i=o("openwb-base-heading"),s=o("openwb-base-text-input");return d(),l("div",_,[t(i,null,{default:m(()=>[...e[1]||(e[1]=[u("Einstellungen für Benning",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.url"))},null,8,["model-value"])])}const q=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/device.vue"]]);export{q as default}; diff --git a/web/settings/assets/device-DvHqZZk9.js b/web/settings/assets/device-sNas_qg7.js similarity index 91% rename from web/settings/assets/device-DvHqZZk9.js rename to web/settings/assets/device-sNas_qg7.js index c2aa44d4e4..d6908bfe78 100644 --- a/web/settings/assets/device-DvHqZZk9.js +++ b/web/settings/assets/device-sNas_qg7.js @@ -1 +1 @@ -import{D as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as i,k as p,e as d,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),d("div",_,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const E=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{E as default}; +import{D as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as i,k as p,e as d,m as t,q as m,A as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSolarView",mixins:[u]},_={class:"device-solar-view"};function c(o,e,b,g,w,V){const r=i("openwb-base-heading"),s=i("openwb-base-text-input"),a=i("openwb-base-number-input");return p(),d("div",_,[t(r,null,{default:m(()=>[...e[3]||(e[3]=[v(" Einstellungen für SolarView ",-1)])]),_:1}),t(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),t(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"]),t(a,{title:"Timeout",required:"","model-value":o.device.configuration.timeout,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.timeout"))},null,8,["model-value"])])}const E=l(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/device.vue"]]);export{E as default}; diff --git a/web/settings/assets/device-DuOQfDmg.js b/web/settings/assets/device-xbfmehz1.js similarity index 91% rename from web/settings/assets/device-DuOQfDmg.js rename to web/settings/assets/device-xbfmehz1.js index 566544faba..e746e76128 100644 --- a/web/settings/assets/device-DuOQfDmg.js +++ b/web/settings/assets/device-xbfmehz1.js @@ -1 +1 @@ -import{D as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as m,e as b,m as t,q as s,A as c,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDeye",mixins:[l]},v={class:"device-deye"};function g(o,e,w,x,y,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),b("div",v,[t(r,null,{default:s(()=>[...e[2]||(e[2]=[c("Einstellungen für Deye",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[_("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const P=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{P as default}; +import{D as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as n,k as m,e as b,m as t,q as s,A as c,x as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceDeye",mixins:[l]},v={class:"device-deye"};function g(o,e,w,x,y,C){const r=n("openwb-base-heading"),a=n("openwb-base-alert"),p=n("openwb-base-text-input"),d=n("openwb-base-number-input");return m(),b("div",v,[t(r,null,{default:s(()=>[...e[2]||(e[2]=[c("Einstellungen für Deye",-1)])]),_:1}),t(a,{subtype:"info"},{default:s(()=>[...e[3]||(e[3]=[_("span",{class:"text-danger"}," Deye Wechselrichter verfügen über keine Modbus-TCP Schnittstelle. Für die Auslesung wird ein RS485/LAN-Adapter benötigt. ",-1)])]),_:1}),t(p,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(d,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.port"))},null,8,["model-value"])])}const P=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/device.vue"]]);export{P as default}; diff --git a/web/settings/assets/device-BquvfqB_.js b/web/settings/assets/device-ytrtPsOb.js similarity index 91% rename from web/settings/assets/device-BquvfqB_.js rename to web/settings/assets/device-ytrtPsOb.js index a2249cbe3c..7f8356b7b8 100644 --- a/web/settings/assets/device-BquvfqB_.js +++ b/web/settings/assets/device-ytrtPsOb.js @@ -1 +1 @@ -import{D as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as o,k as _,e as b,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVenusCE",mixins:[m]},f={class:"device-venus_c_e"};function v(n,e,g,w,C,k){const a=o("openwb-base-heading"),p=o("openwb-base-alert"),d=o("openwb-base-text-input"),u=o("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Marstek Venus C, E ",-1)])]),_:1}),t(p,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[r(" Es muss ein Modbus-TCP-Adapter eingesetzt werden, um den RS485-Modbus-Port des Speichers mit dem Netzwerk zu verbinden. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname des Adapters",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=s=>n.updateConfiguration(s,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port des Adapters",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=s=>n.updateConfiguration(s,"configuration.port"))},null,8,["model-value"])])}const z=l(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/device.vue"]]);export{z as default}; +import{D as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as o,k as _,e as b,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceVenusCE",mixins:[m]},f={class:"device-venus_c_e"};function v(n,e,g,w,C,k){const a=o("openwb-base-heading"),p=o("openwb-base-alert"),d=o("openwb-base-text-input"),u=o("openwb-base-number-input");return _(),b("div",f,[t(a,null,{default:i(()=>[...e[2]||(e[2]=[r(" Einstellungen für Marstek Venus C, E ",-1)])]),_:1}),t(p,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[r(" Es muss ein Modbus-TCP-Adapter eingesetzt werden, um den RS485-Modbus-Port des Speichers mit dem Netzwerk zu verbinden. ",-1)])]),_:1}),t(d,{title:"IP oder Hostname des Adapters",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=s=>n.updateConfiguration(s,"configuration.ip_address"))},null,8,["model-value"]),t(u,{title:"Port des Adapters",required:"",min:1,max:65535,"model-value":n.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=s=>n.updateConfiguration(s,"configuration.port"))},null,8,["model-value"])])}const z=l(c,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/marstek/venus_c_e/device.vue"]]);export{z as default}; diff --git a/web/settings/assets/device-uMAcYGWD.js b/web/settings/assets/device-zmmS4Msf.js similarity index 89% rename from web/settings/assets/device-uMAcYGWD.js rename to web/settings/assets/device-zmmS4Msf.js index f004fa5a5b..b80403c5da 100644 --- a/web/settings/assets/device-uMAcYGWD.js +++ b/web/settings/assets/device-zmmS4Msf.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOrno",mixins:[p]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Orno WE-514",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{N as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as t,k as u,e as l,m as i,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceOrno",mixins:[p]},f={class:"device-orno"};function b(o,e,v,g,w,x){const r=t("openwb-base-heading"),s=t("openwb-base-text-input"),a=t("openwb-base-number-input");return u(),l("div",f,[i(r,null,{default:m(()=>[...e[2]||(e[2]=[c("Einstellungen für Orno WE-514",-1)])]),_:1}),i(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":o.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.ip_address"))},null,8,["model-value"]),i(a,{title:"Port",required:"",min:1,max:65535,"model-value":o.device.configuration.port,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.port"))},null,8,["model-value"])])}const N=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/orno/orno/device.vue"]]);export{N as default}; diff --git a/web/settings/assets/device-i-cc32LZ.js b/web/settings/assets/device-zuKsJodY.js similarity index 94% rename from web/settings/assets/device-i-cc32LZ.js rename to web/settings/assets/device-zuKsJodY.js index cf4b5b14bb..1f823449e6 100644 --- a/web/settings/assets/device-i-cc32LZ.js +++ b/web/settings/assets/device-zuKsJodY.js @@ -1 +1 @@ -import{D as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as s,k as f,e as g,m as t,q as r,A as a,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,h,_){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Tesla ",-1)])]),_:1}),t(u,{subtype:"danger"},{default:r(()=>[...e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),a("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),a(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; +import{D as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as s,k as f,e as g,m as t,q as r,A as a,x as o}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceTesla",mixins:[p]},b={class:"device-tesla"};function c(n,e,v,k,h,_){const d=s("openwb-base-heading"),u=s("openwb-base-alert"),l=s("openwb-base-text-input");return f(),g("div",b,[t(d,null,{default:r(()=>[...e[3]||(e[3]=[a(" Einstellungen für Tesla ",-1)])]),_:1}),t(u,{subtype:"danger"},{default:r(()=>[...e[4]||(e[4]=[o("span",{style:{"font-weight":"bold"}}," Tesla hat in der aktuellen Firmware-Version die lokale API der PowerWall abgeschaltet. ",-1),a("Daher ist es mit dieser Firmware nicht mehr möglich, die PowerWall direkt auszulesen. Wir prüfen aktuell den Zugriff über die Tesla-Server. Bis zur Umsetzung dieser Funktion ist es nicht möglich, die PowerWall lokal auszulesen.",-1),o("br",null,null,-1),o("span",{style:{"font-weight":"bold"}}," Wenn die lokale Abfrage bei Dir noch funktioniert, dann solltest Du die Firmware der PowerWall nicht aktualisieren! ",-1),o("br",null,null,-1),a(" Wir empfehlen, dass Du Tesla kontaktierst und Kritik an dieser Entscheidung mitteilst. Nur so können wir hoffen, dass Tesla die lokale API wieder aktiviert. Mit der Cloud-API kommt es zwangsläufig zu Verzögerungen (Latenzen), welche eine Regelung durch openWB erschweren. Weiterhin kommt es zu einem totalen Ausfall, wenn die Internetverbindung gestört ist. Aus diesen Gründen ist eine lokale API immer vorzuziehen. ",-1)])]),_:1}),t(l,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.device.configuration.ip_address,"onUpdate:modelValue":e[0]||(e[0]=i=>n.updateConfiguration(i,"configuration.ip_address"))},null,8,["model-value"]),t(l,{title:"E-Mail",subtype:"email",required:"","model-value":n.device.configuration.email,"onUpdate:modelValue":e[1]||(e[1]=i=>n.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),t(l,{title:"Passwort",subtype:"password",required:"","model-value":n.device.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=i=>n.updateConfiguration(i,"configuration.password"))},null,8,["model-value"])])}const y=m(w,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/tesla/tesla/device.vue"]]);export{y as default}; diff --git a/web/settings/assets/displayTheme-TNZXyuYb.js b/web/settings/assets/displayTheme-8rnKVIQ-.js similarity index 92% rename from web/settings/assets/displayTheme-TNZXyuYb.js rename to web/settings/assets/displayTheme-8rnKVIQ-.js index c4f4c4ca59..34e9dbf209 100644 --- a/web/settings/assets/displayTheme-TNZXyuYb.js +++ b/web/settings/assets/displayTheme-8rnKVIQ-.js @@ -1 +1 @@ -import{D as d}from"./DisplayConfiguration-h7XEuoXV.js";import{_ as m,l as n,k as i,e as c,m as l,q as s,A as a,y as b,u as g}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const p=n("openwb-base-heading"),r=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[l(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Bediensperre",-1)])]),_:1}),l(r,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>[...e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),b(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>[...e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):g("",!0)])}const $=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{$ as default}; +import{D as d}from"./DisplayConfiguration-C9arPcQK.js";import{_ as m,l as n,k as i,e as c,m as l,q as s,A as a,y as b,u as g}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DisplayThemeColors",mixins:[d]},f={class:"display-theme-colors"};function h(o,e,y,w,k,v){const p=n("openwb-base-heading"),r=n("openwb-base-button-group-input"),u=n("openwb-base-text-input");return i(),c("div",f,[l(p,null,{default:s(()=>[...e[2]||(e[2]=[a("Bediensperre",-1)])]),_:1}),l(r,{title:"Bedienung sperren","model-value":o.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.lock_changes"))},{help:s(()=>[...e[3]||(e[3]=[a(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),o.displayTheme.configuration.lock_changes?(i(),b(u,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":o.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.lock_changes_code"))},{help:s(()=>[...e[4]||(e[4]=[a(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):g("",!0)])}const $=m(_,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/colors/displayTheme.vue"]]);export{$ as default}; diff --git a/web/settings/assets/displayTheme-BlhJueVr.js b/web/settings/assets/displayTheme-Ci9Iypgk.js similarity index 98% rename from web/settings/assets/displayTheme-BlhJueVr.js rename to web/settings/assets/displayTheme-Ci9Iypgk.js index 94aeb81873..af469f630c 100644 --- a/web/settings/assets/displayTheme-BlhJueVr.js +++ b/web/settings/assets/displayTheme-Ci9Iypgk.js @@ -1 +1 @@ -import{D as v}from"./DisplayConfiguration-h7XEuoXV.js";import{_,l as s,k as r,e as c,m as a,q as o,A as u,y as b,u as p}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,C,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>[...e[15]||(e[15]=[u("Bediensperre",-1)])]),_:1}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>[...e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>[...e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>[...e[18]||(e[18]=[u("Ansichten",-1)])]),_:1}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>[...e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])]),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>[...e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])]),_:1},8,["model-value"]),a(d,null,{help:o(()=>[...e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])]),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const E=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{E as default}; +import{D as v}from"./DisplayConfiguration-C9arPcQK.js";import{_,l as s,k as r,e as c,m as a,q as o,A as u,y as b,u as p}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h=[{value:"dashboard",text:"Übersicht"},{value:"energy-flow",text:"Energiefluss"},{value:"charge-points",text:"Ladepunkte"},{value:"status",text:"Status"}],V={name:"DisplayThemeCards",mixins:[v],computed:{enabledViews(){return h.filter(t=>this.displayTheme.configuration[`enable_${t.value.replace("-","_")}_view`])}},methods:{toggleView(t){this.displayTheme.configuration.default_view===t&&this.updateConfiguration(void 0,"configuration.default_view"),this.updateConfiguration(!this.displayTheme.configuration[`enable_${t}_view`],`configuration.enable_${t}_view`)}}},w={class:"display-theme-cards"};function y(t,e,A,T,C,i){const d=s("openwb-base-heading"),l=s("openwb-base-button-group-input"),g=s("openwb-base-text-input"),m=s("openwb-base-select-input"),f=s("openwb-base-range-input");return r(),c("div",w,[a(d,null,{default:o(()=>[...e[15]||(e[15]=[u("Bediensperre",-1)])]),_:1}),a(l,{title:"Bedienung sperren","model-value":t.displayTheme.configuration.lock_changes,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.lock_changes"))},{help:o(()=>[...e[16]||(e[16]=[u(' Die Bedienung wird automatisch nach der eingestellten Ausschaltzeit (siehe "Display Standby") wieder gesperrt. ',-1)])]),_:1},8,["model-value"]),t.displayTheme.configuration.lock_changes?(r(),b(g,{key:0,title:"PIN zur Freigabe",subtype:"password",required:"",pattern:"[0-9]{4,10}","model-value":t.displayTheme.configuration.lock_changes_code,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.lock_changes_code"))},{help:o(()=>[...e[17]||(e[17]=[u(" Der PIN muss aus 4 bis 10 Zahlen bestehen. ",-1)])]),_:1},8,["model-value"])):p("",!0),a(d,null,{default:o(()=>[...e[18]||(e[18]=[u("Ansichten",-1)])]),_:1}),a(l,{title:"Übersicht anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[2]||(e[2]=n=>i.toggleView("dashboard"))},null,8,["model-value"]),a(l,{title:"Energiefluss anzeigen","model-value":t.displayTheme.configuration.enable_energy_flow_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[3]||(e[3]=n=>i.toggleView("energy_flow"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_charge_points_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[4]||(e[4]=n=>i.toggleView("charge_points"))},null,8,["model-value"]),t.displayTheme.configuration.enable_charge_points_view==!0?(r(),b(l,{key:1,title:"Einfache Ansicht der Ladepunkte","model-value":t.displayTheme.configuration.simple_charge_point_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.simple_charge_point_view"))},null,8,["model-value"])):p("",!0),a(l,{title:"Status anzeigen","model-value":t.displayTheme.configuration.enable_status_view,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[6]||(e[6]=n=>i.toggleView("status"))},null,8,["model-value"]),a(m,{title:"Standardansicht","not-selected":"Bitte auswählen",required:"","model-value":t.displayTheme.configuration.default_view,options:i.enabledViews,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.default_view"))},{help:o(()=>[...e[19]||(e[19]=[u(" Die Standardansicht wird beim Start sowie nach einiger Zeit ohne Bedienung angezeigt. ",-1)])]),_:1},8,["model-value","options"]),a(f,{title:"Wechsel zur Standardansicht",min:0,max:6,step:1,"model-value":t.displayTheme.configuration.default_view_timeout,labels:[{value:0,label:"Aus"},{value:60,label:"1 Min"},{value:300,label:"5 Min"},{value:600,label:"10 Min"},{value:900,label:"15 Min"},{value:1800,label:"30 Min"},{value:3600,label:"60 Min"}],"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.default_view_timeout"))},{help:o(()=>[...e[20]||(e[20]=[u(" Nach dieser Zeit ohne Bedienung wird die Standardansicht angezeigt. ",-1)])]),_:1},8,["model-value"]),a(d,null,{help:o(()=>[...e[21]||(e[21]=[u(' Hier kann festgelegt werden, welche Daten in den Ansichten "Übersicht" und "Energiefluss" angezeigt werden. ',-1)])]),default:o(()=>[e[22]||(e[22]=u(" Datenauswahl ",-1))]),_:1}),a(l,{title:"EVU anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_grid,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_grid"))},null,8,["model-value"]),a(l,{title:"Hausverbrauch anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_home_consumption,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_home_consumption"))},null,8,["model-value"]),a(l,{title:"PV anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_inverter_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_inverter_sum"))},null,8,["model-value"]),a(l,{title:"Batteriespeicher anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_battery_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_battery_sum"))},null,8,["model-value"]),a(l,{title:"Ladepunkte anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_charge_point_sum,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_charge_point_sum"))},null,8,["model-value"]),a(l,{title:"Fahrzeuge anzeigen","model-value":t.displayTheme.configuration.enable_dashboard_card_vehicles,buttons:[{buttonValue:!1,text:"Aus",class:"btn-outline-danger"},{buttonValue:!0,text:"An",class:"btn-outline-success"}],"onUpdate:modelValue":e[14]||(e[14]=n=>t.updateConfiguration(n,"configuration.enable_dashboard_card_vehicles"))},null,8,["model-value"])])}const E=_(V,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/display_themes/cards/displayTheme.vue"]]);export{E as default}; diff --git a/web/settings/assets/external_inverter-v9N8YFy_.js b/web/settings/assets/external_inverter-YjGYqVNZ.js similarity index 94% rename from web/settings/assets/external_inverter-v9N8YFy_.js rename to web/settings/assets/external_inverter-YjGYqVNZ.js index ffe6574057..c192aacb69 100644 --- a/web/settings/assets/external_inverter-v9N8YFy_.js +++ b/web/settings/assets/external_inverter-YjGYqVNZ.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as i,k as g,e as f,m as o,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolaredgeExternalInverter",mixins:[m]},c={class:"device-solaredge-external-inverter"};function v(n,e,_,w,x,C){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",c,[o(l,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])]),_:1}),o(u,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])]),_:1}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>[...e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])]),_:1},8,["model-value"])])}const I=p(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as i,k as g,e as f,m as o,q as r,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceSolaredgeExternalInverter",mixins:[m]},c={class:"device-solaredge-external-inverter"};function v(n,e,_,w,x,C){const l=i("openwb-base-heading"),u=i("openwb-base-alert"),a=i("openwb-base-number-input"),d=i("openwb-base-select-input");return g(),f("div",c,[o(l,null,{default:r(()=>[...e[3]||(e[3]=[s(" Einstellungen für SolarEdge externen Wechselrichter ",-1)])]),_:1}),o(u,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[s(' Diese Komponente nur konfigurieren, wenn ein weiteres Solaredge SmartMeter verbaut ist, welches z.B. die Leistung einer vorhandenen Bestands-PV-Anlage erfasst. Dieses zusätzliche SmartMeter muss dann als "Zähler 2" / "Position 2" im Wechselrichter-Konfigurationsmenü konfiguriert sein. ',-1)])]),_:1}),o(a,{title:"SolarEdge-Geräte-ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.modbus_id"))},null,8,["model-value"]),o(a,{title:"SolarEdge-Meter-ID","model-value":n.component.configuration.meter_id,min:"1",max:"255",required:"","onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.meter_id"))},null,8,["model-value"]),o(d,{title:"Leistung invertieren","not-selected":"Bitte auswählen",options:[{value:1,text:"nein"},{value:-1,text:"ja"}],"model-value":n.component.configuration.factor,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.factor"))},{help:r(()=>[...e[5]||(e[5]=[s(" Einige externe SolarEdge Wechselrichter liefern die Leistung mit falschem Vorzeichen. In diesem Fall ist die Leistung zu invertieren. ",-1)])]),_:1},8,["model-value"])])}const I=p(b,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/external_inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/flexible_tariff-Cm72-IRP.js b/web/settings/assets/flexible_tariff-B5DgZTcN.js similarity index 98% rename from web/settings/assets/flexible_tariff-Cm72-IRP.js rename to web/settings/assets/flexible_tariff-B5DgZTcN.js index ddf9d110ae..355e410a27 100644 --- a/web/settings/assets/flexible_tariff-Cm72-IRP.js +++ b/web/settings/assets/flexible_tariff-B5DgZTcN.js @@ -1 +1 @@ -import{F as H}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as S,k as s,e as f,x as u,f as x,l as o,y as w,D as N,q as a,m as l,z as C,A as p,u as F,K as V,L as y,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,c,v,g,n){return s(),f("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[x(t.$slots,"start")]),u("div",K,[x(t.$slots,"end")])])]),u("div",M,[x(t.$slots,"action")])])])}const R=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const j={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const c=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;c.push({value:d,text:d})}return c},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},L={key:0,class:"w-100 alert alert-danger"},J=["onUpdate:modelValue","onChange"],G=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("time-row"),k=o("openwb-base-setting-element");return s(),w(k,null,N({title:a(()=>[x(t.$slots,"title",{},()=>[p($(c.title),1)])]),default:a(()=>[l(h,null,{start:a(()=>[...e[0]||(e[0]=[p(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[p(" Ende ",-1)])]),action:a(()=>[l(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[l(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(s(),f("div",L," Keine Zeitbereiche definiert! ")):F("",!0),(s(!0),f(V,null,y(n.value,(_,b)=>(s(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(n.generateTimeOptions("00:00","23:00"),i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,G))),128))],40,J),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(g.endOptions[b],i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(s(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[x(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(j,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("openwb-base-text-input"),k=o("openwb-base-number-input"),_=o("openwb-base-select-input"),b=o("time-table"),i=o("openwb-base-card");return s(),w(i,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[p($(n.tariff.name),1)]),actions:a(()=>[l(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=r=>t.$emit("delete"))},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[l(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=r=>n.tariff.name=r),title:"Tarifname"},null,8,["modelValue"]),l(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=r=>n.tariff.price=parseFloat((r/100).toFixed(5)))},null,8,["model-value"]),l(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=r=>n.dates=r),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),l(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=r=>n.tariff.active_times.times=r),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const oe={name:"FlexibleTariffFixedHours",components:{FontAwesomeIcon:O,FixedTariff:ie},mixins:[H],computed:{value:{get(){return this.flexibleTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},se={class:"flexible-tariff-fixed-hours"};function le(t,e,c,v,g,n){const m=o("openwb-base-alert"),d=o("openwb-base-number-input"),h=o("font-awesome-icon"),k=o("openwb-base-avatar"),_=o("openwb-base-heading"),b=o("fixed-tariff");return s(),f("div",se,[l(m,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[p(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),l(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[p(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),l(_,null,{actions:a(()=>[l(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=p(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(s(),w(m,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[p(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),p(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(s(!0),f(V,null,y(n.value.configuration.tariffs,(i,r)=>(s(),w(b,{key:r,"model-value":i,"onUpdate:modelValue":q=>n.value.configuration.tariffs[r]=q,onDelete:q=>n.removeTariff(r)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(oe,[["render",le],["__scopeId","data-v-dd67c8e4"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/flexible_tariff.vue"]]);export{be as default}; +import{F as H}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as S,k as s,e as f,x as u,f as x,l as o,y as w,D as N,q as a,m as l,z as C,A as p,u as F,K as V,L as y,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,c,v,g,n){return s(),f("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[x(t.$slots,"start")]),u("div",K,[x(t.$slots,"end")])])]),u("div",M,[x(t.$slots,"action")])])])}const R=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const j={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:R},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const c=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;c.push({value:d,text:d})}return c},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},L={key:0,class:"w-100 alert alert-danger"},J=["onUpdate:modelValue","onChange"],G=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("time-row"),k=o("openwb-base-setting-element");return s(),w(k,null,N({title:a(()=>[x(t.$slots,"title",{},()=>[p($(c.title),1)])]),default:a(()=>[l(h,null,{start:a(()=>[...e[0]||(e[0]=[p(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[p(" Ende ",-1)])]),action:a(()=>[l(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[l(m,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(s(),f("div",L," Keine Zeitbereiche definiert! ")):F("",!0),(s(!0),f(V,null,y(n.value,(_,b)=>(s(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[0]=i,class:"form-control",required:"",onChange:i=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(n.generateTimeOptions("00:00","23:00"),i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,G))),128))],40,J),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":i=>_[1]=i,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(s(!0),f(V,null,y(g.endOptions[b],i=>(s(),f("option",{key:i.value,value:i.value},$(i.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(s(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(i=>n.removeTime(b),["stop"])},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[x(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(j,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,c,v,g,n){const m=o("font-awesome-icon"),d=o("openwb-base-avatar"),h=o("openwb-base-text-input"),k=o("openwb-base-number-input"),_=o("openwb-base-select-input"),b=o("time-table"),i=o("openwb-base-card");return s(),w(i,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[p($(n.tariff.name),1)]),actions:a(()=>[l(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=r=>t.$emit("delete"))},{default:a(()=>[l(m,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[l(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=r=>n.tariff.name=r),title:"Tarifname"},null,8,["modelValue"]),l(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=r=>n.tariff.price=parseFloat((r/100).toFixed(5)))},null,8,["model-value"]),l(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=r=>n.dates=r),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),l(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=r=>n.tariff.active_times.times=r),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const ie=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const oe={name:"FlexibleTariffFixedHours",components:{FontAwesomeIcon:O,FixedTariff:ie},mixins:[H],computed:{value:{get(){return this.flexibleTariff},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},se={class:"flexible-tariff-fixed-hours"};function le(t,e,c,v,g,n){const m=o("openwb-base-alert"),d=o("openwb-base-number-input"),h=o("font-awesome-icon"),k=o("openwb-base-avatar"),_=o("openwb-base-heading"),b=o("fixed-tariff");return s(),f("div",se,[l(m,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[p(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),l(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=i=>n.value.configuration.default_price=parseFloat((i/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[p(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),l(_,null,{actions:a(()=>[l(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[l(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=p(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(s(),w(m,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[p(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),p(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(s(!0),f(V,null,y(n.value.configuration.tariffs,(i,r)=>(s(),w(b,{key:r,"model-value":i,"onUpdate:modelValue":q=>n.value.configuration.tariffs[r]=q,onDelete:q=>n.removeTariff(r)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(oe,[["render",le],["__scopeId","data-v-dd67c8e4"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/fixed_hours/flexible_tariff.vue"]]);export{be as default}; diff --git a/web/settings/assets/flexible_tariff-CiZLGcR6.js b/web/settings/assets/flexible_tariff-BxUfQCPe.js similarity index 91% rename from web/settings/assets/flexible_tariff-CiZLGcR6.js rename to web/settings/assets/flexible_tariff-BxUfQCPe.js index 4b45cb67d9..469dd3463b 100644 --- a/web/settings/assets/flexible_tariff-CiZLGcR6.js +++ b/web/settings/assets/flexible_tariff-BxUfQCPe.js @@ -1 +1 @@ -import{F as r}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as a,l,k as s,e as f,m as n,q as u,A as p}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"FlexibleTariffWestfalenWind",mixins:[r]},m={class:"flexible-tariff-westfalen-wind"};function b(i,e,g,w,c,x){const o=l("openwb-base-text-input");return s(),f("div",m,[n(o,{title:"Benutzername",subtype:"user",required:"","model-value":i.flexibleTariff.configuration.username,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.username"))},null,8,["model-value"]),n(o,{title:"Passwort",subtype:"password",required:"","model-value":i.flexibleTariff.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),n(o,{title:"Vertrags-Nummer (optional)","model-value":i.flexibleTariff.configuration.contract_id,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.contract_id"))},{help:u(()=>[...e[3]||(e[3]=[p(" Bei mehreren Verträgen kann zusätzlich die Vertrags-Nummer angegeben werden, um die Preise dieses Vertrags abzurufen. ",-1)])]),_:1},8,["model-value"])])}const N=a(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/westfalen_wind/flexible_tariff.vue"]]);export{N as default}; +import{F as r}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as a,l,k as s,e as f,m as n,q as u,A as p}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"FlexibleTariffWestfalenWind",mixins:[r]},m={class:"flexible-tariff-westfalen-wind"};function b(i,e,g,w,c,x){const o=l("openwb-base-text-input");return s(),f("div",m,[n(o,{title:"Benutzername",subtype:"user",required:"","model-value":i.flexibleTariff.configuration.username,"onUpdate:modelValue":e[0]||(e[0]=t=>i.updateConfiguration(t,"configuration.username"))},null,8,["model-value"]),n(o,{title:"Passwort",subtype:"password",required:"","model-value":i.flexibleTariff.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>i.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),n(o,{title:"Vertrags-Nummer (optional)","model-value":i.flexibleTariff.configuration.contract_id,"onUpdate:modelValue":e[2]||(e[2]=t=>i.updateConfiguration(t,"configuration.contract_id"))},{help:u(()=>[...e[3]||(e[3]=[p(" Bei mehreren Verträgen kann zusätzlich die Vertrags-Nummer angegeben werden, um die Preise dieses Vertrags abzurufen. ",-1)])]),_:1},8,["model-value"])])}const N=a(d,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/westfalen_wind/flexible_tariff.vue"]]);export{N as default}; diff --git a/web/settings/assets/flexible_tariff-DDPKc8IS.js b/web/settings/assets/flexible_tariff-C7Zs9PG4.js similarity index 94% rename from web/settings/assets/flexible_tariff-DDPKc8IS.js rename to web/settings/assets/flexible_tariff-C7Zs9PG4.js index 1ebd4fb5e5..f9f276ef46 100644 --- a/web/settings/assets/flexible_tariff-DDPKc8IS.js +++ b/web/settings/assets/flexible_tariff-C7Zs9PG4.js @@ -1 +1 @@ -import{F as f}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as p,l as r,k as d,e as m,m as i,q as a,A as s,x as c}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"FlexibleTariffEnergyCharts",mixins:[f]},b={class:"flexible-tariff-energy-charts"};function h(n,e,_,w,x,v){const o=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),m("div",b,[i(o,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),c("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])]),_:1}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":n.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.flexibleTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(parseFloat(t.toFixed(3)),"configuration.surcharge"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])]),_:1},8,["model-value"])])}const F=p(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/energycharts/flexible_tariff.vue"]]);export{F as default}; +import{F as f}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as p,l as r,k as d,e as m,m as i,q as a,A as s,x as c}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"FlexibleTariffEnergyCharts",mixins:[f]},b={class:"flexible-tariff-energy-charts"};function h(n,e,_,w,x,v){const o=r("openwb-base-alert"),l=r("openwb-base-select-input"),u=r("openwb-base-number-input");return d(),m("div",b,[i(o,{subtype:"info"},{default:a(()=>[...e[2]||(e[2]=[s(" Börsenstrompreise von Energy Charts (energy-charts.info)",-1),c("br",null,null,-1),s(" Die Rohdaten werden von Wissenschaftlern des Fraunhofer-Instituts für Solare Energiesysteme ISE aus zahlreichen Quellen stündlich oder täglich abgerufen und für die Darstellung aufbereitet. ",-1)])]),_:1}),i(l,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"DE-LU",text:"Deutschland"},{value:"AT",text:"Österreich"},{value:"CH",text:"Schweiz"}],"model-value":n.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.country"))},null,8,["model-value"]),i(u,{title:"Aufschlag zum Börsenstrompreis",min:0,step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.flexibleTariff.configuration.surcharge,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(parseFloat(t.toFixed(3)),"configuration.surcharge"))},{help:a(()=>[...e[3]||(e[3]=[s(" Die Auswahl (Energy-Charts) kann für alle Stromanbieter ausgewählt werden, die die Börsenstrompreise in einem variablen/dynamischen Tarif an die Kunden weitergeben. Das Modul soll es ermöglichen, dass zu tagesaktuellen Strompreisen unter Berücksichtigung eines Aufschlags zu günstigen Zeiten automatisch geladen werden kann und somit die Preisschwankungen an der Börse optimal ausgenutzt werden. ",-1)])]),_:1},8,["model-value"])])}const F=p(g,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/energycharts/flexible_tariff.vue"]]);export{F as default}; diff --git a/web/settings/assets/flexible_tariff-Cwtdxcdq.js b/web/settings/assets/flexible_tariff-CToQtY_I.js similarity index 93% rename from web/settings/assets/flexible_tariff-Cwtdxcdq.js rename to web/settings/assets/flexible_tariff-CToQtY_I.js index 3c1b67afac..d844357076 100644 --- a/web/settings/assets/flexible_tariff-Cwtdxcdq.js +++ b/web/settings/assets/flexible_tariff-CToQtY_I.js @@ -1 +1 @@ -import{F as p}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as f,l,k as u,e as d,m as o,q as a,A as n,x as m}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"FlexibleTariffOstrom",mixins:[p]},c={class:"flexible-tariff-ostrom"};function g(t,e,_,x,v,w){const s=l("openwb-base-alert"),r=l("openwb-base-text-input");return u(),d("div",c,[o(s,{subtype:"info"},{default:a(()=>[...e[3]||(e[3]=[n(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem ostrom-Account abfragen lassen! ",-1)])]),_:1}),o(r,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(r,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),o(r,{title:"Postleitzahl","model-value":t.flexibleTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:a(()=>[...e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])]),_:1},8,["model-value"])])}const A=f(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ostrom/flexible_tariff.vue"]]);export{A as default}; +import{F as p}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as f,l,k as u,e as d,m as o,q as a,A as n,x as m}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"FlexibleTariffOstrom",mixins:[p]},c={class:"flexible-tariff-ostrom"};function g(t,e,_,x,v,w){const s=l("openwb-base-alert"),r=l("openwb-base-text-input");return u(),d("div",c,[o(s,{subtype:"info"},{default:a(()=>[...e[3]||(e[3]=[n(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du über das ",-1),m("a",{href:"https://developer.ostrom-api.io/",target:"_blank",rel:"noopener noreferrer"}," Ostrom Developer Portal ",-1),n(" . Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem ostrom-Account abfragen lassen! ",-1)])]),_:1}),o(r,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(r,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"]),o(r,{title:"Postleitzahl","model-value":t.flexibleTariff.configuration.zip,"onUpdate:modelValue":e[2]||(e[2]=i=>t.updateConfiguration(i,"configuration.zip"))},{help:a(()=>[...e[4]||(e[4]=[n(" Die Postleitzahl wird zur Ermittlung der Abgaben und Umlagen benötigt. Ohne Angabe der Postleitzahl wird durch die ostrom API lediglich der Börsenstrompreis einschließlich Mehrwertsteuer geliefert. ",-1)])]),_:1},8,["model-value"])])}const A=f(b,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ostrom/flexible_tariff.vue"]]);export{A as default}; diff --git a/web/settings/assets/flexible_tariff-DNlNO1mw.js b/web/settings/assets/flexible_tariff-CZz477CJ.js similarity index 88% rename from web/settings/assets/flexible_tariff-DNlNO1mw.js rename to web/settings/assets/flexible_tariff-CZz477CJ.js index 13c109a989..888c114721 100644 --- a/web/settings/assets/flexible_tariff-DNlNO1mw.js +++ b/web/settings/assets/flexible_tariff-CZz477CJ.js @@ -1 +1 @@ -import{F as o}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as a,l as n,k as s,e as l,m as p,q as f,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffGroupeE",mixins:[o]},u={class:"flexible-tariff-groupe-e"};function m(_,r,d,b,x,g){const i=n("openwb-base-alert");return s(),l("div",u,[p(i,{subtype:"info"},{default:f(()=>[...r[0]||(r[0]=[e(" Tarif Vario der Groupe E (Westschweiz) - www.groupe-e.ch/de/strom/vario ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1)])]),_:1})])}const $=a(c,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/groupe_e/flexible_tariff.vue"]]);export{$ as default}; +import{F as o}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as a,l as n,k as s,e as l,m as p,q as f,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffGroupeE",mixins:[o]},u={class:"flexible-tariff-groupe-e"};function m(_,r,d,b,x,g){const i=n("openwb-base-alert");return s(),l("div",u,[p(i,{subtype:"info"},{default:f(()=>[...r[0]||(r[0]=[e(" Tarif Vario der Groupe E (Westschweiz) - www.groupe-e.ch/de/strom/vario ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1)])]),_:1})])}const $=a(c,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/groupe_e/flexible_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/flexible_tariff-BsviT0dT.js b/web/settings/assets/flexible_tariff-Cbf1PwIN.js similarity index 91% rename from web/settings/assets/flexible_tariff-BsviT0dT.js rename to web/settings/assets/flexible_tariff-Cbf1PwIN.js index 1f92cfb146..295e035844 100644 --- a/web/settings/assets/flexible_tariff-BsviT0dT.js +++ b/web/settings/assets/flexible_tariff-Cbf1PwIN.js @@ -1 +1 @@ -import{F as a}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as s,l,k as f,e as p,m as o,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffVoltego",mixins:[a]},m={class:"flexible-tariff-voltego"};function b(t,e,_,g,x,v){const r=l("openwb-base-alert"),n=l("openwb-base-text-input");return f(),p("div",m,[o(r,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[d(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du direkt von Voltego. Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Voltego-Account abfragen lassen! ",-1)])]),_:1}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const $=s(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/voltego/flexible_tariff.vue"]]);export{$ as default}; +import{F as a}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as s,l,k as f,e as p,m as o,q as u,A as d}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffVoltego",mixins:[a]},m={class:"flexible-tariff-voltego"};function b(t,e,_,g,x,v){const r=l("openwb-base-alert"),n=l("openwb-base-text-input");return f(),p("div",m,[o(r,{subtype:"info"},{default:u(()=>[...e[2]||(e[2]=[d(" Deine persönlichen Zugangsdaten (Client-ID und Client-Secret) erhältst Du direkt von Voltego. Behandle diese Daten wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Voltego-Account abfragen lassen! ",-1)])]),_:1}),o(n,{title:"Client-ID",subtype:"user",required:"","model-value":t.flexibleTariff.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.client_id"))},null,8,["model-value"]),o(n,{title:"Client-Secret",subtype:"password",required:"","model-value":t.flexibleTariff.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.client_secret"))},null,8,["model-value"])])}const $=s(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/voltego/flexible_tariff.vue"]]);export{$ as default}; diff --git a/web/settings/assets/flexible_tariff-DJxxQB8n.js b/web/settings/assets/flexible_tariff-Cf2nnN_M.js similarity index 96% rename from web/settings/assets/flexible_tariff-DJxxQB8n.js rename to web/settings/assets/flexible_tariff-Cf2nnN_M.js index d761a14211..521650ac36 100644 --- a/web/settings/assets/flexible_tariff-DJxxQB8n.js +++ b/web/settings/assets/flexible_tariff-Cf2nnN_M.js @@ -1 +1 @@ -import{F as c}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as m,l as s,k as g,e as _,m as r,q as h,A as l,x as T}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const x={name:"FlexibleTariffTibber",mixins:[c],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.flexibleTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.flexibleTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let n=t.address.address1;return t.address.address2&&(n=n+", "+t.address.address2),t.address.address3&&(n=n+", "+t.address.address3),n=n+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:n}}),this.flexibleTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},k={class:"flexible-tariff-tibber"};function v(i,e,t,n,d,b){const u=s("openwb-base-alert"),a=s("openwb-base-text-input"),f=s("openwb-base-button-input"),p=s("openwb-base-select-input");return g(),_("div",k,[r(u,{subtype:"info"},{default:h(()=>[...e[3]||(e[3]=[l(" Deinen persönlichen Tibber-Token erhältst Du über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandle Deinen Token wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Tibber-Account abfragen lassen! Die Home-ID kannst Du (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Deines Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])]),_:1}),r(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.flexibleTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),r(f,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!i.flexibleTariff.configuration.token?.length,onButtonClicked:b.getTibberHomeList},null,8,["disabled","onButtonClicked"]),r(p,{title:"Verfügbare Home-IDs",options:d.tibberHomeList,"model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),r(a,{title:"Home-ID",required:"","model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const V=m(x,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/tibber/flexible_tariff.vue"]]);export{V as default}; +import{F as c}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as m,l as s,k as g,e as _,m as r,q as h,A as l,x as T}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const x={name:"FlexibleTariffTibber",mixins:[c],data(){return{tibberAPI:"https://api.tibber.com/v1-beta/gql",tibberHomeList:[]}},methods:{async getTibberHomeList(){if(this.flexibleTariff.configuration.token===null)return;const i='{ "query": "{viewer {homes{id address{address1 address2 address3 postalCode city country}}}}" }';try{const e=await this.axios.post(this.tibberAPI,i,{headers:{Authorization:"Bearer "+this.flexibleTariff.configuration.token,"Content-Type":"application/json"}});this.tibberHomeList=e.data.data.viewer.homes.map(t=>{let n=t.address.address1;return t.address.address2&&(n=n+", "+t.address.address2),t.address.address3&&(n=n+", "+t.address.address3),n=n+`, ${t.address.postalCode} ${t.address.city}, ${t.address.country}`,{value:t.id,text:n}}),this.flexibleTariff.configuration.home_id||this.updateConfiguration(this.tibberHomeList[0].value,"configuration.home_id"),this.$root.postClientMessage("Home IDs erfolgreich abgerufen.","success")}catch(e){console.error(e),this.$root.postClientMessage("Beim Abfragen der Tibber API ist ein Fehler aufgetreten!
"+e+"
","danger")}}}},k={class:"flexible-tariff-tibber"};function v(i,e,t,n,d,b){const u=s("openwb-base-alert"),a=s("openwb-base-text-input"),f=s("openwb-base-button-input"),p=s("openwb-base-select-input");return g(),_("div",k,[r(u,{subtype:"info"},{default:h(()=>[...e[3]||(e[3]=[l(" Deinen persönlichen Tibber-Token erhältst Du über die ",-1),T("a",{href:"https://developer.tibber.com/explorer",target:"_blank",rel:"noopener noreferrer"}," Tibber-Developer-Seite ",-1),l(" . Behandle Deinen Token wie ein Passwort, da sich darüber auch persönliche Daten aus Deinem Tibber-Account abfragen lassen! Die Home-ID kannst Du (wenn bekannt) in das Eingabefeld selbst eintragen oder nach Eingabe Deines Token durch Klick auf den Button von der openWB ermitteln lassen. Unerlaubte Zeichen werden aus dem Token und der Home-ID automatisch gelöscht. ",-1)])]),_:1}),r(a,{ref:"tokenInput",title:"Token",required:"","model-value":i.flexibleTariff.configuration.token,"onUpdate:modelValue":e[0]||(e[0]=o=>i.updateConfiguration(o,"configuration.token"))},null,8,["model-value"]),r(f,{title:"Home-IDs abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:!i.flexibleTariff.configuration.token?.length,onButtonClicked:b.getTibberHomeList},null,8,["disabled","onButtonClicked"]),r(p,{title:"Verfügbare Home-IDs",options:d.tibberHomeList,"model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[1]||(e[1]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["options","model-value"]),r(a,{title:"Home-ID",required:"","model-value":i.flexibleTariff.configuration.home_id,"onUpdate:modelValue":e[2]||(e[2]=o=>i.updateConfiguration(o,"configuration.home_id"))},null,8,["model-value"])])}const V=m(x,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/tibber/flexible_tariff.vue"]]);export{V as default}; diff --git a/web/settings/assets/flexible_tariff-B5Q9TiRz.js b/web/settings/assets/flexible_tariff-D0DTSvQT.js similarity index 89% rename from web/settings/assets/flexible_tariff-B5Q9TiRz.js rename to web/settings/assets/flexible_tariff-D0DTSvQT.js index c9c02bd219..6e2ed6d7cd 100644 --- a/web/settings/assets/flexible_tariff-B5Q9TiRz.js +++ b/web/settings/assets/flexible_tariff-D0DTSvQT.js @@ -1 +1 @@ -import{F as n}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as a,l as s,k as l,e as o,m as f,q as p,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffEkz",mixins:[n]},m={class:"flexible-tariff-ekz"};function u(d,r,_,b,x,k){const i=s("openwb-base-alert");return l(),o("div",m,[f(i,{subtype:"info"},{default:p(()=>[...r[0]||(r[0]=[e(" Dynamischer Tarif der Elektrizitätswerke des Kantons Zürich (EKZ) - www.ekz.ch/de/privatkunden/strom/tarife/dynamischer-wahltarif.html ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1),t("br",null,null,-1)])]),_:1})])}const E=a(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ekz/flexible_tariff.vue"]]);export{E as default}; +import{F as n}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as a,l as s,k as l,e as o,m as f,q as p,A as e,x as t}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"FlexibleTariffEkz",mixins:[n]},m={class:"flexible-tariff-ekz"};function u(d,r,_,b,x,k){const i=s("openwb-base-alert");return l(),o("div",m,[f(i,{subtype:"info"},{default:p(()=>[...r[0]||(r[0]=[e(" Dynamischer Tarif der Elektrizitätswerke des Kantons Zürich (EKZ) - www.ekz.ch/de/privatkunden/strom/tarife/dynamischer-wahltarif.html ",-1),t("br",null,null,-1),e(" Der Tarif passt sich alle 15 Minuten an, abhängig von der aktuellen Netzauslastung und dem Marktpreis. ",-1),t("br",null,null,-1),e(" Die Preise für den nächsten Tag werden jeweils am Vortag um 18 Uhr publiziert. ",-1),t("br",null,null,-1)])]),_:1})])}const E=a(c,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/ekz/flexible_tariff.vue"]]);export{E as default}; diff --git a/web/settings/assets/flexible_tariff-DAlfbB0X.js b/web/settings/assets/flexible_tariff-DRHxWWnZ.js similarity index 96% rename from web/settings/assets/flexible_tariff-DAlfbB0X.js rename to web/settings/assets/flexible_tariff-DRHxWWnZ.js index dfa72ad180..29ed26f6f1 100644 --- a/web/settings/assets/flexible_tariff-DAlfbB0X.js +++ b/web/settings/assets/flexible_tariff-DRHxWWnZ.js @@ -1 +1 @@ -import{F as m}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as g,l as u,k as f,e as p,m as l,q as a,A as i,x as o,J as r,u as x}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"FlexibleTariffAwattar",mixins:[m]},T={class:"flexible-tariff-awattar"},w={key:0,class:"mt-3"},B={class:"alert alert-info mb-3"},C={class:"row"},V={class:"col-md-4"},k={class:"col-md-4"},A={class:"col-md-4"};function F(t,e,P,S,y,U){const d=u("openwb-base-select-input"),b=u("openwb-base-button-group-input"),s=u("openwb-base-number-input");return f(),p("div",T,[l(d,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},{help:a(()=>[...e[5]||(e[5]=[i(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])]),_:1},8,["model-value"]),l(b,{title:"Preisart",buttons:[{buttonValue:!0,text:"Netto"},{buttonValue:!1,text:"Brutto"}],"model-value":t.flexibleTariff.configuration.net??!0,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.net"))},{help:a(()=>[...e[6]||(e[6]=[i(" Netto: Reine Börsenpreise ohne Aufschläge",-1),o("br",null,null,-1),i(" Brutto: Börsenpreise mit konfigurierbaren Aufschlägen und MwSt. ",-1)])]),_:1},8,["model-value"]),t.flexibleTariff.configuration.net?x("",!0):(f(),p("div",w,[e[15]||(e[15]=o("h5",{class:"mb-3"},"Preisberechnung",-1)),o("div",B,[e[7]||(e[7]=o("strong",null,"Formel:",-1)),e[8]||(e[8]=o("br",null,null,-1)),i(" Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT"),1),e[9]||(e[9]=o("br",null,null,-1)),i(" + | Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT")+" | × "+r((t.flexibleTariff.configuration.proportional/100||0).toFixed(2))+" ("+r((t.flexibleTariff.configuration.proportional||0).toFixed(0))+"%)",1),e[10]||(e[10]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.fix*1e5||0).toFixed(3))+" Cent/kWh",1),e[11]||(e[11]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.tax||0).toFixed(0))+"% MwSt. ",1)]),o("div",C,[o("div",V,[l(s,{title:"Proportionaler Aufschlag",unit:"%",min:0,max:100,step:.01,"model-value":t.flexibleTariff.configuration.proportional||0,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.proportional"))},{help:a(()=>[...e[12]||(e[12]=[i(" Prozentuale Gebühr auf den Börsenpreis (z.B. 3% = 0.03) ",-1)])]),_:1},8,["model-value"])]),o("div",k,[l(s,{title:"Fester Aufschlag",unit:"Cent/kWh",min:0,step:.001,"model-value":t.flexibleTariff.configuration.fix*1e5||0,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n/1e5,"configuration.fix"))},{help:a(()=>[...e[13]||(e[13]=[i(" Feste Gebühr pro kWh (z.B. 1,500 Cent/kWh) ",-1)])]),_:1},8,["model-value"])]),o("div",A,[l(s,{title:"Mehrwertsteuer",unit:"%",min:0,max:50,step:.01,"model-value":t.flexibleTariff.configuration.tax||0,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.tax"))},{help:a(()=>[...e[14]||(e[14]=[i(" Mehrwertsteuer in Prozent (z.B. 20%) ",-1)])]),_:1},8,["model-value"])])])]))])}const D=g(v,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/awattar/flexible_tariff.vue"]]);export{D as default}; +import{F as m}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as g,l as u,k as f,e as p,m as l,q as a,A as i,x as o,J as r,u as x}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"FlexibleTariffAwattar",mixins:[m]},T={class:"flexible-tariff-awattar"},w={key:0,class:"mt-3"},B={class:"alert alert-info mb-3"},C={class:"row"},V={class:"col-md-4"},k={class:"col-md-4"},A={class:"col-md-4"};function F(t,e,P,S,y,U){const d=u("openwb-base-select-input"),b=u("openwb-base-button-group-input"),s=u("openwb-base-number-input");return f(),p("div",T,[l(d,{title:"Land","not-selected":"Bitte auswählen",options:[{value:"de",text:"Deutschland"},{value:"at",text:"Österreich"}],"model-value":t.flexibleTariff.configuration.country,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.country"))},{help:a(()=>[...e[5]||(e[5]=[i(" Es werden die abgefragten Börsenpreise verwendet, die aWATTar bereitstellt. aWATTar-Gebühren oder Steuern werden nicht berücksichtigt. ",-1)])]),_:1},8,["model-value"]),l(b,{title:"Preisart",buttons:[{buttonValue:!0,text:"Netto"},{buttonValue:!1,text:"Brutto"}],"model-value":t.flexibleTariff.configuration.net??!0,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.net"))},{help:a(()=>[...e[6]||(e[6]=[i(" Netto: Reine Börsenpreise ohne Aufschläge",-1),o("br",null,null,-1),i(" Brutto: Börsenpreise mit konfigurierbaren Aufschlägen und MwSt. ",-1)])]),_:1},8,["model-value"]),t.flexibleTariff.configuration.net?x("",!0):(f(),p("div",w,[e[15]||(e[15]=o("h5",{class:"mb-3"},"Preisberechnung",-1)),o("div",B,[e[7]||(e[7]=o("strong",null,"Formel:",-1)),e[8]||(e[8]=o("br",null,null,-1)),i(" Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT"),1),e[9]||(e[9]=o("br",null,null,-1)),i(" + | Stündliche Preise EPEX Spot® "+r(t.flexibleTariff.configuration.country?.toUpperCase()||"AT")+" | × "+r((t.flexibleTariff.configuration.proportional/100||0).toFixed(2))+" ("+r((t.flexibleTariff.configuration.proportional||0).toFixed(0))+"%)",1),e[10]||(e[10]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.fix*1e5||0).toFixed(3))+" Cent/kWh",1),e[11]||(e[11]=o("br",null,null,-1)),i(" + "+r((t.flexibleTariff.configuration.tax||0).toFixed(0))+"% MwSt. ",1)]),o("div",C,[o("div",V,[l(s,{title:"Proportionaler Aufschlag",unit:"%",min:0,max:100,step:.01,"model-value":t.flexibleTariff.configuration.proportional||0,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.proportional"))},{help:a(()=>[...e[12]||(e[12]=[i(" Prozentuale Gebühr auf den Börsenpreis (z.B. 3% = 0.03) ",-1)])]),_:1},8,["model-value"])]),o("div",k,[l(s,{title:"Fester Aufschlag",unit:"Cent/kWh",min:0,step:.001,"model-value":t.flexibleTariff.configuration.fix*1e5||0,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n/1e5,"configuration.fix"))},{help:a(()=>[...e[13]||(e[13]=[i(" Feste Gebühr pro kWh (z.B. 1,500 Cent/kWh) ",-1)])]),_:1},8,["model-value"])]),o("div",A,[l(s,{title:"Mehrwertsteuer",unit:"%",min:0,max:50,step:.01,"model-value":t.flexibleTariff.configuration.tax||0,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.tax"))},{help:a(()=>[...e[14]||(e[14]=[i(" Mehrwertsteuer in Prozent (z.B. 20%) ",-1)])]),_:1},8,["model-value"])])])]))])}const D=g(v,[["render",F],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/awattar/flexible_tariff.vue"]]);export{D as default}; diff --git a/web/settings/assets/flexible_tariff-DUAjEH5H.js b/web/settings/assets/flexible_tariff-Df7JtFhH.js similarity index 97% rename from web/settings/assets/flexible_tariff-DUAjEH5H.js rename to web/settings/assets/flexible_tariff-Df7JtFhH.js index 8619c0a28d..cb3a0a896b 100644 --- a/web/settings/assets/flexible_tariff-DUAjEH5H.js +++ b/web/settings/assets/flexible_tariff-Df7JtFhH.js @@ -1 +1 @@ -import{a as b}from"./vendor-axios-DdFvNBv9.js";import{F as g}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as c,l as a,k as p,e as h,m as n,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"FlexibleTariffRabot",mixins:[g],data(){return{contractNumbers:[]}},computed:{contractOptions(){const t=this.contractNumbers.map(e=>({value:e,text:e}));return t.length===0&&this.flexibleTariff.configuration.contract_number&&t.push({value:this.flexibleTariff.configuration.contract_number,text:this.flexibleTariff.configuration.contract_number}),t}},methods:{rabot_login_window(){const t=window.open("about:blank","RabotLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus(),this.createAuthUrl().then(e=>{t.location.href=e.authorizationUrl}).catch(e=>{t.close(),console.error("Fehler beim Erstellen des Rabot-Links:",e),this.$root.postClientMessage("Fehler beim Erstellen der Rabot-Authentifizierung: "+(e.response?.data?.message||e.message),"danger")})},async createAuthUrl(){const t=await b.post("https://rabot.openwb.de/rabot-auth.php",{headers:{"Content-Type":"application/json"}});if(!t.data.success)throw new Error("Server-Fehler beim Erstellen der Rabot-Authentifizierung");return t.data},async fetch_contract_number(){if(!this.flexibleTariff.configuration.customer_number){this.$root.postClientMessage("Bitte gib zuerst eine Kundennummer ein.","warning");return}try{const t=await b.get(`https://rabot.openwb.de/rabot-proxy.php/customers/${this.flexibleTariff.configuration.customer_number}/contracts`,{headers:{"Content-Type":"application/json"}});if(t.data&&t.data.contractNumbers&&t.data.contractNumbers.length>0){const e=t.data.contractNumbers;this.contractNumbers=e;const o=e[0];this.updateConfiguration(o,"configuration.contract_number"),e.length>1?this.$root.postClientMessage(`${e.length} Verträge gefunden. Erster Vertrag ausgewählt: ${o}. Du kannst einen anderen Vertrag aus der Liste wählen.`,"success"):this.$root.postClientMessage("Vertragsnummer erfolgreich abgerufen: "+o,"success")}else this.$root.postClientMessage("Keine Verträge für diese Kundennummer gefunden.","warning")}catch(t){console.error("Fehler beim Abrufen der Vertragsnummer:",t),this.$root.postClientMessage("Fehler beim Abrufen der Vertragsnummer: "+(t.response?.data?.message||t.message),"danger")}}}},_={class:"flexible-tariff-rabot"};function x(t,e,o,C,V,s){const l=a("openwb-base-alert"),m=a("openwb-base-button-input"),f=a("openwb-base-text-input"),d=a("openwb-base-select-input");return p(),h("div",_,[n(l,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[i(" Über die Rabot-Authentifizierung kannst Du Deine Stromtarif-Daten für die Ladeplanung nutzen. Nach der Anmeldung bei Rabot wird eine Kundennummer in der Adresszeile angezeigt, die Du hier einfügen musst. ",-1)])]),_:1}),n(l,{subtype:"warning"},{default:r(()=>[...e[4]||(e[4]=[i(" Die Rabot-Authentifizierung kann nur über einen Computer oder die openWB-Cloud (remote.openwb.de) durchgeführt werden. Das Eintragen von Kunden- und Vertragsnummer ist nicht ausreichend, da nach der Anmeldung bei Rabot noch die Zustimmung erteilt werden muss. ",-1)])]),_:1}),n(m,{title:"1. Bei Rabot anmelden","button-text":"Bei Rabot Anmelden",subtype:"success",onButtonClicked:e[0]||(e[0]=()=>s.rabot_login_window())},{help:r(()=>[...e[5]||(e[5]=[i(" Es wird ein neues Browserfenster geöffnet, in dem Du Dich bei Rabot mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1}),n(f,{title:"2. Kundennummer kopieren und einfügen",required:"","model-value":t.flexibleTariff.configuration.customer_number,"onUpdate:modelValue":e[1]||(e[1]=u=>t.updateConfiguration(u,"configuration.customer_number"))},{help:r(()=>[...e[6]||(e[6]=[i(" Nachdem die Rabot-Authentifizierung abgeschlossen wurde, wird im geöffneten Browserfenster eine Kundennummer angezeigt. Diese kopieren und hier einfügen. Diese wird benötigt, um auf Ihre Tarif-Daten zugreifen zu können. ",-1)])]),_:1},8,["model-value"]),n(m,{title:"3. Vertragsnummer abrufen","button-text":"Vertrag laden",subtype:"info",disabled:!t.flexibleTariff.configuration.customer_number,onButtonClicked:s.fetch_contract_number},{help:r(()=>[...e[7]||(e[7]=[i(" Mit der Kundennummer wird automatisch die zugehörige Vertragsnummer von Rabot abgerufen. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n(d,{title:"Vertragsnummer",options:s.contractOptions,"model-value":t.flexibleTariff.configuration.contract_number,"onUpdate:modelValue":e[2]||(e[2]=u=>t.updateConfiguration(u,"configuration.contract_number"))},{help:r(()=>[...e[8]||(e[8]=[i(" Wähle eine der verfügbaren Vertragsnummern aus. Diese wird für den Zugriff auf die Tarif-Daten benötigt. ",-1)])]),_:1},8,["options","model-value"])])}const B=c(w,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/rabot/flexible_tariff.vue"]]);export{B as default}; +import{a as b}from"./vendor-axios-DdFvNBv9.js";import{F as g}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as c,l as a,k as p,e as h,m as n,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"FlexibleTariffRabot",mixins:[g],data(){return{contractNumbers:[]}},computed:{contractOptions(){const t=this.contractNumbers.map(e=>({value:e,text:e}));return t.length===0&&this.flexibleTariff.configuration.contract_number&&t.push({value:this.flexibleTariff.configuration.contract_number,text:this.flexibleTariff.configuration.contract_number}),t}},methods:{rabot_login_window(){const t=window.open("about:blank","RabotLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus(),this.createAuthUrl().then(e=>{t.location.href=e.authorizationUrl}).catch(e=>{t.close(),console.error("Fehler beim Erstellen des Rabot-Links:",e),this.$root.postClientMessage("Fehler beim Erstellen der Rabot-Authentifizierung: "+(e.response?.data?.message||e.message),"danger")})},async createAuthUrl(){const t=await b.post("https://rabot.openwb.de/rabot-auth.php",{headers:{"Content-Type":"application/json"}});if(!t.data.success)throw new Error("Server-Fehler beim Erstellen der Rabot-Authentifizierung");return t.data},async fetch_contract_number(){if(!this.flexibleTariff.configuration.customer_number){this.$root.postClientMessage("Bitte gib zuerst eine Kundennummer ein.","warning");return}try{const t=await b.get(`https://rabot.openwb.de/rabot-proxy.php/customers/${this.flexibleTariff.configuration.customer_number}/contracts`,{headers:{"Content-Type":"application/json"}});if(t.data&&t.data.contractNumbers&&t.data.contractNumbers.length>0){const e=t.data.contractNumbers;this.contractNumbers=e;const o=e[0];this.updateConfiguration(o,"configuration.contract_number"),e.length>1?this.$root.postClientMessage(`${e.length} Verträge gefunden. Erster Vertrag ausgewählt: ${o}. Du kannst einen anderen Vertrag aus der Liste wählen.`,"success"):this.$root.postClientMessage("Vertragsnummer erfolgreich abgerufen: "+o,"success")}else this.$root.postClientMessage("Keine Verträge für diese Kundennummer gefunden.","warning")}catch(t){console.error("Fehler beim Abrufen der Vertragsnummer:",t),this.$root.postClientMessage("Fehler beim Abrufen der Vertragsnummer: "+(t.response?.data?.message||t.message),"danger")}}}},_={class:"flexible-tariff-rabot"};function x(t,e,o,C,V,s){const l=a("openwb-base-alert"),m=a("openwb-base-button-input"),f=a("openwb-base-text-input"),d=a("openwb-base-select-input");return p(),h("div",_,[n(l,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[i(" Über die Rabot-Authentifizierung kannst Du Deine Stromtarif-Daten für die Ladeplanung nutzen. Nach der Anmeldung bei Rabot wird eine Kundennummer in der Adresszeile angezeigt, die Du hier einfügen musst. ",-1)])]),_:1}),n(l,{subtype:"warning"},{default:r(()=>[...e[4]||(e[4]=[i(" Die Rabot-Authentifizierung kann nur über einen Computer oder die openWB-Cloud (remote.openwb.de) durchgeführt werden. Das Eintragen von Kunden- und Vertragsnummer ist nicht ausreichend, da nach der Anmeldung bei Rabot noch die Zustimmung erteilt werden muss. ",-1)])]),_:1}),n(m,{title:"1. Bei Rabot anmelden","button-text":"Bei Rabot Anmelden",subtype:"success",onButtonClicked:e[0]||(e[0]=()=>s.rabot_login_window())},{help:r(()=>[...e[5]||(e[5]=[i(" Es wird ein neues Browserfenster geöffnet, in dem Du Dich bei Rabot mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1}),n(f,{title:"2. Kundennummer kopieren und einfügen",required:"","model-value":t.flexibleTariff.configuration.customer_number,"onUpdate:modelValue":e[1]||(e[1]=u=>t.updateConfiguration(u,"configuration.customer_number"))},{help:r(()=>[...e[6]||(e[6]=[i(" Nachdem die Rabot-Authentifizierung abgeschlossen wurde, wird im geöffneten Browserfenster eine Kundennummer angezeigt. Diese kopieren und hier einfügen. Diese wird benötigt, um auf Ihre Tarif-Daten zugreifen zu können. ",-1)])]),_:1},8,["model-value"]),n(m,{title:"3. Vertragsnummer abrufen","button-text":"Vertrag laden",subtype:"info",disabled:!t.flexibleTariff.configuration.customer_number,onButtonClicked:s.fetch_contract_number},{help:r(()=>[...e[7]||(e[7]=[i(" Mit der Kundennummer wird automatisch die zugehörige Vertragsnummer von Rabot abgerufen. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n(d,{title:"Vertragsnummer",options:s.contractOptions,"model-value":t.flexibleTariff.configuration.contract_number,"onUpdate:modelValue":e[2]||(e[2]=u=>t.updateConfiguration(u,"configuration.contract_number"))},{help:r(()=>[...e[8]||(e[8]=[i(" Wähle eine der verfügbaren Vertragsnummern aus. Diese wird für den Zugriff auf die Tarif-Daten benötigt. ",-1)])]),_:1},8,["options","model-value"])])}const B=c(w,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/rabot/flexible_tariff.vue"]]);export{B as default}; diff --git a/web/settings/assets/flexible_tariff-D1CoTmby.js b/web/settings/assets/flexible_tariff-SnZ0ndPZ.js similarity index 90% rename from web/settings/assets/flexible_tariff-D1CoTmby.js rename to web/settings/assets/flexible_tariff-SnZ0ndPZ.js index 0c45d6552a..fb6196a33f 100644 --- a/web/settings/assets/flexible_tariff-D1CoTmby.js +++ b/web/settings/assets/flexible_tariff-SnZ0ndPZ.js @@ -1 +1 @@ -import{F as r}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as l,l as a,k as u,e as s,m as n}from"./vendor-Bo8v-nQD.js";import"./index-D_eD74fL.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"FlexibleTariffOctopusEnergy",mixins:[r]},p={class:"flexible-tariff-octopusenergy"};function m(e,o,d,b,c,g){const t=a("openwb-base-text-input");return u(),s("div",p,[n(t,{title:"Benutzername",subtype:"user",required:"","model-value":e.flexibleTariff.configuration.email,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),n(t,{title:"Passwort",subtype:"password",required:"","model-value":e.flexibleTariff.configuration.password,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.password"))},null,8,["model-value"]),n(t,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.flexibleTariff.configuration.accountId,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.accountId"))},null,8,["model-value"])])}const B=l(f,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/octopusenergy/flexible_tariff.vue"]]);export{B as default}; +import{F as r}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as l,l as a,k as u,e as s,m as n}from"./vendor-Bo8v-nQD.js";import"./index-MVrRMMo2.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"FlexibleTariffOctopusEnergy",mixins:[r]},p={class:"flexible-tariff-octopusenergy"};function m(e,o,d,b,c,g){const t=a("openwb-base-text-input");return u(),s("div",p,[n(t,{title:"Benutzername",subtype:"user",required:"","model-value":e.flexibleTariff.configuration.email,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.email"))},null,8,["model-value"]),n(t,{title:"Passwort",subtype:"password",required:"","model-value":e.flexibleTariff.configuration.password,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.password"))},null,8,["model-value"]),n(t,{title:"Vertragsnummer (beginnt mit A-)",required:"","model-value":e.flexibleTariff.configuration.accountId,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.accountId"))},null,8,["model-value"])])}const B=l(f,[["render",m],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/flexible_tariffs/octopusenergy/flexible_tariff.vue"]]);export{B as default}; diff --git a/web/settings/assets/grid_fee-vdJ6pKGQ.js b/web/settings/assets/grid_fee-CGe3xbmI.js similarity index 98% rename from web/settings/assets/grid_fee-vdJ6pKGQ.js rename to web/settings/assets/grid_fee-CGe3xbmI.js index 80cc364a2c..5ac4ab3fc7 100644 --- a/web/settings/assets/grid_fee-vdJ6pKGQ.js +++ b/web/settings/assets/grid_fee-CGe3xbmI.js @@ -1 +1 @@ -import{G as H}from"./GeneralChargeConfiguration-kMS02s2g.js";import{_ as S,k as i,e as p,x as u,f as V,l as s,y as w,D as N,q as a,m as r,z as C,A as c,u as F,K as y,L as x,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,m,v,g,n){return i(),p("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[V(t.$slots,"start")]),u("div",K,[V(t.$slots,"end")])])]),u("div",M,[V(t.$slots,"action")])])])}const G=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const R={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:G},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const m=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;m.push({value:d,text:d})}return m},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},L=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),k=s("openwb-base-setting-element");return i(),w(k,null,N({title:a(()=>[V(t.$slots,"title",{},()=>[c($(m.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>[...e[0]||(e[0]=[c(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[c(" Ende ",-1)])]),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(i(),p("div",j," Keine Zeitbereiche definiert! ")):F("",!0),(i(!0),p(y,null,x(n.value,(_,b)=>(i(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[0]=o,class:"form-control",required:"",onChange:o=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(n.generateTimeOptions("00:00","23:00"),o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,J))),128))],40,L),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[1]=o,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(g.endOptions[b],o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(i(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(o=>n.removeTime(b),["stop"])},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[V(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(R,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),k=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),o=s("openwb-base-card");return i(),w(o,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[c($(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(5)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const oe=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const se={name:"GridFeeFixedHours",components:{FontAwesomeIcon:O,FixedTariff:oe},mixins:[H],computed:{value:{get(){return this.gridFee},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},ie={class:"grid-fee-fixed-hours"};function re(t,e,m,v,g,n){const f=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),k=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return i(),p("div",ie,[r(f,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[c(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),r(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=o=>n.value.configuration.default_price=parseFloat((o/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[c(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=c(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(i(),w(f,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[c(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),c(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(i(!0),p(y,null,x(n.value.configuration.tariffs,(o,l)=>(i(),w(b,{key:l,"model-value":o,"onUpdate:modelValue":q=>n.value.configuration.tariffs[l]=q,onDelete:q=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(se,[["render",re],["__scopeId","data-v-5ed1a321"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/grid_fee.vue"]]);export{be as default}; +import{G as H}from"./GeneralChargeConfiguration-BMEAxDhB.js";import{_ as S,k as i,e as p,x as u,f as V,l as s,y as w,D as N,q as a,m as r,z as C,A as c,u as F,K as y,L as x,E as z,J as $,M as E}from"./vendor-Bo8v-nQD.js";import{F as O,l as T,d as B,aj as U}from"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const W={name:"TimeRow"},A={class:"w-100"},D={class:"form-row align-items-center"},I={class:"col-10"},Q={class:"form-row"},Z={class:"col-6"},K={class:"col-6"},M={class:"col-2 text-right"};function P(t,e,m,v,g,n){return i(),p("div",A,[u("div",D,[u("div",I,[u("div",Q,[u("div",Z,[V(t.$slots,"start")]),u("div",K,[V(t.$slots,"end")])])]),u("div",M,[V(t.$slots,"action")])])])}const G=S(W,[["render",P],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeRow.vue"]]);T.add(B);T.add(U);const R={name:"TimeTable",components:{FontAwesomeIcon:O,TimeRow:G},inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]}},emits:["update:modelValue"],data(){return{endOptions:this.modelValue.map(()=>this.generateTimeOptions("01:00","24:00"))}},computed:{value:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}}},methods:{generateTimeOptions(t,e){const m=[],v=parseInt(t.split(":")[0],10),g=parseInt(e.split(":")[0],10);for(let n=v;n<=g;n++){const d=`${n.toString().padStart(2,"0")}:00`;m.push({value:d,text:d})}return m},addTime(){this.value.push(["",""])},removeTime(t){this.value.splice(t,1)},updateEndOptions(t){const e=this.value[t][0];if(e){const v=(parseInt(e.split(":")[0],10)+1).toString().padStart(2,"0")+":00";this.endOptions[t]=this.generateTimeOptions(v,"24:00")}else this.endOptions[t]=this.generateTimeOptions("01:00","24:00")}}},j={key:0,class:"w-100 alert alert-danger"},L=["onUpdate:modelValue","onChange"],J=["value"],X=["onUpdate:modelValue"],Y=["value"];function ee(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("time-row"),k=s("openwb-base-setting-element");return i(),w(k,null,N({title:a(()=>[V(t.$slots,"title",{},()=>[c($(m.title),1)])]),default:a(()=>[r(h,null,{start:a(()=>[...e[0]||(e[0]=[c(" Beginn ",-1)])]),end:a(()=>[...e[1]||(e[1]=[c(" Ende ",-1)])]),action:a(()=>[r(d,{class:"bg-success clickable",title:"Zeitbereich hinzufügen",onClick:C(n.addTime,["stop"])},{default:a(()=>[r(f,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),_:1}),n.value.length===0?(i(),p("div",j," Keine Zeitbereiche definiert! ")):F("",!0),(i(!0),p(y,null,x(n.value,(_,b)=>(i(),w(h,{key:b},{start:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[0]=o,class:"form-control",required:"",onChange:o=>n.updateEndOptions(b)},[e[2]||(e[2]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(n.generateTimeOptions("00:00","23:00"),o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,J))),128))],40,L),[[E,_[0]]])]),end:a(()=>[z(u("select",{"onUpdate:modelValue":o=>_[1]=o,class:"form-control",required:""},[e[3]||(e[3]=u("option",{value:"",disabled:""}," -- Bitte auswählen -- ",-1)),(i(!0),p(y,null,x(g.endOptions[b],o=>(i(),p("option",{key:o.value,value:o.value},$(o.text),9,Y))),128))],8,X),[[E,_[1]]])]),action:a(()=>[n.value.length>1?(i(),w(d,{key:0,class:"bg-danger clickable",title:"Zeitbereich entfernen",onClick:C(o=>n.removeTime(b),["stop"])},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1},8,["onClick"])):F("",!0)]),_:2},1024))),128))]),_:2},[t.$slots.help?{name:"help",fn:a(()=>[V(t.$slots,"help")]),key:"0"}:void 0]),1024)}const te=S(R,[["render",ee],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/TimeTable.vue"]]);T.add(B);T.add(U);const ne={name:"FixedTariff",components:{FontAwesomeIcon:O,TimeTable:te},props:{modelValue:{type:Object,required:!0}},emits:["update:modelValue","delete"],computed:{tariff:{get(){return this.modelValue},set(t){this.$emit("update:modelValue",t)}},dates:{get(){return this.tariff.active_times.dates.map(([t,e])=>`${t};${e}`)},set(t){this.tariff.active_times.dates=t.map(e=>e.split(";"))}}}};function ae(t,e,m,v,g,n){const f=s("font-awesome-icon"),d=s("openwb-base-avatar"),h=s("openwb-base-text-input"),k=s("openwb-base-number-input"),_=s("openwb-base-select-input"),b=s("time-table"),o=s("openwb-base-card");return i(),w(o,{subtype:"info",collapsible:!0,collapsed:!0},{header:a(()=>[c($(n.tariff.name),1)]),actions:a(()=>[r(d,{class:"bg-danger clickable",onClick:e[0]||(e[0]=l=>t.$emit("delete"))},{default:a(()=>[r(f,{icon:["fas","trash"]})]),_:1})]),default:a(()=>[r(h,{modelValue:n.tariff.name,"onUpdate:modelValue":e[1]||(e[1]=l=>n.tariff.name=l),title:"Tarifname"},null,8,["modelValue"]),r(k,{title:"Preis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.tariff.price*100,"onUpdate:modelValue":e[2]||(e[2]=l=>n.tariff.price=parseFloat((l/100).toFixed(5)))},null,8,["model-value"]),r(_,{modelValue:n.dates,"onUpdate:modelValue":e[3]||(e[3]=l=>n.dates=l),title:"Quartale",required:"",multiple:"",options:[{value:"01-01;31-03",text:"1. Quartal"},{value:"01-04;30-06",text:"2. Quartal"},{value:"01-07;30-09",text:"3. Quartal"},{value:"01-10;31-12",text:"4. Quartal"}]},null,8,["modelValue"]),r(b,{modelValue:n.tariff.active_times.times,"onUpdate:modelValue":e[4]||(e[4]=l=>n.tariff.active_times.times=l),title:"Aktive Zeiten"},null,8,["modelValue"])]),_:1})}const oe=S(ne,[["render",ae],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/FixedTariff.vue"]]);T.add(B);T.add(U);const se={name:"GridFeeFixedHours",components:{FontAwesomeIcon:O,FixedTariff:oe},mixins:[H],computed:{value:{get(){return this.gridFee},set(t){console.log("set",t),this.updateConfiguration(t)}}},methods:{addTariff(){this.value.configuration.tariffs.push({name:"Neuer Tarif",price:0,active_times:{dates:[],times:[["",""]]}})},removeTariff(t){this.value.configuration.tariffs.splice(t,1)}}},ie={class:"grid-fee-fixed-hours"};function re(t,e,m,v,g,n){const f=s("openwb-base-alert"),d=s("openwb-base-number-input"),h=s("font-awesome-icon"),k=s("openwb-base-avatar"),_=s("openwb-base-heading"),b=s("fixed-tariff");return i(),p("div",ie,[r(f,{subtype:"info"},{default:a(()=>[...e[1]||(e[1]=[c(" Konfiguriert feste Tarifzeiten, z.b. HT, NT und Standardpreis. ",-1)])]),_:1}),r(d,{title:"Standardpreis",step:.001,precision:3,required:"",unit:"ct/kWh","model-value":n.value.configuration.default_price*100,"onUpdate:modelValue":e[0]||(e[0]=o=>n.value.configuration.default_price=parseFloat((o/100).toFixed(5)))},{help:a(()=>[...e[2]||(e[2]=[c(" Standardpreis sofern kein anderer Tarif aktiv ist. ",-1)])]),_:1},8,["model-value"]),e[5]||(e[5]=u("hr",null,null,-1)),r(_,null,{actions:a(()=>[r(k,{class:"bg-success clickable",onClick:C(n.addTariff,["stop"])},{default:a(()=>[r(h,{icon:["fas","plus"]})]),_:1},8,["onClick"])]),default:a(()=>[e[3]||(e[3]=c(" Tarife ",-1))]),_:1}),n.value.configuration.tariffs.length===0?(i(),w(f,{key:0,subtype:"info"},{default:a(()=>[...e[4]||(e[4]=[c(" Es wurde noch kein Tarif konfiguriert. Klicke auf das Plus-Symbol, um einen neuen Tarif hinzuzufügen.",-1),u("br",null,null,-1),c(" Tarife ermöglichen es, Preise für unterschiedliche Zeiten zu definieren. ",-1)])]),_:1})):F("",!0),(i(!0),p(y,null,x(n.value.configuration.tariffs,(o,l)=>(i(),w(b,{key:l,"model-value":o,"onUpdate:modelValue":q=>n.value.configuration.tariffs[l]=q,onDelete:q=>n.removeTariff(l)},null,8,["model-value","onUpdate:modelValue","onDelete"]))),128))])}const be=S(se,[["render",re],["__scopeId","data-v-5ed1a321"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/electricity_pricing/grid_fees/fixed_hours/grid_fee.vue"]]);export{be as default}; diff --git a/web/settings/assets/index-D_eD74fL.js b/web/settings/assets/index-MVrRMMo2.js similarity index 96% rename from web/settings/assets/index-D_eD74fL.js rename to web/settings/assets/index-MVrRMMo2.js index 821dd5ae5e..98363700df 100644 --- a/web/settings/assets/index-D_eD74fL.js +++ b/web/settings/assets/index-MVrRMMo2.js @@ -1,2 +1,2 @@ -const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Status-bV6B6bv6.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-chartjs-0RUe1kvq.js","assets/vendor-luxon-BDx6lZXm.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/Status-C2EBkHqs.css","assets/ChargeLog-CZQ0QwMY.js","assets/ChargeLog-D2ZLixbI.css","assets/Chart-CR-tn1oB.js","assets/Chart-BggLkBbQ.css","assets/GeneralConfiguration-b09cPY_w.js","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/IdentificationConfiguration-BN_nskUK.js","assets/DisplayConfiguration-h7XEuoXV.js","assets/GeneralChargeConfiguration-kMS02s2g.js","assets/SurplusChargeConfiguration-i4C8x6Va.js","assets/ActiveBatControlConfiguration-DyGDJFQ0.js","assets/HardwareInstallation-DrK-NlWu.js","assets/LoadManagementConfiguration-DKZ9eznX.js","assets/OpenwbSortableList-CSUuyi79.js","assets/OpenwbSortableList-C11EhIQj.css","assets/ChargePointInstallation-BeNMkMOi.js","assets/ChargePointInstallation-37TSBtDo.css","assets/VehicleConfiguration-B3d9qly5.js","assets/IoConfiguration-hMQZDwaS.js","assets/CloudConfiguration-DOLVcdWg.js","assets/MqttBridgeConfiguration-DpHaWJdF.js","assets/DebugConfiguration-C2vm4vM4.js","assets/DebugConfiguration-CN753w98.css","assets/Support-DMhdXgqE.js","assets/LegalSettings-DvE2H9Xw.js","assets/SystemConfiguration-BN4gvHU6.js","assets/SystemConfiguration-BWslT2W-.css","assets/SecurityConfiguration-Ckkg6YKx.js","assets/DataManagement-C57poL-r.js","assets/InstallAssistant-C4J4yr5X.js","assets/Error-BZ1TitTh.js","assets/TestingStore-pmOfDSbe.js"])))=>i.map(i=>d[i]); -import{_ as S,e as c,f as _,j as C,k as i,l as g,m as b,q as m,u as d,x as l,y as f,z as E,A as h,D as P,E as O,F as $,G as K,I as V,J as w,K as M,L as q,M as Q,N as de,O as ue,P as ce,Q as pe,T as j,R as G,n as me,S as fe,U as ge,V as he,W as be,X as _e,Y as ve,Z as ye,$ as we}from"./vendor-Bo8v-nQD.js";import{l as A,f as Y,a as X,F as T,b as ke,c as Se,d as N,e as Ce,g as U,h as Be,i as $e,j as Ie,k as Oe,m as Ae,n as Te,o as Me,p as Ve,q as qe,r as Pe,s as De,t as Le,u as Ee,v as xe,w as ee,x as Re,y as We,z as je,A as ze,B as Ne,C as te,D as Ue,E as Fe,G as He,H as Ke,I as Ge,J as Je,K as Ze,L as Qe,M as Ye,N as Xe,O as et,P as se,Q as tt,R as st,S as nt,T as ot,U as it}from"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import{p as at,a as lt}from"./vendor-axios-DdFvNBv9.js";import"./vendor-jquery-CEMonh9Y.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))u(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&u(a)}).observe(document,{childList:!0,subtree:!0});function s(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function u(o){if(o.ep)return;o.ep=!0;const n=s(o);fetch(o.href,n)}})();const rt={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function dt(e,t,s,u,o,n){return i(),c("div",{class:C(["card-text alert","alert-"+s.subtype])},[_(e.$slots,"default",{},void 0,!0)],2)}const ut=S(rt,[["render",dt],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),ct=Object.freeze(Object.defineProperty({__proto__:null,default:ut},Symbol.toStringTag,{value:"Module"}));A.add(Y,X);const pt={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:T},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},mt={key:0,class:"col-md-4 col-form-label"},ft={class:"form-row"},gt={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function ht(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",{class:C(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),c("div",mt,[_(e.$slots,"title",{},void 0,!0),b(p,{description:`Hilfe ${o.showHelp?"verbergen":"anzeigen"}`},{default:m(()=>[e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable ml-1",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),_:1},8,["description"])])):d("",!0),l("div",{class:C(e.$slots.title?"col-md-8":"col px-0")},[l("div",{class:C({"form-row":e.$slots.title})},[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("*ELEMENT MISSING*",-1))],!0)],2),l("div",ft,[o.showHelp?(i(),c("span",gt,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],2)],2)}const D=S(pt,[["render",ht],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),bt=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"})),_t={name:"BaseSettingComponents",data(){return{uid:Math.random().toString(36).substring(2,15)}}},L=S(_t,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/BaseSettingComponents.vue"]]);A.add(ke,Se,N,Ce);const vt={name:"OpenwbArrayInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]},validElements:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},disabled:{type:Boolean,default:()=>!1},readonly:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:""}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},remainingElements(){return this.validElements.length===0?[]:this.validElements.filter(e=>!this.value.includes(e.value||e))},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)&&(this.validElements.length===0||this.validElements.includes(this.newTag)||this.validElements.some(e=>e.value===this.newTag))&&this.$refs.tagInput?.checkValidity()}},tagLabel(){return e=>{const t=this.validElements.find(s=>(s.value||s)===e);return t?t.label||t.value||t:e}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},yt={key:0,class:"w-100"},wt={class:"input-group"},kt={class:"input-group-prepend"},St={class:"input-group-text"},Ct=["id","disabled"],Bt=["id","disabled"],$t={value:"",disabled:""},It=["value"],Ot={class:"input-group-append"},At={class:"tagList mt-1 w-100"},Tt={key:0,class:"noTag"};function Mt(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[s.readonly||s.disabled?d("",!0):(i(),c("div",yt,[l("div",wt,[l("div",kt,[l("div",St,[_(e.$slots,"input-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0)])]),s.validElements.length===0?O((i(),c("input",$({key:0,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>o.newTag=r),type:"text",class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[1]||(t[1]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),null,16,Ct)),[[V,o.newTag]]):O((i(),c("select",$({key:1,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[2]||(t[2]=r=>o.newTag=r),class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[3]||(t[3]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),[l("option",$t,w(n.remainingElements.length>0?"Bitte wählen...":"Keine weiteren Optionen verfügbar"),1),(i(!0),c(M,null,q(n.remainingElements,(r,v)=>(i(),c("option",{key:v,value:r.value||r},w(r.label||r.value||r),9,It))),128))],16,Bt)),[[Q,o.newTag]]),l("div",Ot,[l("div",{class:C(["input-group-text",n.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[4]||(t[4]=(...r)=>n.addTag&&n.addTag(...r))},[_(e.$slots,"input-add",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])])])),l("div",At,[n.value.length==0?(i(),c("span",Tt,[b(a,{icon:["fas","info-circle"]}),h(" "+w(s.noElementsMessage),1)])):d("",!0),(i(!0),c(M,null,q(n.value,(r,v)=>(i(),c("span",{key:v,class:"tag"},[_(e.$slots,"element-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0),h(" "+w(n.tagLabel(r))+" ",1),s.readonly||s.disabled?d("",!0):(i(),f(a,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:k=>n.removeTag(v)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Vt=S(vt,[["render",Mt],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),qt=Object.freeze(Object.defineProperty({__proto__:null,default:Vt},Symbol.toStringTag,{value:"Module"})),Pt={name:"OpenwbAvatar"},Dt={class:"avatar"};function Lt(e,t,s,u,o,n){return i(),c("div",Dt,[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("?",-1))],!0)])}const Et=S(Pt,[["render",Lt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),xt=Object.freeze(Object.defineProperty({__proto__:null,default:Et},Symbol.toStringTag,{value:"Module"}));A.add(U);const Rt={name:"OpenwbButtonRow",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{buttons:{type:Array,required:!0},modelValue:{type:[String,Number,Boolean],default:null},disabled:{type:Boolean,default:!1},uid:{type:String,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Wt={class:"btn-group btn-block btn-group-toggle"},jt=["for"],zt=["id","value","disabled","onClick"];function Nt(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",Wt,[(i(!0),c(M,null,q(s.buttons,p=>(i(),c("label",{key:p.buttonValue,class:C(["btn btn-same-size btn-centered",[{active:s.modelValue===p.buttonValue},{disabled:s.disabled},p.class?p.class:"btn-outline-info"]]),for:`${s.uid}-${p.buttonValue}`},[l("span",null,[O(l("input",$({id:`${s.uid}-${p.buttonValue}`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"radio",value:p.buttonValue},{ref_for:!0},e.$attrs,{disabled:s.disabled,onClick:r=>e.$emit("button-click",p.buttonValue)}),null,16,zt),[[de,n.value]]),_(e.$slots,"label-"+p.buttonValue,{},()=>[h(w(p.text),1)],!0),t[1]||(t[1]=l("span",null," ",-1)),b(a,{icon:["fas","check"],style:ue([n.value==p.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],10,jt))),128))])}const ne=S(Rt,[["render",Nt],["__scopeId","data-v-4bd221b6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonRow.vue"]]),Ut=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"})),Ft={name:"OpenwbButtonGroupInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseButtonRow:ne},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0},disabled:{type:Boolean,required:!1,default:!1},maxButtonsPerRow:{type:Number,default:Number.POSITIVE_INFINITY}},emits:["update:modelValue","button-click"],data(){return{containerWidth:0}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},maxButtonsPerRowAuto(){return this.containerWidth<=200?1:this.containerWidth<=360?2:this.containerWidth<=550?3:1/0},buttonRows(){const e=[];for(let t=0;t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Ht,[(i(!0),c(M,null,q(n.buttonRows,(r,v)=>(i(),f(a,$({key:v,buttons:r,uid:e.uid,"model-value":n.value,disabled:s.disabled},{ref_for:!0},e.$attrs,{"onUpdate:modelValue":t[0]||(t[0]=k=>n.value=k),onButtonClick:t[1]||(t[1]=k=>e.$emit("button-click",k))}),P({_:2},[q(r,k=>({name:`label-${k.buttonValue}`,fn:m(y=>[_(e.$slots,`label-${k.buttonValue}`,$({ref_for:!0},y),void 0,!0)])}))]),1040,["buttons","uid","model-value","disabled"]))),128))],512)]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Gt=S(Ft,[["render",Kt],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Jt=Object.freeze(Object.defineProperty({__proto__:null,default:Gt},Symbol.toStringTag,{value:"Module"})),Zt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},Qt=["title"];function Yt(e,t,s,u,o,n){return i(),c("button",{type:"button",class:"btn btn-block",title:s.tooltip,onClick:t[0]||(t[0]=E((...a)=>n.click&&n.click(...a),["prevent"]))},[_(e.$slots,"default",{},()=>[h(w(s.title),1)],!0)],8,Qt)}const oe=S(Zt,[["render",Yt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:oe},Symbol.toStringTag,{value:"Module"})),es={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseClickButton:oe},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function ts(e,t,s,u,o,n){const a=g("openwb-base-click-button"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[b(a,$({class:(s.disabled?"btn-outline-":"btn-")+s.subtype,disabled:s.disabled},e.$attrs,{onButtonClicked:n.handleClick}),{default:m(()=>[h(w(s.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const ss=S(es,[["render",ts],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),ns=Object.freeze(Object.defineProperty({__proto__:null,default:ss},Symbol.toStringTag,{value:"Module"}));A.add(Be,$e);const os={name:"OpenwbCard",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},is={class:"form-group mb-0"},as={class:"form-row vaRow mb-0 py-2"},ls={class:"col"},rs={class:"card-actions ml-4"},ds={key:0,class:"card-actions mr-2"},us={key:2,class:"card-footer"};function cs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",{class:C(["card","border-"+s.subtype])},[s.title!==void 0||e.$slots.header?(i(),c("div",{key:0,class:C(["card-header py-1","bg-"+s.subtype]),onClick:t[0]||(t[0]=(...p)=>n.toggleBody&&n.toggleBody(...p))},[l("div",is,[l("div",as,[l("div",ls,[_(e.$slots,"header",{collapsed:o.isCollapsed},()=>[h(w(s.title),1)],!0)])])]),l("div",rs,[e.$slots.actions?(i(),c("div",ds,[_(e.$slots,"actions",{collapsed:o.isCollapsed},void 0,!0)])):d("",!0),s.collapsible?(i(),f(a,{key:1,icon:o.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):d("",!0)])],2)):d("",!0),o.isCollapsed===!1?(i(),c("div",$({key:1,class:["card-body",[s.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+s.bodyBg]]},e.$attrs),[_(e.$slots,"default",{},void 0,!0)],16)):d("",!0),e.$slots.footer&&o.isCollapsed===!1?(i(),c("div",us,[_(e.$slots,"footer",{},void 0,!0)])):d("",!0)],2)}const ps=S(os,[["render",cs],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),ms=Object.freeze(Object.defineProperty({__proto__:null,default:ps},Symbol.toStringTag,{value:"Module"})),fs={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},gs={class:"col-md-8"},hs=["id"];function bs(e,t,s,u,o,n){const a=g("openwb-base-setting-element");return i(),f(a,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[l("div",gs,[O(l("input",$({id:`${e.uid}-checkbox-input`,"onUpdate:modelValue":t[0]||(t[0]=p=>n.value=p),class:"form-control",type:"checkbox"},e.$attrs),null,16,hs),[[ce,n.value]])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const _s=S(fs,[["render",bs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),vs=Object.freeze(Object.defineProperty({__proto__:null,default:_s},Symbol.toStringTag,{value:"Module"}));A.add(Ie);const ys={name:"OpenwbColorPicker",components:{FontAwesomeIcon:T},mixins:[L],props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},ws={class:"wrapper"},ks=["id","value","title"];function Ss(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",ws,[l("input",{id:`${e.uid}-color-input`,type:"color",class:"custom-color-picker",value:s.modelValue,title:`Farbe: ${s.modelValue}`,onInput:t[0]||(t[0]=r=>n.changed(r.target.value))},null,40,ks),s.defaultColor?(i(),f(p,{key:0,description:`Zurücksetzen auf Standardfarbe (${s.defaultColor})`},{default:m(()=>[b(a,{class:"ml-1 clickable",icon:["fas","rotate-left"],onClick:t[1]||(t[1]=r=>n.changed(s.defaultColor))})]),_:1},8,["description"])):d("",!0)])}const Cs=S(ys,[["render",Ss],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Bs=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"})),{text:J,copy:$s,copied:Is,isSupported:Os}=pe({copiedDuring:3e3,legacy:!0});A.add(Oe,Ae);const As={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:T},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?.innerText?this.$refs.content.innerText.trim():""},isCopied(){return Is.value&&J.value===this.contentText},copySupported(){return Os.value}},methods:{click(){this.copySupported&&$s(this.contentText).then(()=>{console.debug("Text copied to clipboard:",J.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},Ts=["title"],Ms={ref:"content"};function Vs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("span",{title:n.copySupported&&!n.isCopied?s.tooltip:"",class:C({"copy-me":n.copySupported&&!n.isCopied}),onClick:t[0]||(t[0]=E((...p)=>n.click&&n.click(...p),["stop"]))},[l("span",Ms,[_(e.$slots,"default",{},void 0,!0)],512),n.copySupported?(i(),f(a,{key:0,class:"ml-1",icon:n.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):d("",!0)],10,Ts)}const qs=S(As,[["render",Vs],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),Ps=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));A.add(Y,X,U);const Ds={name:"OpenwbHeading",components:{FontAwesomeIcon:T},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ls={class:"heading-text"},Es={key:0,class:"actions"},xs={class:""},Rs={key:0,class:"form-row alert alert-info small flex-fill"};function Ws(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c(M,null,[l("div",$({class:"card-text card-text-heading"},e.$attrs),[l("div",Ls,[_(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),e.$slots.actions?(i(),c("span",Es,[_(e.$slots,"actions",{},void 0,!0)])):d("",!0)],16),l("div",xs,[o.showHelp?(i(),c("span",Rs,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],64)}const js=S(Ds,[["render",Ws],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),zs=Object.freeze(Object.defineProperty({__proto__:null,default:js},Symbol.toStringTag,{value:"Module"}));A.add(Te,Me,Ve,qe);const R={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},Ns={name:"OpenwbIoPattern",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return R[e].icon},getIconClass(e){return R[e].iconClass},getTitle(e){return R[e].title},toggleInput(e,t){this.value[e]=R[t].nextValue}}};function Us(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip"),r=g("openwb-base-setting-element");return i(),f(r,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[(i(!0),c(M,null,q(n.value,(v,k)=>(i(),c("span",{key:k},[b(p,{description:n.getTitle(v)},{default:m(()=>[b(a,{icon:n.getIcon(v),class:C([n.getIconClass(v),"fa-fw clickable"]),size:"2x",transform:v=="undefined"?"shrink-6":null,mask:v=="undefined"?["fas","square"]:null,onClick:E(y=>n.toggleInput(k,v),["stop","prevent"]),onMousedown:t[0]||(t[0]=E(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=E(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Fs=S(Ns,[["render",Us],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),Hs=Object.freeze(Object.defineProperty({__proto__:null,default:Fs},Symbol.toStringTag,{value:"Module"})),Ks={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=[...this.buttons]),e.findIndex(t=>t.event==="close")===-1&&!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)}}},Gs={class:"modal-content"},Js={class:"modal-title"},Zs={class:"modal-body"},Qs=["disabled","data-event"];function Ys(e,t,s,u,o,n){return s.show?(i(),f(j,{key:0,to:"body"},[t[5]||(t[5]=l("div",{class:"modal-backdrop fade show"},null,-1)),l("div",{class:"modal fade d-block show",role:"dialog",onClick:t[3]||(t[3]=(...a)=>n.handleClick&&n.handleClick(...a))},[l("div",{class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document",onClick:t[2]||(t[2]=E(()=>{},["stop"]))},[l("div",Gs,[l("div",{class:C(["modal-header","bg-"+s.subtype])},[l("h4",Js,w(s.title),1),s.preventClose?d("",!0):(i(),c("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>n.handleClick&&n.handleClick(...a))}," × "))],2),l("div",Zs,[_(e.$slots,"default",{},()=>[t[4]||(t[4]=h("# Body #",-1))])]),n.myButtons.length>0?(i(),c("div",{key:0,class:C(["modal-footer d-flex","justify-content-"+s.footerAlignment])},[(i(!0),c(M,null,q(n.myButtons,a=>(i(),c("button",{key:a.text,disabled:a.disabled===!0,type:"button",class:C(["btn",(a.disabled?"btn-outline-":"btn-")+(a.subtype??"secondary")]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...p)=>n.handleClick&&n.handleClick(...p))},w(a.text),11,Qs))),128))],2)):d("",!0)])])])])):d("",!0)}const Xs=S(Ks,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Xs},Symbol.toStringTag,{value:"Module"}));A.add(Pe);const tn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},sn={class:"input-group"},nn={class:"input-group-prepend"},on={class:"input-group-text"},an=["id"],ln={key:0,class:"input-group-append"},rn={class:"input-group-text"},dn={key:1,class:"input-group-append"},un={class:"input-group-text p-0"};function cn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",sn,[l("div",nn,[l("div",on,[b(a,{icon:["fas","calculator"]})])]),O(l("input",$({id:`${e.uid}-number-input`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,an),[[V,n.value,void 0,{lazy:!0,number:!0}]]),s.unit?(i(),c("div",ln,[l("div",rn,w(s.unit),1)])):d("",!0),e.$slots.append?(i(),c("div",dn,[l("div",un,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pn=S(tn,[["render",cn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),mn=Object.freeze(Object.defineProperty({__proto__:null,default:pn},Symbol.toStringTag,{value:"Module"}));A.add(De,Le);const fn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",gn,[l("div",hn,[n.label?(i(),c("label",{key:0,class:"col-2 pl-0 col-form-label valueLabel",for:`${e.uid}-button`},w(n.label),9,bn)):d("",!0),l("button",{id:`${e.uid}-button`,class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[0]||(t[0]=(...r)=>n.decrement&&n.decrement(...r))},[b(a,{icon:["fas","step-backward"]})],8,_n),l("div",vn,[O(l("input",$({"onUpdate:modelValue":t[1]||(t[1]=r=>n.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:s.min,max:s.max,step:s.step},e.$attrs),null,16,yn),[[V,n.sliderValue,void 0,{number:!0}]])]),l("button",{class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[2]||(t[2]=(...r)=>n.increment&&n.increment(...r))},[b(a,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const kn=S(fn,[["render",wn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:kn},Symbol.toStringTag,{value:"Module"}));A.add(N);const Cn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Bn={class:"w-100"},$n={class:"input-group"},In={key:0,class:"input-group-prepend"},On={class:"input-group-text"},An=["id"],Tn=["value"],Mn=["value"],Vn=["label"],qn=["value"],Pn={key:1,class:"input-group-append"};function Dn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({default:m(()=>[l("div",Bn,[l("div",$n,[e.$slots.prefix?(i(),c("div",In,[l("div",On,[_(e.$slots,"prefix")])])):d("",!0),O(l("select",$({id:`${e.uid}-select`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"col form-control"},e.$attrs),[s.notSelected!==void 0?(i(),c("option",{key:0,value:s.emptyValue,disabled:""}," -- "+w(s.notSelected)+" -- ",9,Tn)):d("",!0),(i(!0),c(M,null,q(s.options,r=>(i(),c("option",{key:r.value,value:r.value},w(r.text),9,Mn))),128)),(i(!0),c(M,null,q(s.groups,r=>(i(),c("optgroup",{key:r.label,label:r.label},[(i(!0),c(M,null,q(r.options,v=>(i(),c("option",{key:v.value,value:v.value},w(v.text),9,qn))),128))],8,Vn))),128))],16,An),[[Q,n.value]]),s.addButton?(i(),c("div",Pn,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})])],2)])):d("",!0)])])]),_:2},[e.$slots.title||s.title?{name:"title",fn:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"1"}:void 0]),1024)}const Ln=S(Cn,[["render",Dn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),En=Object.freeze(Object.defineProperty({__proto__:null,default:Ln},Symbol.toStringTag,{value:"Module"}));A.add(U,Ee,xe);const xn={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:T},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0},saveLabel:{type:String,default:"Speichern"},saveDisabled:{type:Boolean,default:!1},saveId:{type:String,default:"saveSettingsBtn"},resetLabel:{type:String,default:"Änderungen verwerfen"},resetDisabled:{type:Boolean,default:!1},resetId:{type:String,default:"modalResetBtn"},defaultsLabel:{type:String,default:"Werkseinstellungen"},defaultsDisabled:{type:Boolean,default:!1},defaultsId:{type:String,default:"modalDefaultsBtn"}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},Rn={class:"row justify-content-center mb-1"},Wn={class:"col-md-4 d-flex py-1 justify-content-center"},jn=["id","disabled"],zn={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},Nn=["id","disabled"],Un={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},Fn=["id","disabled"];function Hn(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog"),p=g("font-awesome-icon");return i(),c(M,null,[b(a,{show:n.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:m(()=>[...t[3]||(t[3]=[h(" Einstellungen werden gespeichert... ",-1)])]),_:1},8,["show"]),b(a,{show:o.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:n.handleModalReset},{default:m(()=>[...t[4]||(t[4]=[h(" Willst Du die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])]),_:1},8,["show","onModalResult"]),b(a,{show:o.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:n.handleModalDefaults},{default:m(()=>[...t[5]||(t[5]=[h(" Willst Du wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])]),_:1},8,["show","onModalResult"]),l("div",Rn,[l("div",Wn,[l("button",{id:s.saveId,type:"button",class:C(["btn btn-block",[{disabled:s.saveDisabled},s.saveDisabled?"btn-outline-success":"btn-success"]]),disabled:s.saveDisabled,onClick:t[0]||(t[0]=(...r)=>n.saveSettings&&n.saveSettings(...r))},[h(w(s.saveLabel)+" ",1),b(p,{icon:["fas","check"]})],10,jn)]),s.hideReset?d("",!0):(i(),c("div",zn,[l("button",{id:s.resetId,type:"button",class:C(["btn btn-block",[{disabled:s.resetDisabled},s.resetDisabled?"btn-outline-warning":"btn-warning"]]),disabled:s.resetDisabled,onClick:t[1]||(t[1]=(...r)=>n.showResetModal&&n.showResetModal(...r))},[h(w(s.resetLabel)+" ",1),b(p,{icon:["fas","undo"]})],10,Nn)])),s.hideDefaults?d("",!0):(i(),c("div",Un,[l("button",{id:s.defaultsId,type:"button",class:C(["btn btn-block",[{disabled:s.defaultsDisabled},s.defaultsDisabled?"btn-outline-danger":"btn-danger"]]),disabled:s.defaultsDisabled,onClick:t[2]||(t[2]=(...r)=>n.showDefaultsModal&&n.showDefaultsModal(...r))},[h(w(s.defaultsLabel)+" ",1),b(p,{icon:["fas","times"]})],10,Fn)]))])],64)}const Kn=S(xn,[["render",Hn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),Gn=Object.freeze(Object.defineProperty({__proto__:null,default:Kn},Symbol.toStringTag,{value:"Module"}));A.add(ee,Re,We,je,ze,Ne,te,Ue,Fe,He,Ke,N,Ge,Je);const Jn={name:"OpenwbTextInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","group","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},validator:{type:Function,required:!1,default:null},showQuickButtons:{type:Boolean,default:!1},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.validator){console.log("Validating input value:",e);const t=this.validator(e);console.log("Validation result:",t);const s=this.inputRef;t!==!0?(console.log("Marking input as invalid",JSON.stringify(this.$refs)),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(t),this.inputInvalid=!0,this.tempValue=e):(console.log("Input is valid"),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(""),this.inputInvalid=!1)}if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"},addDisabled:{get(){return this.value===this.emptyValue}}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,s=new Date(this.modelValue);switch(this.subtype){case"date":s.setDate(s.getDate()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0")+"-"+String(s.getDate()).padStart(2,"0");break;case"month":s.setMonth(s.getMonth()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0");break;case"year":s.setYear(s.getFullYear()+e),t=String(s.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Zn,[l("div",Qn,[l("div",Yn,[l("div",Xn,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="email"?(i(),f(a,{key:1,icon:["fas","envelope"]})):d("",!0),s.subtype=="host"?(i(),f(a,{key:2,icon:["fas","network-wired"]})):d("",!0),s.subtype=="url"?(i(),f(a,{key:3,icon:["fas","globe"]})):d("",!0),s.subtype=="user"?(i(),f(a,{key:4,icon:["fas","user"]})):d("",!0),s.subtype=="group"?(i(),f(a,{key:5,icon:["fas","users"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:6,icon:["fas","code"]})):d("",!0),s.subtype=="password"?(i(),f(a,{key:7,icon:o.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):d("",!0),s.subtype=="time"?(i(),f(a,{key:8,icon:["fas","clock"]})):d("",!0),s.subtype=="date"||s.subtype=="month"||s.subtype=="year"?(i(),f(a,{key:9,icon:["fas","calendar-day"]})):d("",!0)])]),["text","user","group"].includes(s.subtype)?O((i(),c("input",$({key:0,id:`${e.uid}-text-input`,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"text",class:["form-control",{invalid:o.inputInvalid}]},e.$attrs,{pattern:s.pattern}),null,16,eo)),[[V,n.value]]):d("",!0),s.subtype=="json"?O((i(),c("input",$({key:1,id:`${e.uid}-json-input`,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,to)),[[V,n.value]]):d("",!0),s.subtype=="password"?O((i(),c("input",$({key:2,id:`${e.uid}-password-input`,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>n.value=r),type:o.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,so)),[[G,n.value]]):d("",!0),s.subtype=="host"?O((i(),c("input",$({key:3,id:`${e.uid}-host-input`,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.hostPattern}),null,16,no)),[[V,n.value]]):d("",!0),["email","url"].includes(s.subtype)?O((i(),c("input",$({key:4,id:`${e.uid}-url-input`,ref:"urlInput","onUpdate:modelValue":t[4]||(t[4]=r=>n.value=r),type:s.subtype,class:"form-control"},e.$attrs),null,16,oo)),[[G,n.value]]):d("",!0),s.subtype=="time"?O((i(),c("input",$({key:5,id:`${e.uid}-time-input`,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>n.value=r),type:"time",class:"form-control"},e.$attrs),null,16,io)),[[V,n.value]]):d("",!0),s.subtype=="date"?O((i(),c("input",$({key:6,id:`${e.uid}-date-input`,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>n.value=r),type:"date",class:"form-control"},e.$attrs),null,16,ao)),[[V,n.value]]):d("",!0),s.subtype=="month"?O((i(),c("input",$({key:7,id:`${e.uid}-month-input`,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>n.value=r),type:"month",class:"form-control"},e.$attrs),null,16,lo)),[[V,n.value]]):d("",!0),s.subtype=="year"?O((i(),c("input",$({key:8,id:`${e.uid}-year-input`,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,ro)),[[V,n.value]]):d("",!0),s.unit?(i(),c("div",uo,[l("div",co,w(s.unit),1)])):d("",!0),s.subtype=="password"?(i(),c("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>n.togglePassword&&n.togglePassword(...r))},[l("div",po,[b(a,{icon:o.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>n.modify(-1))},[...t[13]||(t[13]=[l("div",{class:"input-group-text"},"-",-1)])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>n.modify(1))},[...t[14]||(t[14]=[l("div",{class:"input-group-text"},"+",-1)])])):d("",!0),s.addButton?(i(),c("div",mo,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[12]||(t[12]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])):d("",!0),e.$slots.append?(i(),c("div",fo,[l("div",go,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const bo=S(Jn,[["render",ho],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),_o=Object.freeze(Object.defineProperty({__proto__:null,default:bo},Symbol.toStringTag,{value:"Module"}));A.add(ee,te);const vo={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:D,FontAwesomeIcon:T},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},yo={class:"w-100"},wo={class:"input-group"},ko={class:"input-group-prepend"},So={class:"input-group-text"},Co=["id"],Bo=["id"],$o={key:2,class:"input-group-append"},Io={class:"input-group-text"},Oo={class:"form-text text-muted text-right"};function Ao(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",yo,[l("div",wo,[l("div",ko,[l("div",So,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:1,icon:["fas","code"]})):d("",!0)])]),s.subtype==="json"?O((i(),c("textarea",$({key:0,id:`${e.uid}-textarea`,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Co)),[[V,n.value,void 0,{lazy:!0}]]):O((i(),c("textarea",$({key:1,id:`${e.uid}-textarea`,"onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Bo)),[[V,n.value]]),e.$attrs.maxlength?(i(),c("div",$o,[l("div",Io,[l("small",Oo,w(n.length)+" / "+w(e.$attrs.maxlength),1)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const To=S(vo,[["render",Ao],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Mo=Object.freeze(Object.defineProperty({__proto__:null,default:To},Symbol.toStringTag,{value:"Module"})),Vo={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const u=new Date-this.timestamp*1e3;for(var o in e)if(Math.abs(u)>e[o]){this.relativeTime=t.format(Math.round(-u/e[o]),o);break}u>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},qo={key:0,class:"time-diff"},Po={class:"toast-body"};function Do(e,t,s,u,o,n){return i(),c("div",{class:C(["toast","border-"+s.subtype]),role:"alert"},[l("div",{class:C(["toast-header","bg-"+s.subtype])},[t[2]||(t[2]=l("strong",{class:"pr-2 mr-auto"},"openWB",-1)),s.timestamp?(i(),c("small",qo,w(o.relativeTime),1)):d("",!0),l("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>n.dismiss&&n.dismiss(...a))},[...t[1]||(t[1]=[l("span",{"aria-hidden":"true"},"×",-1)])])],2),l("div",Po,[_(e.$slots,"default",{},void 0,!0)])],2)}const Lo=S(Vo,[["render",Do],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Eo=Object.freeze(Object.defineProperty({__proto__:null,default:Lo},Symbol.toStringTag,{value:"Module"})),xo={name:"OpenwbTooltip",props:{description:{type:String,default:"#TOOLTIP#"},addHint:{type:Boolean,default:!1}}},Ro=["title"];function Wo(e,t,s,u,o,n){return i(),c("div",{class:C(["base-text",{dotted:s.addHint}]),title:s.description},[_(e.$slots,"default",{},void 0,!0)],10,Ro)}const jo=S(xo,[["render",Wo],["__scopeId","data-v-c65a1128"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTooltip.vue"]]),zo=Object.freeze(Object.defineProperty({__proto__:null,default:jo},Symbol.toStringTag,{value:"Module"})),No={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopics:[],weekdays:["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],chargeModes:["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"],statusLevel:["success","warning","danger"]}},computed:{mqttTopicsToSubscribe(){return this.mqttTopics.map(e=>e.topic)},mqttTopicsToPublish(){return this.mqttTopics.filter(e=>e.writeable).map(e=>e.topic)}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,s=void 0){console.debug("updateState:",e,t,s),this.$store.commit({type:"updateTopic",topic:e,objectPath:s,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let s=e;t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let u=Object.keys(this.$store.state.mqtt).filter(o=>o.match(s));return u.forEach((o,n,a)=>{a[n]=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),u},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,s=t,u=1){if(!(e==null||isNaN(e)))return e=e*u,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:s})},formatNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,s,u):"-"},formatPhaseArrayNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(o=>this.formatNumber(o,t,s,u)):["-","-","-"]},translateChargeMode(e){return{instant_charging:"Sofort",pv_charging:"PV",scheduled_charging:"Zielladen",time_charging:"Zeitladen",eco_charging:"Eco",standby:"Standby",stop:"Stop"}[e]||e}}},z=S(No,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);A.add(Ze);const Uo={name:"OpenwbNavBar",components:{FontAwesomeIcon:T},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/security/access/+",writeable:!1}]}},computed:{nodeEnv(){return"development"},accessAllowed(){return e=>this.$store.state.mqtt[`openWB/system/security/access/${e}`]===!0}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},Fo={class:"navbar navbar-expand-xl bg-dark navbar-dark fixed-top"},Ho={ref:"navbarButton",class:"navbar-toggler mr-auto",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},Ko={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},Go={class:"navbar-nav mr-auto"},Jo={key:0,class:"nav-item"},Zo={class:"nav-item dropdown nav-separator-before"},Qo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},Yo={class:"nav-item dropdown nav-separator-before"},Xo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ei={class:"nav-item dropdown"},ti={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},si={class:"nav-item dropdown"},ni={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},oi={key:5,class:"dropdown-divider"},ii={key:6,href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"},ai={class:"nav-item dropdown"},li={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ri={class:"nav-item nav-separator-before"},di={class:"nav-link",href:"https://wiki.openwb.de/",target:"_blank"};function ui(e,t,s,u,o,n){const a=g("router-link"),p=g("font-awesome-icon");return i(),c("nav",Fo,[t[30]||(t[30]=l("a",{class:"navbar-brand",href:"/openWB/web/"},[l("span",null,"openWB")],-1)),l("button",Ho,[...t[0]||(t[0]=[l("span",{class:"navbar-toggler-icon"},null,-1)])],512),l("div",Ko,[l("ul",Go,[n.accessAllowed("Status")?(i(),c("li",Jo,[b(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:m(()=>[...t[1]||(t[1]=[h(" Status ",-1)])]),_:1})])):d("",!0),l("li",Zo,[t[4]||(t[4]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),l("div",Qo,[n.accessAllowed("ChargeLog")?(i(),f(a,{key:0,to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[2]||(t[2]=[h(" Ladeprotokoll ",-1)])]),_:1})):d("",!0),n.accessAllowed("Chart")?(i(),f(a,{key:1,to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[3]||(t[3]=[h(" Diagramme ",-1)])]),_:1})):d("",!0)])]),l("li",Yo,[t[8]||(t[8]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),l("div",Xo,[n.accessAllowed("GeneralConfiguration")?(i(),f(a,{key:0,to:"/GeneralConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[5]||(t[5]=[h(" Allgemein ",-1)])]),_:1})):d("",!0),n.accessAllowed("DisplayConfiguration")?(i(),f(a,{key:1,to:"/DisplayConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[6]||(t[6]=[h(" Display ",-1)])]),_:1})):d("",!0),n.accessAllowed("IdentificationConfiguration")?(i(),f(a,{key:2,to:"/IdentificationConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[7]||(t[7]=[h(" Identifikation ",-1)])]),_:1})):d("",!0)])]),l("li",ei,[t[12]||(t[12]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),l("div",ti,[n.accessAllowed("GeneralChargeConfiguration")?(i(),f(a,{key:0,to:"/GeneralChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[9]||(t[9]=[h(" Übergreifendes ",-1)])]),_:1})):d("",!0),n.accessAllowed("SurplusChargeConfiguration")?(i(),f(a,{key:1,to:"/SurplusChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[10]||(t[10]=[h(" Überschuss-Laden ",-1)])]),_:1})):d("",!0),n.accessAllowed("ActiveBatControlConfiguration")?(i(),f(a,{key:2,to:"/ActiveBatControlConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[11]||(t[11]=[h(" Speichersteuerung ",-1)])]),_:1})):d("",!0)])]),l("li",si,[t[18]||(t[18]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),l("div",ni,[n.accessAllowed("HardwareInstallation")?(i(),f(a,{key:0,to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[13]||(t[13]=[h(" Geräte und Komponenten ",-1)])]),_:1})):d("",!0),n.accessAllowed("LoadManagementConfiguration")?(i(),f(a,{key:1,to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[14]||(t[14]=[h(" Lastmanagement ",-1)])]),_:1})):d("",!0),n.accessAllowed("ChargePointInstallation")?(i(),f(a,{key:2,to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[15]||(t[15]=[h(" Ladepunkte ",-1)])]),_:1})):d("",!0),n.accessAllowed("VehicleConfiguration")?(i(),f(a,{key:3,to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[16]||(t[16]=[h(" Fahrzeuge ",-1)])]),_:1})):d("",!0),n.accessAllowed("IoConfiguration")?(i(),f(a,{key:4,to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[17]||(t[17]=[h(" Ein-/Ausgänge ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("div",oi)):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("a",ii," SmartHome ")):d("",!0)])]),l("li",ai,[t[28]||(t[28]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),l("div",li,[n.accessAllowed("InstallAssistant")?(i(),f(a,{key:0,to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[19]||(t[19]=[h(" Einrichtungsassistent ",-1)])]),_:1})):d("",!0),n.accessAllowed("CloudConfiguration")?(i(),f(a,{key:1,to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[20]||(t[20]=[h(" openWB Cloud ",-1)])]),_:1})):d("",!0),n.accessAllowed("MqttBridgeConfiguration")?(i(),f(a,{key:2,to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[21]||(t[21]=[h(" MQTT-Brücken ",-1)])]),_:1})):d("",!0),n.accessAllowed("DebugConfiguration")?(i(),f(a,{key:3,to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[22]||(t[22]=[h(" Fehlersuche ",-1)])]),_:1})):d("",!0),n.accessAllowed("Support")?(i(),f(a,{key:4,to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[23]||(t[23]=[h(" Support ",-1)])]),_:1})):d("",!0),n.accessAllowed("DataManagement")?(i(),f(a,{key:5,to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[24]||(t[24]=[h(" Datenverwaltung ",-1)])]),_:1})):d("",!0),n.accessAllowed("SecurityConfiguration")?(i(),f(a,{key:6,to:"/System/SecurityConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[25]||(t[25]=[h(" Sicherheit ",-1)])]),_:1})):d("",!0),n.accessAllowed("SystemConfiguration")?(i(),f(a,{key:7,to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[26]||(t[26]=[h(" System ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegalSettings")?(i(),f(a,{key:8,to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[27]||(t[27]=[h(" Rechtliches ",-1)])]),_:1})):d("",!0)])]),l("li",ri,[l("a",di,[t[29]||(t[29]=h(" Wiki ",-1)),b(p,{icon:["fas","external-link-alt"]})])])])],512),t[31]||(t[31]=l("div",{class:"ml-auto d-flex flex-row align-items-center"},[l("div",{id:"info-target"}),l("div",{id:"user-target"}),l("div",{id:"message-target"})],-1))])}const ci=S(Uo,[["render",ui],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]),pi={name:"OpenwbPageFooter"},mi={id:"footer",class:"footer bg-dark text-light font-small"},fi={class:"container text-center"};function gi(e,t,s,u,o,n){return i(),c("footer",mi,[l("div",fi,[l("small",null," Du befindest dich hier: Einstellungen / "+w(e.$route.meta.heading),1)])])}const hi=S(pi,[["render",gi],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);A.add(Qe,Ye,Xe,et);const bi={name:"OpenwbPageUser",components:{FontAwesomeIcon:T,FontAwesomeLayers:se},mixins:[z],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/security/access_allowed",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],showLoginModal:!1,showPasswordResetModal:!1,showLogoutModal:!1,username:"",password:"",token:"",passwordConfirm:"",tokenRequested:!1,passwordResetRequested:!1,smallScreen:!1}},computed:{loggedInUser(){return this.$store.state.local.username||null},userManagementActive(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},accessAllowed(){return this.$store.state.mqtt["openWB/system/security/access_allowed"]===void 0?!1:this.$store.state.mqtt["openWB/system/security/access_allowed"]===!0},anonymousAccessAllowed(){return this.accessAllowed&&this.loggedInUser===null},dataProtectionAcknowledged(){return this.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0},loginButtons(){let e=[{text:"Anmelden",event:"login",subtype:"success",disabled:this.stringIsEmpty(this.username)||this.stringIsEmpty(this.password)}];return this.dataProtectionAcknowledged&&e.push({text:"Kennwort vergessen",event:"forgot_password",subtype:"warning"}),e},requestTokenDisabled(){return this.stringIsEmpty(this.username)||this.tokenRequested},resetPasswordDisabled(){return this.stringIsEmpty(this.username)||this.stringIsEmpty(this.token)||this.stringIsEmpty(this.password)||this.stringIsEmpty(this.passwordConfirm)||this.password!==this.passwordConfirm||this.passwordResetRequested},modalBlockerVisible(){return this.$store.state.local.modalBlockerVisible===!0}},watch:{userManagementActive(){this.checkAutoLogin()},loggedInUser(e){e&&this.checkAutoLogin()},accessAllowed(){this.checkAutoLogin()},modalBlockerVisible(){this.checkAutoLogin()}},mounted(){me(()=>{this.checkAutoLogin()})},beforeMount(){window.addEventListener("resize",this.updateScreenSize),this.updateScreenSize()},beforeUnmount(){window.removeEventListener("resize",this.updateScreenSize)},methods:{updateScreenSize(){this.smallScreen=window.innerWidth<576},stringIsEmpty(e){return!e||e.length===0},checkAutoLogin(){console.debug("Checking auto login: ",this.userManagementActive,this.accessAllowed,this.loggedInUser),this.userManagementActive&&!this.accessAllowed&&!this.modalBlockerVisible?this.showLoginModal=!0:this.showLoginModal=!1},doLogin(e){switch(e){case"login":if(!this.username||!this.password){this.$root.postClientMessage("Benutzername und Passwort erforderlich.","danger");return}this.$cookies.set("mqtt",`${this.username}:${this.password}`),this.$root.reconnectMqttClient(),location.reload();break;case"forgot_password":console.warn("Password reset requested for user:",this.username),this.showLoginModal=!1,this.username="",this.password="",this.showPasswordResetModal=!0;break;default:this.showLoginModal=!1,this.username="",this.password=""}},processResetResult(e){switch(console.log("Password reset modal result:",e),e){case"request_token":if(!this.username){this.$root.postClientMessage("Benutzername erforderlich.","danger");return}console.warn("Requesting password reset token for:",this.username),this.tokenRequested=!0,this.$emit("sendCommand",{command:"createPasswordResetToken",data:{username:this.username}});break;case"reset_password":if(!this.username||!this.token||!this.password||!this.passwordConfirm||this.password!==this.passwordConfirm){this.$root.postClientMessage("Benutzername, Token und neues Kennwort erforderlich.","danger");return}console.warn("Resetting password for:",this.username,"with token:",this.token,"and new password:",this.password),this.passwordResetRequested=!0,this.$root.postClientMessage("Das Token wird geprüft und bei Erfolg das Passwort zurückgesetzt. Dieser Vorgang dauert ein paar Sekunden.","info"),this.$emit("sendCommand",{command:"resetUserPassword",data:{username:this.username,token:this.token,newPassword:this.password}});break;case"close":this.showPasswordResetModal=!1,this.username="",this.password="",this.token="",this.passwordConfirm="",this.tokenRequested=!1,this.passwordResetRequested=!1,this.showLoginModal=!0;return}},doLogout(e){this.showLogoutModal=!1,e==="confirm"&&(console.warn("Logging out user"),this.$cookies.remove("mqtt"),this.$root.reconnectMqttClient(),location.reload())}}},_i={id:"user-indicator",class:"ml-2"},vi={key:0,class:"pill bg-primary"},yi={key:0,class:"non-selectable"},wi={key:1,class:"pill bg-secondary"},ki={name:"loginForm"},Si={name:"requestTokenForm"};function Ci(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-tooltip"),r=g("FontAwesomeLayers"),v=g("openwb-base-modal-dialog"),k=g("openwb-base-text-input");return i(),c(M,null,[n.userManagementActive===!0?(i(),f(j,{key:0,defer:"",to:"#user-target"},[l("div",_i,[n.loggedInUser?(i(),c("span",vi,[b(p,{description:`Angemeldet als ${n.loggedInUser}`},{default:m(()=>[b(a,{icon:["fas","circle-user"],size:"lg"}),o.smallScreen?d("",!0):(i(),c("span",yi,w(n.loggedInUser),1))]),_:1},8,["description"]),b(p,{description:"Abmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-from-bracket"],size:"lg",onClick:t[0]||(t[0]=y=>o.showLogoutModal=!0)})]),_:1})])):(i(),c("span",wi,[b(p,{description:"Nicht angemeldet"},{default:m(()=>[b(r,null,{default:m(()=>[b(a,{icon:["fas","circle-user"]}),b(a,{icon:["fas","ban"],color:"red"})]),_:1})]),_:1}),b(p,{description:"Anmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-to-bracket"],size:"lg",onClick:t[1]||(t[1]=y=>o.showLoginModal=!0)})]),_:1})]))])])):d("",!0),n.userManagementActive?(i(),f(v,{key:1,show:o.showLogoutModal,title:"Abmelden",subtype:"warning",buttons:[{text:"Abmelden",event:"confirm",subtype:"danger"}],onModalResult:t[2]||(t[2]=y=>n.doLogout(y))},{default:m(()=>[...t[11]||(t[11]=[l("p",null,"Willst Du Dich wirklich abmelden?",-1)])]),_:1},8,["show"])):d("",!0),n.userManagementActive?(i(),f(v,{key:2,show:o.showLoginModal,"prevent-close":!n.anonymousAccessAllowed,title:"Anmelden",subtype:"success",buttons:n.loginButtons,onModalResult:t[5]||(t[5]=y=>n.doLogin(y))},{default:m(()=>[l("form",ki,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[3]||(t[3]=y=>o.username=y),title:"Benutzername",subtype:"user",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[4]||(t[4]=y=>o.password=y),title:"Passwort",subtype:"password",required:"",autocomplete:"current-password"},null,8,["modelValue"])])]),_:1},8,["show","prevent-close","buttons"])):d("",!0),n.userManagementActive&&n.dataProtectionAcknowledged?(i(),f(v,{key:3,show:o.showPasswordResetModal,title:"Kennwort zurücksetzen",subtype:"warning",buttons:[{text:"Token anfordern",event:"request_token",subtype:"success",disabled:n.requestTokenDisabled},{text:"Kennwort zurücksetzen",event:"reset_password",subtype:"primary",disabled:n.resetPasswordDisabled},{text:"Zurück",event:"close",subtype:"secondary"}],onModalResult:t[10]||(t[10]=y=>n.processResetResult(y))},{default:m(()=>[l("form",Si,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[6]||(t[6]=y=>o.username=y),title:"Benutzername",subtype:"user","empty-value":"",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.token,"onUpdate:modelValue":t[7]||(t[7]=y=>o.token=y),title:"Token",subtype:"password","empty-value":"",readonly:o.username.length<=0,disabled:o.username.length<=0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[8]||(t[8]=y=>o.password=y),title:"Neues Kennwort",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.passwordConfirm,"onUpdate:modelValue":t[9]||(t[9]=y=>o.passwordConfirm=y),title:"Neues Kennwort bestätigen",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0,validator:y=>y===o.password||"Kennwörter stimmen nicht überein"},null,8,["modelValue","readonly","disabled","validator"])])]),_:1},8,["show","buttons"])):d("",!0)],64)}const Bi=S(bi,[["render",Ci],["__scopeId","data-v-adc196c2"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageUser.vue"]]);A.add(tt,st);const $i={name:"OpenwbPageMqttConnectionState",components:{FontAwesomeIcon:T},props:{connected:{type:Boolean,required:!0}},data(){return{showIcon:!this.connected,visibilityTimeout:null}},watch:{connected(e){e?(clearTimeout(this.visibilityTimeout),this.visibilityTimeout=setTimeout(()=>{this.showIcon=!1},5e3)):(this.showIcon=!0,clearTimeout(this.visibilityTimeout))}}},Ii={id:"connection-state-indicator",class:"ml-2"};function Oi(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-avatar"),r=g("openwb-base-tooltip");return o.showIcon?(i(),f(j,{key:0,defer:"",to:"#info-target"},[l("div",Ii,[b(r,{description:`Verbindung ${s.connected?"hergestellt":"getrennt"}`},{default:m(()=>[b(p,{class:C(s.connected?"text-success":"bg-danger")},{default:m(()=>[b(a,{icon:s.connected?["fas","link"]:["fas","link-slash"]},null,8,["icon"])]),_:1},8,["class"])]),_:1},8,["description"])])])):d("",!0)}const Ai=S($i,[["render",Oi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMqttConnectionState.vue"]]);A.add(nt,ot);const Ti={name:"OpenwbPageMessages",components:{FontAwesomeIcon:T,FontAwesomeLayers:se,FontAwesomeLayersText:it},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/command/"+this.$root.mqttClientId+"/messages/+",writeable:!1},{topic:"openWB/system/messages/+",writeable:!1}],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,s)=>((t=="light"&&["info","success","warning","danger"].includes(s.type)||t=="info"&&["success","warning","danger"].includes(s.type)||t=="success"&&["warning","danger"].includes(s.type)||t=="warning"&&s.type=="danger")&&(t=s.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.localMessages.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[s,u]of Object.entries(e))t.push({topic:s,...u});return t},localMessages(){const e=this.$store.state.local.messages||{};var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});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.localMessages.find(s=>s.topic===e.topic)?this.$store.commit("removeClientMessage",e.topic):this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.dismissMessage({topic:e.topic})}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Mi=["title"],Vi=["innerHTML"];function qi(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("font-awesome-layers-text"),r=g("font-awesome-layers"),v=g("openwb-base-alert"),k=g("openwb-base-click-button"),y=g("openwb-base-toast");return i(),c(M,null,[(i(),f(j,{defer:"",to:"#message-target"},[l("div",{id:"message-indicator",class:C(["text-light clickable",o.showAllMessages?"active":""]),title:o.showAllMessages?"nur neue Nachrichten anzeigen":"Alle Nachrichten anzeigen",onClick:t[0]||(t[0]=(...I)=>n.toggleAllMessages&&n.toggleAllMessages(...I))},[b(r,{"full-width":""},{default:m(()=>[b(a,{icon:o.showAllMessages?["fas","bell"]:["far","bell"],class:C(n.messageIndicatorClass)},null,8,["icon","class"]),n.messages.length>0?(i(),f(p,{key:0,counter:"",value:n.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):d("",!0)]),_:1})],10,Mi)])),n.recentMessages.length>0||o.showAllMessages?(i(),c("div",{key:0,class:C(["openwb-toast-container",o.showAllMessages?"full-height":""])},[n.recentMessages.length==0?(i(),f(v,{key:0,subtype:"info"},{default:m(()=>[...t[1]||(t[1]=[h(" Keine Nachrichten vorhanden. ",-1)])]),_:1})):o.showAllMessages?(i(),f(k,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:n.dismissAllMessages},{default:m(()=>[...t[2]||(t[2]=[h(" Alle Nachrichten löschen ",-1)])]),_:1},8,["onButtonClicked"])):d("",!0),(i(!0),c(M,null,q(n.recentMessages,I=>(i(),f(y,{key:I.topic,topic:I.topic,source:I.source,subtype:I.type,timestamp:I.timestamp,onDismiss:n.dismissMessage,onHide:n.hideMessage},{default:m(()=>[l("span",{innerHTML:I.message},null,8,Vi)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):d("",!0)],64)}const Pi=S(Ti,[["render",qi],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Di={name:"OpenwbPageBlocker",mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],disconnectedTimeout:null}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.mqttClientDisconnected?"Verbindung zur openWB verloren":this.reloadRequired?"Die Seite muss neu geladen werden":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress||this.mqttClientDisconnected)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},mqttClientDisconnected(){return!this.$root.$data.connected},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.$store.state.local.modalBlockerVisible},modalType(){return this.mqttClientDisconnected&&!(this.bootInProgress||this.updateInProgress)?"danger":"dark"}},watch:{mqttClientDisconnected(e){e===!0?this.disconnectedTimeout=window.setTimeout(()=>{this.mqttClientDisconnected&&this.updateLocalStore()},2e3):(this.disconnectedTimeout&&(clearTimeout(this.disconnectedTimeout),this.disconnectedTimeout=null),this.updateLocalStore())},bootInProgress(e){e===!0&&this.updateInProgress===!0&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!0}),this.updateLocalStore()},updateInProgress(e){e===!1&&this.bootInProgress===!1&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!1}),this.updateLocalStore()},reloadRequired(){this.updateLocalStore()}},methods:{updateLocalStore(){this.$store.commit("storeLocal",{name:"modalBlockerVisible",value:this.bootInProgress||this.updateInProgress||this.reloadRequired||this.mqttClientDisconnected})},handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Li={class:"openwb-blocker"},Ei={key:0},xi={key:1},Ri={key:2},Wi={key:3},ji={key:4};function zi(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog");return i(),c("div",Li,[b(a,{show:n.showModalBlocker,title:n.title,subtype:n.modalType,"prevent-close":!0,buttons:n.myButtons,onModalResult:t[0]||(t[0]=p=>n.handleModalResult(p))},{default:m(()=>[n.bootInProgress?(i(),c("p",Ei,"Der Systemstart ist noch nicht abgeschlossen.")):n.updateInProgress?(i(),c("p",xi,"Es wird eine Systemaktualisierung ausgeführt.")):n.mqttClientDisconnected?(i(),c("p",Ri,[...t[1]||(t[1]=[h(" Die Verbindung zur openWB wurde unterbrochen.",-1),l("br",null,null,-1),h(" Es wird versucht, die Verbindung wieder herzustellen... ",-1)])])):n.reloadRequired?(i(),c("p",Wi,"Bitte die Seite neu laden.")):(i(),c("p",ji,"Bitte warten..."))]),_:1},8,["show","title","subtype","buttons"])])}const Ni=S(Di,[["render",zi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]),Ui={name:"OpenwbSettingsApp",components:{NavBar:ci,PageFooter:hi,UserInfo:Bi,MqttConnectionState:Ai,Messages:Pi,Blocker:Ni},data(){return{client:null,connected:!1,connection:{protocol:location.protocol=="https:"?"wss":"ws",protocolVersion:5,host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),path:"/ws",connectTimeout:4e3,reconnectPeriod:4e3,resubscribe:!0,properties:{requestResponseInformation:!0,requestProblemInformation:!0}},dataTimeout:null}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)},nodeEnv(){return"development"}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(u){return new Promise(o=>setTimeout(o,u))}function s(u){return u.includes("#")||u.includes("+")}this.$store.commit("storeLocal",{name:"savingData",value:!0});try{let u={};if(e===void 0){console.error("no topics to save defined!");return}if(Array.isArray(e))e.forEach(o=>{if(s(o)){console.debug("expanding wildcard topic:",o);const n=this.getWildcardTopics(o);Object.entries(n).forEach(([a,p])=>{console.debug("adding topic to save:",a),u[a]=p})}else console.debug("adding topic to save:",o),u[o]=this.$store.state.mqtt[o]});else{console.error("expected array, got ",typeof e);return}for(const[o,n]of Object.entries(u)){if(o.startsWith("$CONTROL")){console.debug("skipping control topic:",o);continue}let a=o.replace("openWB/","openWB/set/");console.debug("saving data:",a,n),this.doPublish(a,n),await t(50)}}finally{this.$store.commit("storeLocal",{name:"savingData",value:!1})}},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish(`openWB/set/command/${this.client.options.clientId}/todo/${e.command}`,e,!1)},createConnection(){const{protocol:e,host:t,port:s,path:u,...o}=this.connection,n=`${e}://${t}:${s}${u}`,[a,p]=this.$cookies.get("mqtt")?.match(/^([^:]+):(.+)$/)?.slice(1)||[null,null];a&&p||console.debug("Anonymous mqtt connection (no cookie set)"),(this.nodeEnv!=="production"||e=="wss")&&a&&p&&(console.debug(`Using mqtt credentials from cookie: "${a}" / "${p.charAt(0)}..."`),o.username=a,o.password=p,a==="admin"&&p==="openwb"&&(console.warn("Using default mqtt credentials! This is insecure and not recommended for production systems."),this.postClientMessage("Warnung: Es werden die Standard-Zugangsdaten für MQTT verwendet! Dies ist unsicher und wird für Produktivsysteme nicht empfohlen.","warning"))),console.debug("connecting to broker:",n),this.client=fe.connect(n,o),this.client.on("connect",()=>{this.connected=!0,console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),a&&(this.postClientMessage(`Angemeldet als "${a}".`,"success"),this.$store.commit("storeLocal",{name:"username",value:a})),this.doSubscribe(["openWB/system/boot_done","openWB/system/dataprotection_acknowledged","openWB/system/usage_terms_acknowledged","openWB/system/installAssistantDone","openWB/system/security/access/+"]),this.dataTimeout=setTimeout(()=>{console.warn("No data received after 1 second, connection might not be working. Removing mqtt cookie and trying again with anonymous connection."),a&&(this.$cookies.remove("mqtt"),this.reconnectMqttClient())},1e3)}),this.client.on("error",r=>{this.connected=!1,console.error("Connection failed",r),this.$cookies.remove("mqtt"),this.$store.commit("storeLocal",{name:"username",value:null}),this.reconnectMqttClient()}),this.client.on("message",(r,v)=>{if(this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null),v.toString().length>0){let k;try{k=JSON.parse(v.toString())}catch(y){console.debug("Json parsing failed, fallback to string: ",r,y),k=v.toString()}this.$store.commit("updateTopic",{topic:r,payload:k})}else this.$store.commit("removeTopic",r)}),this.client.on("end",()=>{this.connected=!1,console.error("mqtt connection ended")}),this.client.on("close",()=>{this.connected=!1,console.error("mqtt connection closed")}),this.client.on("offline",()=>{this.connected=!1,console.error("mqtt connection offline")}),this.client.on("disconnect",()=>{this.connected=!1,console.error("mqtt connection disconnected")}),this.client.on("reconnect",()=>{console.error("mqtt connection reconnecting...")})},endConnection(){this.connected?(console.warn("Ending mqtt connection..."),this.client.end(),this.connected=!1,this.$store.commit("storeLocal",{name:"username",value:null}),this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null)):console.error("No mqtt connection to end.")},reconnectMqttClient(){this.client?.connected&&this.endConnection(),this.createConnection()},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,{},s=>{if(s){this.postClientMessage(`Daten konnten nicht abonniert werden.
Topic: ${t}
${s}`,"danger"),this.$store.commit("removeSubscription",t);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,s=>{s&&(console.error("Unsubscribe error",s),this.postClientMessage(`Daten konnten nicht abbestellt werden.
Topic: ${t}
${s}`,"danger"))}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(s=>{console.debug("removing wildcardTopic:",s),this.$store.commit("removeTopic",s)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,s=!0,u=2){let o={qos:u,retain:s};this.client.publish(e,JSON.stringify(t),o,n=>{n&&(console.error("Publish error",n),this.postClientMessage(`Daten konnten nicht geschrieben werden.
Topic: ${e}
${n}`,"danger"))})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const s=Date.now();this.$store.commit({type:"addClientMessage",timestamp:s,payload:{message:e,type:t,source:"client",timestamp:Math.floor(s/1e3)}})},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})}}},Fi={role:"main",class:"container"},Hi={id:"content"};function Ki(e,t,s,u,o,n){const a=g("nav-bar"),p=g("router-view"),r=g("page-footer"),v=g("mqtt-connection-state"),k=g("user-info"),y=g("messages"),I=g("blocker");return i(),c(M,null,[l("header",null,[b(a)]),l("div",Fi,[l("div",Hi,[l("h1",null,w(e.$route.meta.heading),1),b(p,{onSave:n.saveValues,onReset:n.resetValues,onDefaults:n.setDefaultValues,onSendCommand:n.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),b(r),b(v,{connected:o.connected},null,8,["connected"]),b(k,{onSendCommand:n.sendCommand},null,8,["onSendCommand"]),b(y),b(I)],64)}const Gi=S(Ui,[["render",Ki],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Ji="modulepreload",Zi=function(e){return"/openWB/web/settings/"+e},Z={},B=function(t,s,u){let o=Promise.resolve();if(s&&s.length>0){let r=function(v){return Promise.all(v.map(k=>Promise.resolve(k).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),p=a?.nonce||a?.getAttribute("nonce");o=r(s.map(v=>{if(v=Zi(v),v in Z)return;Z[v]=!0;const k=v.endsWith(".css"),y=k?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${v}"]${y}`))return;const I=document.createElement("link");if(I.rel=k?"stylesheet":Ji,k||(I.as="script"),I.crossOrigin="",I.href=v,p&&I.setAttribute("nonce",p),document.head.appendChild(I),k)return new Promise((le,re)=>{I.addEventListener("load",le),I.addEventListener("error",()=>re(new Error(`Unable to preload CSS for ${v}`)))})}))}function n(a){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=a,window.dispatchEvent(p),!p.defaultPrevented)throw a}return o.then(a=>{for(const p of a||[])p.status==="rejected"&&n(p.reason);return t().catch(n)})},Qi={namespaced:!0,state:()=>({hiddenDatasets:[]}),mutations:{toggleDataset(e,t){e.hiddenDatasets.includes(t)?e.hiddenDatasets=e.hiddenDatasets.filter(s=>s!==t):e.hiddenDatasets.push(t)},setHiddenDatasets(e,t){e.hiddenDatasets=t}}};let ie={mqtt:{},mqttSubscriptions:{},local:{modalBlockerVisible:!1,reloadRequired:!1,savingData:!1,username:null}};ie.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",text8:"Text mit Add-Button",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const x=ge({state:ie,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 s=(u,o,n)=>o.split(".").reduce((a,p,r)=>a[p]=o.split(".").length===r+1?n:a[p]||{},u);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?s(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?s(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"))},addClientMessage(e,t){e.local.messages||(e.local.messages={}),e.local.messages[t.timestamp]=t.payload},removeClientMessage(e,t){e.local.messages&&t in e.local.messages&&delete e.local.messages[t]},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:{chartLegend:Qi},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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(s),clearInterval(u),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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(s),clearInterval(u),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},accessAllowed(e){return t=>new Promise(s=>{const u=`openWB/system/security/access/${t}`;if(e.mqtt[u]!==void 0)s(e.mqtt[u]);else{var o,n;o=setTimeout(()=>{clearInterval(n),s(!1)},5e3),n=setInterval(()=>{e.mqtt[u]!==void 0&&(clearTimeout(o),clearInterval(n),s(e.mqtt[u]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),ae=[{path:"/",redirect:"/GeneralConfiguration"},{path:"/Status",name:"Status",meta:{heading:"Status",checkPermissions:!0},component:()=>B(()=>import("./Status-bV6B6bv6.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll",checkPermissions:!0},component:()=>B(()=>import("./ChargeLog-CZQ0QwMY.js"),__vite__mapDeps([11,1,2,3,6,7,8,9,12]))},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"Chart",meta:{heading:"Auswertungen - Diagramme",checkPermissions:!0},component:()=>B(()=>import("./Chart-CR-tn1oB.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,14]))},{path:"/GeneralConfiguration",name:"GeneralConfiguration",meta:{heading:"Einstellungen - Allgemein",checkPermissions:!0},component:()=>B(()=>import("./GeneralConfiguration-b09cPY_w.js").then(e=>e.a),__vite__mapDeps([15,1,2,3,16,17]))},{path:"/IdentificationConfiguration",name:"IdentificationConfiguration",meta:{heading:"Einstellungen - Identifikation",checkPermissions:!0},component:()=>B(()=>import("./IdentificationConfiguration-BN_nskUK.js"),__vite__mapDeps([18,16,2,3,1,6,7,8,9]))},{path:"/DisplayConfiguration",name:"DisplayConfiguration",meta:{heading:"Einstellungen - Display",checkPermissions:!0},component:()=>B(()=>import("./DisplayConfiguration-h7XEuoXV.js").then(e=>e.a),__vite__mapDeps([19,17,1,2,3]))},{path:"/GeneralChargeConfiguration",name:"GeneralChargeConfiguration",meta:{heading:"Ladeeinstellungen - Übergreifendes",checkPermissions:!0},component:()=>B(()=>import("./GeneralChargeConfiguration-kMS02s2g.js").then(e=>e.a),__vite__mapDeps([20,17,1,2,3]))},{path:"/SurplusChargeConfiguration",name:"SurplusChargeConfiguration",meta:{heading:"Ladeeinstellungen - Überschuss-Laden",checkPermissions:!0},component:()=>B(()=>import("./SurplusChargeConfiguration-i4C8x6Va.js"),__vite__mapDeps([21,16,2,3,1,6,7,8,9]))},{path:"/ActiveBatControlConfiguration",name:"ActiveBatControlConfiguration",meta:{heading:"Ladeeinstellungen - Speichersteuerung",checkPermissions:!0},component:()=>B(()=>import("./ActiveBatControlConfiguration-DyGDJFQ0.js"),__vite__mapDeps([22,1,2,3,6,7,8,9]))},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten",checkPermissions:!0},component:()=>B(()=>import("./HardwareInstallation-DrK-NlWu.js").then(e=>e.a),__vite__mapDeps([23,1,2,3,17]))},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement",checkPermissions:!0},component:()=>B(()=>import("./LoadManagementConfiguration-DKZ9eznX.js"),__vite__mapDeps([24,1,2,3,25,26,6,7,8,9]))},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte",checkPermissions:!0},component:()=>B(()=>import("./ChargePointInstallation-BeNMkMOi.js").then(e=>e.c),__vite__mapDeps([27,1,2,3,16,17,28]))},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge",checkPermissions:!0},component:()=>B(()=>import("./VehicleConfiguration-B3d9qly5.js").then(e=>e.b),__vite__mapDeps([29,1,2,3,17]))},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge",checkPermissions:!0},component:()=>B(()=>import("./IoConfiguration-hMQZDwaS.js").then(e=>e.b),__vite__mapDeps([30,1,2,3,17]))},{path:"/System/CloudConfiguration",name:"CloudConfiguration",meta:{heading:"System - openWB Cloud",checkPermissions:!0},component:()=>B(()=>import("./CloudConfiguration-DOLVcdWg.js"),__vite__mapDeps([31,1,2,3,6,7,8,9]))},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfiguration",meta:{heading:"System - MQTT-Brücken",checkPermissions:!0},component:()=>B(()=>import("./MqttBridgeConfiguration-DpHaWJdF.js"),__vite__mapDeps([32,1,2,3,6,7,8,9]))},{path:"/System/DebugConfiguration",name:"DebugConfiguration",meta:{heading:"System - Fehlersuche",checkPermissions:!0},component:()=>B(()=>import("./DebugConfiguration-C2vm4vM4.js"),__vite__mapDeps([33,1,2,3,9,6,7,8,34]))},{path:"/System/Support",name:"Support",meta:{heading:"System - Support",checkPermissions:!0},component:()=>B(()=>import("./Support-DMhdXgqE.js"),__vite__mapDeps([35,1,2,3,6,7,8,9]))},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches",checkPermissions:!0},component:()=>B(()=>import("./LegalSettings-DvE2H9Xw.js"),__vite__mapDeps([36,1,2,3,6,7,8,9]))},{path:"/System/SystemConfiguration",name:"SystemConfiguration",meta:{heading:"System - System",checkPermissions:!0},component:()=>B(()=>import("./SystemConfiguration-BN4gvHU6.js"),__vite__mapDeps([37,1,2,3,6,7,8,9,38]))},{path:"/System/SecurityConfiguration",name:"SecurityConfiguration",meta:{heading:"System - Sicherheit",checkPermissions:!0},component:()=>B(()=>import("./SecurityConfiguration-Ckkg6YKx.js"),__vite__mapDeps([39,1,2,3,6,7,8,9]))},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung",checkPermissions:!0},component:()=>B(()=>import("./DataManagement-C57poL-r.js").then(e=>e.a),__vite__mapDeps([40,1,2,3,17]))},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent",checkPermissions:!0},component:()=>B(()=>import("./InstallAssistant-C4J4yr5X.js"),__vite__mapDeps([41,17,2,3,1,6,7,8,9]))},{path:"/Error",name:"Error",meta:{heading:"Fehler",checkPermissions:!1},component:()=>B(()=>import("./Error-BZ1TitTh.js"),__vite__mapDeps([42,2,3]))}];ae.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store",checkPermissions:!1},component:()=>B(()=>import("./TestingStore-pmOfDSbe.js"),__vite__mapDeps([43,25,2,3,1,26,6,7,8,9]))});const F=he({history:be(),routes:ae});let W=!1;F.beforeEach(async e=>{const t=async n=>{if(n.meta.checkPermissions===!0){const a=await x.getters.accessAllowed(n.name);if(console.debug("access check for",n.name,"->",a),W)return console.debug("route already handled, cancel further processing"),!1;if(!a)return console.warn("no permission to access",n.name),x.state.local.username?{name:"Error"}:(console.debug("not logged in, cancel navigation to",n.name),W=!0,!1)}return!0};if(W=!1,!await x.getters.usageTermsAcknowledged)return e.name!=="LegalSettings"?(console.log("usage terms not acknowledged, redirect to legal settings"),{name:"LegalSettings"}):(console.log("usage terms not acknowledged, but already on legal settings, continue"),await t(e));if(!await x.getters.installAssistantDone)return e.name!=="InstallAssistant"?(console.log("install assistant not done, redirect to install assistant"),{name:"InstallAssistant"}):(console.log("install assistant not done, but already on install assistant, continue"),await t(e));const o=await t(e);return W=!0,o});F.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const H=_e(Gi);H.use(x).use(F).use(at,lt).use(ve,{expire:"30d",path:"/",domain:"",secure:!0,sameSite:"Lax"});const Yi=Object.assign({"./components/OpenwbBaseAlert.vue":ct,"./components/OpenwbBaseArrayInput.vue":qt,"./components/OpenwbBaseAvatar.vue":xt,"./components/OpenwbBaseButtonGroupInput.vue":Jt,"./components/OpenwbBaseButtonInput.vue":ns,"./components/OpenwbBaseButtonRow.vue":Ut,"./components/OpenwbBaseCard.vue":ms,"./components/OpenwbBaseCheckboxInput.vue":vs,"./components/OpenwbBaseClickButton.vue":Xt,"./components/OpenwbBaseColorPicker.vue":Bs,"./components/OpenwbBaseCopyToClipboard.vue":Ps,"./components/OpenwbBaseHeading.vue":zs,"./components/OpenwbBaseIoPattern.vue":Hs,"./components/OpenwbBaseModalDialog.vue":en,"./components/OpenwbBaseNumberInput.vue":mn,"./components/OpenwbBaseRangeInput.vue":Sn,"./components/OpenwbBaseSelectInput.vue":En,"./components/OpenwbBaseSettingElement.vue":bt,"./components/OpenwbBaseSubmitButtons.vue":Gn,"./components/OpenwbBaseTextInput.vue":_o,"./components/OpenwbBaseTextarea.vue":Mo,"./components/OpenwbBaseToast.vue":Eo,"./components/OpenwbBaseTooltip.vue":zo});Object.entries(Yi).forEach(([e,t])=>{const s=ye(we(e.split("/").pop().replace(/\.\w+$/,"")));H.component(s,t.default)});H.mount("#app");export{z as C,D as O,B as _}; +const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/Status-C2MPQY7c.js","assets/vendor-fortawesome-CBc-2W7w.js","assets/vendor-Bo8v-nQD.js","assets/vendor-D1GV4U4l.css","assets/vendor-chartjs-0RUe1kvq.js","assets/vendor-luxon-BDx6lZXm.js","assets/vendor-bootstrap-BQqw8g0w.js","assets/vendor-jquery-CEMonh9Y.js","assets/vendor-bootstrap-BJ8HpIhY.css","assets/vendor-axios-DdFvNBv9.js","assets/Status-C2EBkHqs.css","assets/ChargeLog-DrRDhBzR.js","assets/ChargeLog-D2ZLixbI.css","assets/Chart-CswxV9n9.js","assets/Chart-BggLkBbQ.css","assets/GeneralConfiguration-d2XsWBRc.js","assets/SystemVersion-DQAfG1DR.js","assets/dynamic-import-helper-BheWnx7M.js","assets/IdentificationConfiguration-D2_DUB2l.js","assets/DisplayConfiguration-C9arPcQK.js","assets/GeneralChargeConfiguration-BMEAxDhB.js","assets/SurplusChargeConfiguration-Cu9BnO0I.js","assets/ActiveBatControlConfiguration-DHcxvCYP.js","assets/HardwareInstallation-DW5TYu17.js","assets/LoadManagementConfiguration-DkVfCmRF.js","assets/OpenwbSortableList-B4YWn8p9.js","assets/OpenwbSortableList-C11EhIQj.css","assets/ChargePointInstallation-Cmc7sApi.js","assets/ChargePointInstallation-37TSBtDo.css","assets/VehicleConfiguration-DZuJgE9z.js","assets/IoConfiguration-CuIvy4Hb.js","assets/CloudConfiguration-CTXO9wZf.js","assets/MqttBridgeConfiguration-CDPcpDOw.js","assets/DebugConfiguration-FJkDknEv.js","assets/DebugConfiguration-CN753w98.css","assets/Support--2N_8ACr.js","assets/LegalSettings-DqdcFet8.js","assets/SystemConfiguration-C-kqn4RK.js","assets/SystemConfiguration-BWslT2W-.css","assets/SecurityConfiguration-Dlmaxpov.js","assets/DataManagement-lM5_tcaR.js","assets/InstallAssistant-DLIY5fno.js","assets/Error-BZ1TitTh.js","assets/TestingStore-DRd3kTjd.js"])))=>i.map(i=>d[i]); +import{_ as S,e as c,f as _,j as C,k as i,l as g,m as b,q as m,u as d,x as l,y as f,z as E,A as h,D as P,E as O,F as $,G as K,I as V,J as w,K as M,L as q,M as Q,N as de,O as ue,P as ce,Q as pe,T as j,R as G,n as me,S as fe,U as ge,V as he,W as be,X as _e,Y as ve,Z as ye,$ as we}from"./vendor-Bo8v-nQD.js";import{l as A,f as Y,a as X,F as T,b as ke,c as Se,d as N,e as Ce,g as U,h as Be,i as $e,j as Ie,k as Oe,m as Ae,n as Te,o as Me,p as Ve,q as qe,r as Pe,s as De,t as Le,u as Ee,v as xe,w as ee,x as Re,y as We,z as je,A as ze,B as Ne,C as te,D as Ue,E as Fe,G as He,H as Ke,I as Ge,J as Je,K as Ze,L as Qe,M as Ye,N as Xe,O as et,P as se,Q as tt,R as st,S as nt,T as ot,U as it}from"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import{p as at,a as lt}from"./vendor-axios-DdFvNBv9.js";import"./vendor-jquery-CEMonh9Y.js";(function(){const t=document.createElement("link").relList;if(t&&t.supports&&t.supports("modulepreload"))return;for(const o of document.querySelectorAll('link[rel="modulepreload"]'))u(o);new MutationObserver(o=>{for(const n of o)if(n.type==="childList")for(const a of n.addedNodes)a.tagName==="LINK"&&a.rel==="modulepreload"&&u(a)}).observe(document,{childList:!0,subtree:!0});function s(o){const n={};return o.integrity&&(n.integrity=o.integrity),o.referrerPolicy&&(n.referrerPolicy=o.referrerPolicy),o.crossOrigin==="use-credentials"?n.credentials="include":o.crossOrigin==="anonymous"?n.credentials="omit":n.credentials="same-origin",n}function u(o){if(o.ep)return;o.ep=!0;const n=s(o);fetch(o.href,n)}})();const rt={name:"OpenwbAlert",props:{subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}}};function dt(e,t,s,u,o,n){return i(),c("div",{class:C(["card-text alert","alert-"+s.subtype])},[_(e.$slots,"default",{},void 0,!0)],2)}const ut=S(rt,[["render",dt],["__scopeId","data-v-055c15aa"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAlert.vue"]]),ct=Object.freeze(Object.defineProperty({__proto__:null,default:ut},Symbol.toStringTag,{value:"Module"}));A.add(Y,X);const pt={name:"OpenwbBaseSettingElement",components:{FontAwesomeIcon:T},data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},mt={key:0,class:"col-md-4 col-form-label"},ft={class:"form-row"},gt={key:0,class:"form-text alert alert-info my-1 small flex-fill"};function ht(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",{class:C(["form-row",e.$slots.title?"mb-1":"mx-0"])},[e.$slots.title?(i(),c("div",mt,[_(e.$slots,"title",{},void 0,!0),b(p,{description:`Hilfe ${o.showHelp?"verbergen":"anzeigen"}`},{default:m(()=>[e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable ml-1",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),_:1},8,["description"])])):d("",!0),l("div",{class:C(e.$slots.title?"col-md-8":"col px-0")},[l("div",{class:C({"form-row":e.$slots.title})},[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("*ELEMENT MISSING*",-1))],!0)],2),l("div",ft,[o.showHelp?(i(),c("span",gt,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],2)],2)}const D=S(pt,[["render",ht],["__scopeId","data-v-33864f66"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSettingElement.vue"]]),bt=Object.freeze(Object.defineProperty({__proto__:null,default:D},Symbol.toStringTag,{value:"Module"})),_t={name:"BaseSettingComponents",data(){return{uid:Math.random().toString(36).substring(2,15)}}},L=S(_t,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/BaseSettingComponents.vue"]]);A.add(ke,Se,N,Ce);const vt={name:"OpenwbArrayInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!0},modelValue:{type:Array,default:()=>[]},validElements:{type:Array,default:()=>[]},noElementsMessage:{type:String,default:()=>"Keine Elemente zugeordnet."},disabled:{type:Boolean,default:()=>!1},readonly:{type:Boolean,default:()=>!1}},emits:["update:modelValue"],data(){return{newTag:""}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},remainingElements(){return this.validElements.length===0?[]:this.validElements.filter(e=>!this.value.includes(e.value||e))},newTagValid:{get(){return this.newTag.length>0&&!this.value.includes(this.newTag)&&(this.validElements.length===0||this.validElements.includes(this.newTag)||this.validElements.some(e=>e.value===this.newTag))&&this.$refs.tagInput?.checkValidity()}},tagLabel(){return e=>{const t=this.validElements.find(s=>(s.value||s)===e);return t?t.label||t.value||t:e}}},methods:{addTag(){if(this.newTagValid){const e=[...this.value,this.newTag].sort();this.value=e,this.newTag=""}this.$refs.tagInput.focus()},removeTag(e){let t=[...this.value];t.splice(e,1),this.value=t}}},yt={key:0,class:"w-100"},wt={class:"input-group"},kt={class:"input-group-prepend"},St={class:"input-group-text"},Ct=["id","disabled"],Bt=["id","disabled"],$t={value:"",disabled:""},It=["value"],Ot={class:"input-group-append"},At={class:"tagList mt-1 w-100"},Tt={key:0,class:"noTag"};function Mt(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[s.readonly||s.disabled?d("",!0):(i(),c("div",yt,[l("div",wt,[l("div",kt,[l("div",St,[_(e.$slots,"input-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0)])]),s.validElements.length===0?O((i(),c("input",$({key:0,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[0]||(t[0]=r=>o.newTag=r),type:"text",class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[1]||(t[1]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),null,16,Ct)),[[V,o.newTag]]):O((i(),c("select",$({key:1,id:`${e.uid}-tag-input`,ref:"tagInput","onUpdate:modelValue":t[2]||(t[2]=r=>o.newTag=r),class:"form-control"},e.$attrs,{disabled:s.disabled,onKeyup:t[3]||(t[3]=K((...r)=>n.addTag&&n.addTag(...r),["enter"]))}),[l("option",$t,w(n.remainingElements.length>0?"Bitte wählen...":"Keine weiteren Optionen verfügbar"),1),(i(!0),c(M,null,q(n.remainingElements,(r,v)=>(i(),c("option",{key:v,value:r.value||r},w(r.label||r.value||r),9,It))),128))],16,Bt)),[[Q,o.newTag]]),l("div",Ot,[l("div",{class:C(["input-group-text",n.newTagValid?"bg-success clickable":"not-clickable"]),onClick:t[4]||(t[4]=(...r)=>n.addTag&&n.addTag(...r))},[_(e.$slots,"input-add",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])])])),l("div",At,[n.value.length==0?(i(),c("span",Tt,[b(a,{icon:["fas","info-circle"]}),h(" "+w(s.noElementsMessage),1)])):d("",!0),(i(!0),c(M,null,q(n.value,(r,v)=>(i(),c("span",{key:v,class:"tag"},[_(e.$slots,"element-prefix",{},()=>[b(a,{icon:["fas","tag"]})],!0),h(" "+w(n.tagLabel(r))+" ",1),s.readonly||s.disabled?d("",!0):(i(),f(a,{key:0,class:"clickable remove-element",icon:["fas","times-circle"],onClick:k=>n.removeTag(v)},null,8,["onClick"]))]))),128))])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Vt=S(vt,[["render",Mt],["__scopeId","data-v-9de93d37"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseArrayInput.vue"]]),qt=Object.freeze(Object.defineProperty({__proto__:null,default:Vt},Symbol.toStringTag,{value:"Module"})),Pt={name:"OpenwbAvatar"},Dt={class:"avatar"};function Lt(e,t,s,u,o,n){return i(),c("div",Dt,[_(e.$slots,"default",{},()=>[t[0]||(t[0]=h("?",-1))],!0)])}const Et=S(Pt,[["render",Lt],["__scopeId","data-v-06082a1a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseAvatar.vue"]]),xt=Object.freeze(Object.defineProperty({__proto__:null,default:Et},Symbol.toStringTag,{value:"Module"}));A.add(U);const Rt={name:"OpenwbButtonRow",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{buttons:{type:Array,required:!0},modelValue:{type:[String,Number,Boolean],default:null},disabled:{type:Boolean,default:!1},uid:{type:String,required:!0}},emits:["update:modelValue","button-click"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},Wt={class:"btn-group btn-block btn-group-toggle"},jt=["for"],zt=["id","value","disabled","onClick"];function Nt(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",Wt,[(i(!0),c(M,null,q(s.buttons,p=>(i(),c("label",{key:p.buttonValue,class:C(["btn btn-same-size btn-centered",[{active:s.modelValue===p.buttonValue},{disabled:s.disabled},p.class?p.class:"btn-outline-info"]]),for:`${s.uid}-${p.buttonValue}`},[l("span",null,[O(l("input",$({id:`${s.uid}-${p.buttonValue}`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"radio",value:p.buttonValue},{ref_for:!0},e.$attrs,{disabled:s.disabled,onClick:r=>e.$emit("button-click",p.buttonValue)}),null,16,zt),[[de,n.value]]),_(e.$slots,"label-"+p.buttonValue,{},()=>[h(w(p.text),1)],!0),t[1]||(t[1]=l("span",null," ",-1)),b(a,{icon:["fas","check"],style:ue([n.value==p.buttonValue?"visibility: visible":"visibility: hidden"])},null,8,["style"])])],10,jt))),128))])}const ne=S(Rt,[["render",Nt],["__scopeId","data-v-4bd221b6"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonRow.vue"]]),Ut=Object.freeze(Object.defineProperty({__proto__:null,default:ne},Symbol.toStringTag,{value:"Module"})),Ft={name:"OpenwbButtonGroupInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseButtonRow:ne},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Number,Boolean],default:void 0},buttons:{type:Array,required:!0},disabled:{type:Boolean,required:!1,default:!1},maxButtonsPerRow:{type:Number,default:Number.POSITIVE_INFINITY}},emits:["update:modelValue","button-click"],data(){return{containerWidth:0}},computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},maxButtonsPerRowAuto(){return this.containerWidth<=200?1:this.containerWidth<=360?2:this.containerWidth<=550?3:1/0},buttonRows(){const e=[];for(let t=0;t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Ht,[(i(!0),c(M,null,q(n.buttonRows,(r,v)=>(i(),f(a,$({key:v,buttons:r,uid:e.uid,"model-value":n.value,disabled:s.disabled},{ref_for:!0},e.$attrs,{"onUpdate:modelValue":t[0]||(t[0]=k=>n.value=k),onButtonClick:t[1]||(t[1]=k=>e.$emit("button-click",k))}),P({_:2},[q(r,k=>({name:`label-${k.buttonValue}`,fn:m(y=>[_(e.$slots,`label-${k.buttonValue}`,$({ref_for:!0},y),void 0,!0)])}))]),1040,["buttons","uid","model-value","disabled"]))),128))],512)]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const Gt=S(Ft,[["render",Kt],["__scopeId","data-v-31e583df"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonGroupInput.vue"]]),Jt=Object.freeze(Object.defineProperty({__proto__:null,default:Gt},Symbol.toStringTag,{value:"Module"})),Zt={name:"OpenwbClickButton",props:{title:{type:String,required:!1,default:""},tooltip:{type:String,required:!1,default:""}},emits:["buttonClicked"],methods:{click(e){this.$emit("buttonClicked",e)}}},Qt=["title"];function Yt(e,t,s,u,o,n){return i(),c("button",{type:"button",class:"btn btn-block",title:s.tooltip,onClick:t[0]||(t[0]=E((...a)=>n.click&&n.click(...a),["prevent"]))},[_(e.$slots,"default",{},()=>[h(w(s.title),1)],!0)],8,Qt)}const oe=S(Zt,[["render",Yt],["__scopeId","data-v-2e9c095b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseClickButton.vue"]]),Xt=Object.freeze(Object.defineProperty({__proto__:null,default:oe},Symbol.toStringTag,{value:"Module"})),es={name:"OpenwbButtonInput",components:{OpenwbBaseSettingElement:D,OpenwbBaseClickButton:oe},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},buttonText:{type:String,required:!1,default:void 0},disabled:{type:Boolean,default:!1},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"}},emits:["buttonClicked"],methods:{handleClick(e){this.$emit("buttonClicked",e)}}};function ts(e,t,s,u,o,n){const a=g("openwb-base-click-button"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[b(a,$({class:(s.disabled?"btn-outline-":"btn-")+s.subtype,disabled:s.disabled},e.$attrs,{onButtonClicked:n.handleClick}),{default:m(()=>[h(w(s.buttonText),1)]),_:1},16,["class","disabled","onButtonClicked"])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const ss=S(es,[["render",ts],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseButtonInput.vue"]]),ns=Object.freeze(Object.defineProperty({__proto__:null,default:ss},Symbol.toStringTag,{value:"Module"}));A.add(Be,$e);const os={name:"OpenwbCard",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,default:void 0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"secondary"},bodyBg:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark","pink","white"].indexOf(e)!==-1},default:"light"},collapsible:{type:Boolean,default:!1},collapsed:{type:Boolean,default:!1}},emits:["collapsed","expanded"],data(){return{isCollapsed:this.collapsible&&this.collapsed}},methods:{toggleBody(){this.collapsible===!0&&(this.isCollapsed=!this.isCollapsed,this.$emit(this.isCollapsed?"collapsed":"expanded"))}}},is={class:"form-group mb-0"},as={class:"form-row vaRow mb-0 py-2"},ls={class:"col"},rs={class:"card-actions ml-4"},ds={key:0,class:"card-actions mr-2"},us={key:2,class:"card-footer"};function cs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("div",{class:C(["card","border-"+s.subtype])},[s.title!==void 0||e.$slots.header?(i(),c("div",{key:0,class:C(["card-header py-1","bg-"+s.subtype]),onClick:t[0]||(t[0]=(...p)=>n.toggleBody&&n.toggleBody(...p))},[l("div",is,[l("div",as,[l("div",ls,[_(e.$slots,"header",{collapsed:o.isCollapsed},()=>[h(w(s.title),1)],!0)])])]),l("div",rs,[e.$slots.actions?(i(),c("div",ds,[_(e.$slots,"actions",{collapsed:o.isCollapsed},void 0,!0)])):d("",!0),s.collapsible?(i(),f(a,{key:1,icon:o.isCollapsed?["fas","chevron-right"]:["fas","chevron-down"]},null,8,["icon"])):d("",!0)])],2)):d("",!0),o.isCollapsed===!1?(i(),c("div",$({key:1,class:["card-body",[s.title==null&&!e.$slots.header?"border-radius-top-inherit":"",e.$slots.footer?"":"border-radius-bottom-inherit","bg-"+s.bodyBg]]},e.$attrs),[_(e.$slots,"default",{},void 0,!0)],16)):d("",!0),e.$slots.footer&&o.isCollapsed===!1?(i(),c("div",us,[_(e.$slots,"footer",{},void 0,!0)])):d("",!0)],2)}const ps=S(os,[["render",cs],["__scopeId","data-v-9833c353"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCard.vue"]]),ms=Object.freeze(Object.defineProperty({__proto__:null,default:ps},Symbol.toStringTag,{value:"Module"})),fs={name:"OpenwbCheckboxInput",components:{OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Boolean}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}}},gs={class:"col-md-8"},hs=["id"];function bs(e,t,s,u,o,n){const a=g("openwb-base-setting-element");return i(),f(a,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[l("div",gs,[O(l("input",$({id:`${e.uid}-checkbox-input`,"onUpdate:modelValue":t[0]||(t[0]=p=>n.value=p),class:"form-control",type:"checkbox"},e.$attrs),null,16,hs),[[ce,n.value]])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const _s=S(fs,[["render",bs],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCheckboxInput.vue"]]),vs=Object.freeze(Object.defineProperty({__proto__:null,default:_s},Symbol.toStringTag,{value:"Module"}));A.add(Ie);const ys={name:"OpenwbColorPicker",components:{FontAwesomeIcon:T},mixins:[L],props:{defaultColor:{type:String,required:!1,default:void 0,validator:e=>/^#[0-9A-F]{6}$/i.test(e)},modelValue:{type:String,required:!1,default:"#000000",validator:e=>/^#[0-9A-F]{6}$/i.test(e)}},emits:["update:model-value"],methods:{changed(e){this.$emit("update:model-value",e)}}},ws={class:"wrapper"},ks=["id","value","title"];function Ss(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip");return i(),c("div",ws,[l("input",{id:`${e.uid}-color-input`,type:"color",class:"custom-color-picker",value:s.modelValue,title:`Farbe: ${s.modelValue}`,onInput:t[0]||(t[0]=r=>n.changed(r.target.value))},null,40,ks),s.defaultColor?(i(),f(p,{key:0,description:`Zurücksetzen auf Standardfarbe (${s.defaultColor})`},{default:m(()=>[b(a,{class:"ml-1 clickable",icon:["fas","rotate-left"],onClick:t[1]||(t[1]=r=>n.changed(s.defaultColor))})]),_:1},8,["description"])):d("",!0)])}const Cs=S(ys,[["render",Ss],["__scopeId","data-v-1378b599"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseColorPicker.vue"]]),Bs=Object.freeze(Object.defineProperty({__proto__:null,default:Cs},Symbol.toStringTag,{value:"Module"})),{text:J,copy:$s,copied:Is,isSupported:Os}=pe({copiedDuring:3e3,legacy:!0});A.add(Oe,Ae);const As={name:"OpenwbCopyToClipboard",components:{FontAwesomeIcon:T},props:{tooltip:{type:String,default:"Wert kopieren"}},data(){return{}},computed:{contentText(){return this.$refs.content?.innerText?this.$refs.content.innerText.trim():""},isCopied(){return Is.value&&J.value===this.contentText},copySupported(){return Os.value}},methods:{click(){this.copySupported&&$s(this.contentText).then(()=>{console.debug("Text copied to clipboard:",J.value)}).catch(e=>{console.error("Failed to copy text to clipboard:",e)})}}},Ts=["title"],Ms={ref:"content"};function Vs(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c("span",{title:n.copySupported&&!n.isCopied?s.tooltip:"",class:C({"copy-me":n.copySupported&&!n.isCopied}),onClick:t[0]||(t[0]=E((...p)=>n.click&&n.click(...p),["stop"]))},[l("span",Ms,[_(e.$slots,"default",{},void 0,!0)],512),n.copySupported?(i(),f(a,{key:0,class:"ml-1",icon:n.isCopied?["fas","clipboard-check"]:["fas","clipboard"]},null,8,["icon"])):d("",!0)],10,Ts)}const qs=S(As,[["render",Vs],["__scopeId","data-v-81826ebe"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseCopyToClipboard.vue"]]),Ps=Object.freeze(Object.defineProperty({__proto__:null,default:qs},Symbol.toStringTag,{value:"Module"}));A.add(Y,X,U);const Ds={name:"OpenwbHeading",components:{FontAwesomeIcon:T},inheritAttrs:!1,data(){return{showHelp:!1}},methods:{toggleHelp(){this.showHelp=!this.showHelp&&this.$slots.help!==void 0}}},Ls={class:"heading-text"},Es={key:0,class:"actions"},xs={class:""},Rs={key:0,class:"form-row alert alert-info small flex-fill"};function Ws(e,t,s,u,o,n){const a=g("font-awesome-icon");return i(),c(M,null,[l("div",$({class:"card-text card-text-heading"},e.$attrs),[l("div",Ls,[_(e.$slots,"default",{},void 0,!0),e.$slots.help?(i(),f(a,{key:0,icon:o.showHelp?["fas","question-circle"]:["far","question-circle"],class:C(["clickable",o.showHelp?"text-info":""]),onClick:E(n.toggleHelp,["stop"])},null,8,["icon","class","onClick"])):d("",!0)]),e.$slots.actions?(i(),c("span",Es,[_(e.$slots,"actions",{},void 0,!0)])):d("",!0)],16),l("div",xs,[o.showHelp?(i(),c("span",Rs,[_(e.$slots,"help",{},void 0,!0)])):d("",!0)])],64)}const js=S(Ds,[["render",Ws],["__scopeId","data-v-cbe4e96e"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseHeading.vue"]]),zs=Object.freeze(Object.defineProperty({__proto__:null,default:js},Symbol.toStringTag,{value:"Module"}));A.add(Te,Me,Ve,qe);const R={null:{value:null,icon:["fas","question"],iconClass:"text-secondary",title:"Nicht relevant",nextValue:!0},true:{value:!0,icon:["fas","square"],iconClass:"",title:"Geschlossen",nextValue:!1},false:{value:!1,icon:["far","square"],iconClass:"",title:"Offen",nextValue:null}},Ns={name:"OpenwbIoPattern",components:{FontAwesomeIcon:T},inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Array,required:!1,default:()=>[]}},emits:["update:modelValue"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}}},methods:{getIcon(e){return R[e].icon},getIconClass(e){return R[e].iconClass},getTitle(e){return R[e].title},toggleInput(e,t){this.value[e]=R[t].nextValue}}};function Us(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-tooltip"),r=g("openwb-base-setting-element");return i(),f(r,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),default:m(()=>[(i(!0),c(M,null,q(n.value,(v,k)=>(i(),c("span",{key:k},[b(p,{description:n.getTitle(v)},{default:m(()=>[b(a,{icon:n.getIcon(v),class:C([n.getIconClass(v),"fa-fw clickable"]),size:"2x",transform:v=="undefined"?"shrink-6":null,mask:v=="undefined"?["fas","square"]:null,onClick:E(y=>n.toggleInput(k,v),["stop","prevent"]),onMousedown:t[0]||(t[0]=E(()=>{},["stop","prevent"])),onMouseup:t[1]||(t[1]=E(()=>{},["stop","prevent"]))},null,8,["icon","class","transform","mask","onClick"])]),_:2},1032,["description"])]))),128))]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"0"}:void 0]),1024)}const Fs=S(Ns,[["render",Us],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseIoPattern.vue"]]),Hs=Object.freeze(Object.defineProperty({__proto__:null,default:Fs},Symbol.toStringTag,{value:"Module"})),Ks={name:"OpenwbModalDialog",props:{title:{type:String,required:!1,default:""},subtype:{type:String,validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},buttons:{type:Array,default:void 0},footerAlignment:{type:String,validator:function(e){return["around","between","center","end","start"].indexOf(e)!==-1},default:"end"},preventClose:{type:Boolean,default:!1},show:{type:Boolean,default:!1}},emits:["modal-result"],computed:{myButtons(){var e=[];return this.buttons!==void 0&&(e=[...this.buttons]),e.findIndex(t=>t.event==="close")===-1&&!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)}}},Gs={class:"modal-content"},Js={class:"modal-title"},Zs={class:"modal-body"},Qs=["disabled","data-event"];function Ys(e,t,s,u,o,n){return s.show?(i(),f(j,{key:0,to:"body"},[t[5]||(t[5]=l("div",{class:"modal-backdrop fade show"},null,-1)),l("div",{class:"modal fade d-block show",role:"dialog",onClick:t[3]||(t[3]=(...a)=>n.handleClick&&n.handleClick(...a))},[l("div",{class:"modal-dialog modal-dialog-centered modal-dialog-scrollable",role:"document",onClick:t[2]||(t[2]=E(()=>{},["stop"]))},[l("div",Gs,[l("div",{class:C(["modal-header","bg-"+s.subtype])},[l("h4",Js,w(s.title),1),s.preventClose?d("",!0):(i(),c("button",{key:0,type:"button",class:"close",onClick:t[0]||(t[0]=(...a)=>n.handleClick&&n.handleClick(...a))}," × "))],2),l("div",Zs,[_(e.$slots,"default",{},()=>[t[4]||(t[4]=h("# Body #",-1))])]),n.myButtons.length>0?(i(),c("div",{key:0,class:C(["modal-footer d-flex","justify-content-"+s.footerAlignment])},[(i(!0),c(M,null,q(n.myButtons,a=>(i(),c("button",{key:a.text,disabled:a.disabled===!0,type:"button",class:C(["btn",(a.disabled?"btn-outline-":"btn-")+(a.subtype??"secondary")]),"data-dismiss":"modal","data-event":a.event?a.event:"close",onClick:t[1]||(t[1]=(...p)=>n.handleClick&&n.handleClick(...p))},w(a.text),11,Qs))),128))],2)):d("",!0)])])])])):d("",!0)}const Xs=S(Ks,[["render",Ys],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseModalDialog.vue"]]),en=Object.freeze(Object.defineProperty({__proto__:null,default:Xs},Symbol.toStringTag,{value:"Module"}));A.add(Pe);const tn={name:"OpenwbNumberInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},precision:{type:Number,default:void 0},emptyValue:{type:[Number,null],required:!1,default:null}},emits:["update:modelValue"],computed:{value:{get(){return this.precision!==void 0?parseFloat(Math.round(this.modelValue*Math.pow(10,this.precision))/Math.pow(10,this.precision)):this.modelValue},set(e){(isNaN(e)||typeof e!="number")&&(e=this.emptyValue),this.$emit("update:modelValue",e)}}}},sn={class:"input-group"},nn={class:"input-group-prepend"},on={class:"input-group-text"},an=["id"],ln={key:0,class:"input-group-append"},rn={class:"input-group-text"},dn={key:1,class:"input-group-append"},un={class:"input-group-text p-0"};function cn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",sn,[l("div",nn,[l("div",on,[b(a,{icon:["fas","calculator"]})])]),O(l("input",$({id:`${e.uid}-number-input`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,an),[[V,n.value,void 0,{lazy:!0,number:!0}]]),s.unit?(i(),c("div",ln,[l("div",rn,w(s.unit),1)])):d("",!0),e.$slots.append?(i(),c("div",dn,[l("div",un,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const pn=S(tn,[["render",cn],["__scopeId","data-v-c2fb7eef"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseNumberInput.vue"]]),mn=Object.freeze(Object.defineProperty({__proto__:null,default:pn},Symbol.toStringTag,{value:"Module"}));A.add(De,Le);const fn={name:"OpenwbRangeInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:Number,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},min:{type:Number,required:!1,default:0},max:{type:Number,required:!1,default:100},step:{type:Number,required:!1,default:1},labels:{type:Array,required:!1,default:void 0}},emits:["update:modelValue"],computed:{label(){var e;return this.labels&&this.sliderValue!=null?this.sliderValue[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",gn,[l("div",hn,[n.label?(i(),c("label",{key:0,class:"col-2 pl-0 col-form-label valueLabel",for:`${e.uid}-button`},w(n.label),9,bn)):d("",!0),l("button",{id:`${e.uid}-button`,class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[0]||(t[0]=(...r)=>n.decrement&&n.decrement(...r))},[b(a,{icon:["fas","step-backward"]})],8,_n),l("div",vn,[O(l("input",$({"onUpdate:modelValue":t[1]||(t[1]=r=>n.sliderValue=r),type:"range",class:"form-control-range rangeInput",min:s.min,max:s.max,step:s.step},e.$attrs),null,16,yn),[[V,n.sliderValue,void 0,{number:!0}]])]),l("button",{class:"col-1 btn btn-block btn-info px-0",type:"button",onClick:t[2]||(t[2]=(...r)=>n.increment&&n.increment(...r))},[b(a,{icon:["fas","step-forward"]})])])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const kn=S(fn,[["render",wn],["__scopeId","data-v-449fb0a5"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseRangeInput.vue"]]),Sn=Object.freeze(Object.defineProperty({__proto__:null,default:kn},Symbol.toStringTag,{value:"Module"}));A.add(N);const Cn={name:"OpenwbSelectInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:void 0},modelValue:{type:[String,Number,Array,null],required:!1,default:void 0},emptyValue:{type:[String,Number,Array],required:!1,default:void 0},groups:{type:Array,required:!1,default:void 0},options:{type:Array,required:!1,default:void 0},notSelected:{type:String,default:void 0},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],computed:{value:{get(){return this.modelValue},set(e){this.$emit("update:modelValue",e)}},addDisabled:{get(){return this.value===void 0}}},methods:{addClicked(){this.addDisabled||this.$emit("input:add")}}},Bn={class:"w-100"},$n={class:"input-group"},In={key:0,class:"input-group-prepend"},On={class:"input-group-text"},An=["id"],Tn=["value"],Mn=["value"],Vn=["label"],qn=["value"],Pn={key:1,class:"input-group-append"};function Dn(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({default:m(()=>[l("div",Bn,[l("div",$n,[e.$slots.prefix?(i(),c("div",In,[l("div",On,[_(e.$slots,"prefix")])])):d("",!0),O(l("select",$({id:`${e.uid}-select`,"onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"col form-control"},e.$attrs),[s.notSelected!==void 0?(i(),c("option",{key:0,value:s.emptyValue,disabled:""}," -- "+w(s.notSelected)+" -- ",9,Tn)):d("",!0),(i(!0),c(M,null,q(s.options,r=>(i(),c("option",{key:r.value,value:r.value},w(r.text),9,Mn))),128)),(i(!0),c(M,null,q(s.groups,r=>(i(),c("optgroup",{key:r.label,label:r.label},[(i(!0),c(M,null,q(r.options,v=>(i(),c("option",{key:v.value,value:v.value},w(v.text),9,qn))),128))],8,Vn))),128))],16,An),[[Q,n.value]]),s.addButton?(i(),c("div",Pn,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[1]||(t[1]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})])],2)])):d("",!0)])])]),_:2},[e.$slots.title||s.title?{name:"title",fn:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)])]),key:"0"}:void 0,e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help")]),key:"1"}:void 0]),1024)}const Ln=S(Cn,[["render",Dn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSelectInput.vue"]]),En=Object.freeze(Object.defineProperty({__proto__:null,default:Ln},Symbol.toStringTag,{value:"Module"}));A.add(U,Ee,xe);const xn={name:"OpenwbSubmitButtons",components:{FontAwesomeIcon:T},props:{formName:{type:String,default:void 0},hideReset:{type:Boolean,default:!1},hideDefaults:{type:Boolean,default:!0},saveLabel:{type:String,default:"Speichern"},saveDisabled:{type:Boolean,default:!1},saveId:{type:String,default:"saveSettingsBtn"},resetLabel:{type:String,default:"Änderungen verwerfen"},resetDisabled:{type:Boolean,default:!1},resetId:{type:String,default:"modalResetBtn"},defaultsLabel:{type:String,default:"Werkseinstellungen"},defaultsDisabled:{type:Boolean,default:!1},defaultsId:{type:String,default:"modalDefaultsBtn"}},emits:["reset","defaults","save"],data(){return{showModalReset:!1,showModalDefaults:!1}},computed:{showModalSave(){return this.$store.state.local.savingData}},methods:{showResetModal(){this.showModalReset=!0},handleModalReset(e){this.showModalReset=!1,e=="confirm"&&this.$emit("reset")},showDefaultsModal(){this.showModalDefaults=!0},handleModalDefaults(e){this.showModalDefaults=!1,e=="confirm"&&this.$emit("defaults")},saveSettings(){if(this.formName){if(!document.forms[this.formName].reportValidity()){console.debug("form invalid");return}}else console.debug("no form to validate");this.$emit("save")}}},Rn={class:"row justify-content-center mb-1"},Wn={class:"col-md-4 d-flex py-1 justify-content-center"},jn=["id","disabled"],zn={key:0,class:"col-md-4 d-flex py-1 justify-content-center"},Nn=["id","disabled"],Un={key:1,class:"col-md-4 d-flex py-1 justify-content-center"},Fn=["id","disabled"];function Hn(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog"),p=g("font-awesome-icon");return i(),c(M,null,[b(a,{show:n.showModalSave,title:"Speichern",subtype:"success","prevent-close":!0},{default:m(()=>[...t[3]||(t[3]=[h(" Einstellungen werden gespeichert... ",-1)])]),_:1},8,["show"]),b(a,{show:o.showModalReset,title:"Änderungen verwerfen",subtype:"warning",buttons:[{text:"Ok",event:"confirm",subtype:"warning"}],onModalResult:n.handleModalReset},{default:m(()=>[...t[4]||(t[4]=[h(" Willst Du die nicht gespeicherten Änderungen wirklich verwerfen? ",-1)])]),_:1},8,["show","onModalResult"]),b(a,{show:o.showModalDefaults,title:"Werkseinstellungen",subtype:"danger",buttons:[{text:"Ok",event:"confirm",subtype:"danger"}],onModalResult:n.handleModalDefaults},{default:m(()=>[...t[5]||(t[5]=[h(" Willst Du wirklich alle Werte dieser Seite auf die Werkseinstellungen zurücksetzen? ",-1)])]),_:1},8,["show","onModalResult"]),l("div",Rn,[l("div",Wn,[l("button",{id:s.saveId,type:"button",class:C(["btn btn-block",[{disabled:s.saveDisabled},s.saveDisabled?"btn-outline-success":"btn-success"]]),disabled:s.saveDisabled,onClick:t[0]||(t[0]=(...r)=>n.saveSettings&&n.saveSettings(...r))},[h(w(s.saveLabel)+" ",1),b(p,{icon:["fas","check"]})],10,jn)]),s.hideReset?d("",!0):(i(),c("div",zn,[l("button",{id:s.resetId,type:"button",class:C(["btn btn-block",[{disabled:s.resetDisabled},s.resetDisabled?"btn-outline-warning":"btn-warning"]]),disabled:s.resetDisabled,onClick:t[1]||(t[1]=(...r)=>n.showResetModal&&n.showResetModal(...r))},[h(w(s.resetLabel)+" ",1),b(p,{icon:["fas","undo"]})],10,Nn)])),s.hideDefaults?d("",!0):(i(),c("div",Un,[l("button",{id:s.defaultsId,type:"button",class:C(["btn btn-block",[{disabled:s.defaultsDisabled},s.defaultsDisabled?"btn-outline-danger":"btn-danger"]]),disabled:s.defaultsDisabled,onClick:t[2]||(t[2]=(...r)=>n.showDefaultsModal&&n.showDefaultsModal(...r))},[h(w(s.defaultsLabel)+" ",1),b(p,{icon:["fas","times"]})],10,Fn)]))])],64)}const Kn=S(xn,[["render",Hn],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseSubmitButtons.vue"]]),Gn=Object.freeze(Object.defineProperty({__proto__:null,default:Kn},Symbol.toStringTag,{value:"Module"}));A.add(ee,Re,We,je,ze,Ne,te,Ue,Fe,He,Ke,N,Ge,Je);const Jn={name:"OpenwbTextInput",components:{FontAwesomeIcon:T,OpenwbBaseSettingElement:D},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","email","host","url","user","group","json","password","time","date","month","year"].indexOf(e)!==-1},default:"text"},pattern:{type:String,required:!1,default:void 0},unit:{type:String,required:!1,default:void 0},emptyValue:{type:[String,Object,null],required:!1,default:null},validator:{type:Function,required:!1,default:null},showQuickButtons:{type:Boolean,default:!1},addButton:{type:Boolean,default:!1}},emits:["update:modelValue","input:add"],data(){return{showPassword:!1,inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.warn("returning invalid String"),this.tempValue):JSON.stringify(this.tempValue):this.modelValue},set(e){if(this.validator){console.log("Validating input value:",e);const t=this.validator(e);console.log("Validation result:",t);const s=this.inputRef;t!==!0?(console.log("Marking input as invalid",JSON.stringify(this.$refs)),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(t),this.inputInvalid=!0,this.tempValue=e):(console.log("Input is valid"),s&&typeof s.setCustomValidity=="function"&&s.setCustomValidity(""),this.inputInvalid=!1)}if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.error("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else e==""&&(e=this.emptyValue),this.$emit("update:modelValue",e)}},inputRef(){switch(this.subtype){case"json":return this.$refs.jsonInput;case"password":return this.$refs.passwordInput;case"host":return this.$refs.hostInput;case"email":case"url":return this.$refs.urlInput;case"time":return this.$refs.timeInput;case"date":return this.$refs.dateInput;case"month":return this.$refs.monthInput;case"year":return this.$refs.yearInput}return this.$refs.textInput},hostPattern(){return"(^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$)|(^(?=.*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9])$)|(^((?=[^.]*[a-zA-Z][^.]*\\.)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]\\.))+((?=[^.]*[a-zA-Z].*$)([a-zA-Z0-9][a-zA-Z0-9\\-]*[a-zA-Z0-9]))$)"},addDisabled:{get(){return this.value===this.emptyValue}}},methods:{togglePassword(){this.showPassword=!this.showPassword},modify(e){var t,s=new Date(this.modelValue);switch(this.subtype){case"date":s.setDate(s.getDate()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0")+"-"+String(s.getDate()).padStart(2,"0");break;case"month":s.setMonth(s.getMonth()+e),t=String(s.getFullYear())+"-"+String(s.getMonth()+1).padStart(2,"0");break;case"year":s.setYear(s.getFullYear()+e),t=String(s.getFullYear());break;default:console.warn(`cannot modify input of subtype '${this.subtype}'`);return}t>this.inputRef.max||t[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",Zn,[l("div",Qn,[l("div",Yn,[l("div",Xn,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="email"?(i(),f(a,{key:1,icon:["fas","envelope"]})):d("",!0),s.subtype=="host"?(i(),f(a,{key:2,icon:["fas","network-wired"]})):d("",!0),s.subtype=="url"?(i(),f(a,{key:3,icon:["fas","globe"]})):d("",!0),s.subtype=="user"?(i(),f(a,{key:4,icon:["fas","user"]})):d("",!0),s.subtype=="group"?(i(),f(a,{key:5,icon:["fas","users"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:6,icon:["fas","code"]})):d("",!0),s.subtype=="password"?(i(),f(a,{key:7,icon:o.showPassword?["fas","unlock"]:["fas","lock"]},null,8,["icon"])):d("",!0),s.subtype=="time"?(i(),f(a,{key:8,icon:["fas","clock"]})):d("",!0),s.subtype=="date"||s.subtype=="month"||s.subtype=="year"?(i(),f(a,{key:9,icon:["fas","calendar-day"]})):d("",!0)])]),["text","user","group"].includes(s.subtype)?O((i(),c("input",$({key:0,id:`${e.uid}-text-input`,ref:"textInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),type:"text",class:["form-control",{invalid:o.inputInvalid}]},e.$attrs,{pattern:s.pattern}),null,16,eo)),[[V,n.value]]):d("",!0),s.subtype=="json"?O((i(),c("input",$({key:1,id:`${e.uid}-json-input`,ref:"jsonInput","onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,to)),[[V,n.value]]):d("",!0),s.subtype=="password"?O((i(),c("input",$({key:2,id:`${e.uid}-password-input`,ref:"passwordInput","onUpdate:modelValue":t[2]||(t[2]=r=>n.value=r),type:o.showPassword?"text":"password",class:"form-control"},e.$attrs,{pattern:s.pattern}),null,16,so)),[[G,n.value]]):d("",!0),s.subtype=="host"?O((i(),c("input",$({key:3,id:`${e.uid}-host-input`,ref:"hostInput","onUpdate:modelValue":t[3]||(t[3]=r=>n.value=r),type:"text",class:"form-control"},e.$attrs,{pattern:n.hostPattern}),null,16,no)),[[V,n.value]]):d("",!0),["email","url"].includes(s.subtype)?O((i(),c("input",$({key:4,id:`${e.uid}-url-input`,ref:"urlInput","onUpdate:modelValue":t[4]||(t[4]=r=>n.value=r),type:s.subtype,class:"form-control"},e.$attrs),null,16,oo)),[[G,n.value]]):d("",!0),s.subtype=="time"?O((i(),c("input",$({key:5,id:`${e.uid}-time-input`,ref:"timeInput","onUpdate:modelValue":t[5]||(t[5]=r=>n.value=r),type:"time",class:"form-control"},e.$attrs),null,16,io)),[[V,n.value]]):d("",!0),s.subtype=="date"?O((i(),c("input",$({key:6,id:`${e.uid}-date-input`,ref:"dateInput","onUpdate:modelValue":t[6]||(t[6]=r=>n.value=r),type:"date",class:"form-control"},e.$attrs),null,16,ao)),[[V,n.value]]):d("",!0),s.subtype=="month"?O((i(),c("input",$({key:7,id:`${e.uid}-month-input`,ref:"monthInput","onUpdate:modelValue":t[7]||(t[7]=r=>n.value=r),type:"month",class:"form-control"},e.$attrs),null,16,lo)),[[V,n.value]]):d("",!0),s.subtype=="year"?O((i(),c("input",$({key:8,id:`${e.uid}-year-input`,ref:"yearInput","onUpdate:modelValue":t[8]||(t[8]=r=>n.value=r),type:"number",class:"form-control"},e.$attrs),null,16,ro)),[[V,n.value]]):d("",!0),s.unit?(i(),c("div",uo,[l("div",co,w(s.unit),1)])):d("",!0),s.subtype=="password"?(i(),c("div",{key:10,class:"input-group-append clickable",onClick:t[9]||(t[9]=(...r)=>n.togglePassword&&n.togglePassword(...r))},[l("div",po,[b(a,{icon:o.showPassword?["far","eye"]:["far","eye-slash"]},null,8,["icon"])])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:11,class:"input-group-append clickable",onClick:t[10]||(t[10]=r=>n.modify(-1))},[...t[13]||(t[13]=[l("div",{class:"input-group-text"},"-",-1)])])):d("",!0),s.showQuickButtons&&(s.subtype=="date"||s.subtype=="month"||s.subtype=="year")?(i(),c("div",{key:12,class:"input-group-append clickable",onClick:t[11]||(t[11]=r=>n.modify(1))},[...t[14]||(t[14]=[l("div",{class:"input-group-text"},"+",-1)])])):d("",!0),s.addButton?(i(),c("div",mo,[l("div",{class:C(["input-group-text",n.addDisabled?"not-clickable":"bg-success clickable"]),onClick:t[12]||(t[12]=r=>n.addClicked())},[_(e.$slots,"inputAdd",{},()=>[b(a,{icon:["fas","plus"]})],!0)],2)])):d("",!0),e.$slots.append?(i(),c("div",fo,[l("div",go,[_(e.$slots,"append",{},void 0,!0)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const bo=S(Jn,[["render",ho],["__scopeId","data-v-6927d479"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextInput.vue"]]),_o=Object.freeze(Object.defineProperty({__proto__:null,default:bo},Symbol.toStringTag,{value:"Module"}));A.add(ee,te);const vo={name:"OpenwbTextareaInput",components:{OpenwbBaseSettingElement:D,FontAwesomeIcon:T},mixins:[L],inheritAttrs:!1,props:{title:{type:String,required:!1,default:""},modelValue:{type:[String,Object],required:!1,default:void 0},subtype:{validator:function(e){return["text","json"].indexOf(e)!==-1},default:"text"}},emits:["update:modelValue"],data(){return{inputInvalid:!1,tempValue:this.modelValue}},computed:{value:{get(){return this.subtype=="json"?this.inputInvalid?(console.debug("returning invalid JSON as String"),this.tempValue):JSON.stringify(this.tempValue,void 0,2):this.modelValue},set(e){if(this.subtype=="json")try{let t=JSON.parse(e);this.inputInvalid=!1,this.$refs.jsonInput.setCustomValidity(""),this.tempValue=t,this.$emit("update:modelValue",t)}catch(t){console.warn("parsing JSON failed: "+e,t),this.inputInvalid=!0,this.$refs.jsonInput.setCustomValidity("Ungültiger JSON Ausdruck!"),this.tempValue=e}else this.$emit("update:modelValue",e)}},length:{get(){return this.value!==void 0?this.value.length:0}}}},yo={class:"w-100"},wo={class:"input-group"},ko={class:"input-group-prepend"},So={class:"input-group-text"},Co=["id"],Bo=["id"],$o={key:2,class:"input-group-append"},Io={class:"input-group-text"},Oo={class:"form-text text-muted text-right"};function Ao(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("openwb-base-setting-element");return i(),f(p,null,P({title:m(()=>[_(e.$slots,"title",{},()=>[h(w(s.title),1)],!0)]),default:m(()=>[l("div",yo,[l("div",wo,[l("div",ko,[l("div",So,[s.subtype=="text"?(i(),f(a,{key:0,icon:["fas","keyboard"]})):d("",!0),s.subtype=="json"?(i(),f(a,{key:1,icon:["fas","code"]})):d("",!0)])]),s.subtype==="json"?O((i(),c("textarea",$({key:0,id:`${e.uid}-textarea`,ref:"jsonInput","onUpdate:modelValue":t[0]||(t[0]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Co)),[[V,n.value,void 0,{lazy:!0}]]):O((i(),c("textarea",$({key:1,id:`${e.uid}-textarea`,"onUpdate:modelValue":t[1]||(t[1]=r=>n.value=r),class:"form-control"},e.$attrs),null,16,Bo)),[[V,n.value]]),e.$attrs.maxlength?(i(),c("div",$o,[l("div",Io,[l("small",Oo,w(n.length)+" / "+w(e.$attrs.maxlength),1)])])):d("",!0)])])]),_:2},[e.$slots.help?{name:"help",fn:m(()=>[_(e.$slots,"help",{},void 0,!0)]),key:"0"}:void 0]),1024)}const To=S(vo,[["render",Ao],["__scopeId","data-v-3d93046b"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTextarea.vue"]]),Mo=Object.freeze(Object.defineProperty({__proto__:null,default:To},Symbol.toStringTag,{value:"Module"})),Vo={name:"OpenwbToast",props:{topic:{type:String,required:!0},subtype:{validator:function(e){return["info","success","warning","danger","primary","secondary","light","dark"].indexOf(e)!==-1},default:"secondary"},source:{type:String,required:!0,validator:function(e){return["system","client","command"].indexOf(e)!==-1}},timestamp:{type:Number,required:!0}},emits:["dismiss","hide"],data(){return{handle:void 0,relativeTime:void 0,hidden:!1}},mounted(){this.handle=window.setInterval(this.updateRelativeTime,1e3)},unmounted(){window.clearInterval(this.handle)},methods:{dismiss(){this.$emit("dismiss",{topic:this.topic})},updateRelativeTime(){const e={year:31536e6,month:2628e6,day:864e5,hour:36e5,minute:6e4,second:1e3};var t=new Intl.RelativeTimeFormat("de",{numeric:"auto"});const u=new Date-this.timestamp*1e3;for(var o in e)if(Math.abs(u)>e[o]){this.relativeTime=t.format(Math.round(-u/e[o]),o);break}u>10*1e3&&!this.hidden&&(this.hidden=!0,this.$emit("hide",{topic:this.topic}))}}},qo={key:0,class:"time-diff"},Po={class:"toast-body"};function Do(e,t,s,u,o,n){return i(),c("div",{class:C(["toast","border-"+s.subtype]),role:"alert"},[l("div",{class:C(["toast-header","bg-"+s.subtype])},[t[2]||(t[2]=l("strong",{class:"pr-2 mr-auto"},"openWB",-1)),s.timestamp?(i(),c("small",qo,w(o.relativeTime),1)):d("",!0),l("button",{type:"button",class:"ml-2 mb-1 close","data-dismiss":"toast","aria-label":"Close",onClick:t[0]||(t[0]=(...a)=>n.dismiss&&n.dismiss(...a))},[...t[1]||(t[1]=[l("span",{"aria-hidden":"true"},"×",-1)])])],2),l("div",Po,[_(e.$slots,"default",{},void 0,!0)])],2)}const Lo=S(Vo,[["render",Do],["__scopeId","data-v-c51b5764"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseToast.vue"]]),Eo=Object.freeze(Object.defineProperty({__proto__:null,default:Lo},Symbol.toStringTag,{value:"Module"})),xo={name:"OpenwbTooltip",props:{description:{type:String,default:"#TOOLTIP#"},addHint:{type:Boolean,default:!1}}},Ro=["title"];function Wo(e,t,s,u,o,n){return i(),c("div",{class:C(["base-text",{dotted:s.addHint}]),title:s.description},[_(e.$slots,"default",{},void 0,!0)],10,Ro)}const jo=S(xo,[["render",Wo],["__scopeId","data-v-c65a1128"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbBaseTooltip.vue"]]),zo=Object.freeze(Object.defineProperty({__proto__:null,default:jo},Symbol.toStringTag,{value:"Module"})),No={name:"ComponentState",emits:["reset","defaults","save"],data(){return{mqttTopics:[],weekdays:["Montag","Dienstag","Mittwoch","Donnerstag","Freitag","Samstag","Sonntag"],chargeModes:["instant_charging","pv_charging","scheduled_charging","time_charging","eco_charging","stop"],statusLevel:["success","warning","danger"]}},computed:{mqttTopicsToSubscribe(){return this.mqttTopics.map(e=>e.topic)},mqttTopicsToPublish(){return this.mqttTopics.filter(e=>e.writeable).map(e=>e.topic)}},mounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doSubscribe(this.mqttTopicsToSubscribe)},unmounted(){this.mqttTopicsToSubscribe.length>0&&this.$root.doUnsubscribe(this.mqttTopicsToSubscribe)},methods:{updateState(e,t,s=void 0){console.debug("updateState:",e,t,s),this.$store.commit({type:"updateTopic",topic:e,objectPath:s,payload:t})},ac_current2dc_power(e){return parseFloat((e*3*230/1e3).toFixed(0))},dc_power2ac_current(e){return parseFloat((e*1e3/230/3).toFixed(2))},getWildcardIndexList(e,t=!1){let s=e;t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$");let u=Object.keys(this.$store.state.mqtt).filter(o=>o.match(s));return u.forEach((o,n,a)=>{a[n]=parseInt(o.match(/(?:\/)([0-9]+)(?=\/)*/g)[0].replace(/[^0-9]+/g,""))}),u},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})},formatDate(e,t={year:"numeric",month:"2-digit",day:"2-digit"}){return new Date(e).toLocaleDateString(void 0,t)},formatNumber(e,t=0,s=t,u=1){if(!(e==null||isNaN(e)))return e=e*u,e.toLocaleString(void 0,{minimumFractionDigits:t,maximumFractionDigits:s})},formatNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.formatNumber(this.$store.state.mqtt[e],t,s,u):"-"},formatPhaseArrayNumberTopic(e,t=0,s=t,u=1){return this.$store.state.mqtt[e]?this.$store.state.mqtt[e].map(o=>this.formatNumber(o,t,s,u)):["-","-","-"]},translateChargeMode(e){return{instant_charging:"Sofort",pv_charging:"PV",scheduled_charging:"Zielladen",time_charging:"Zeitladen",eco_charging:"Eco",standby:"Standby",stop:"Stop"}[e]||e}}},z=S(No,[["__file","/opt/openWB-dev/openwb-ui-settings/src/components/mixins/ComponentState.vue"]]);A.add(Ze);const Uo={name:"OpenwbNavBar",components:{FontAwesomeIcon:T},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/security/access/+",writeable:!1}]}},computed:{nodeEnv(){return"development"},accessAllowed(){return e=>this.$store.state.mqtt[`openWB/system/security/access/${e}`]===!0}},watch:{$route(){this.$refs.collapsibleNavbar.classList.remove("show"),this.$refs.navbarButton.classList.add("collapsed"),this.$refs.navbarButton.setAttribute("aria-expanded",!1)}}},Fo={class:"navbar navbar-expand-xl bg-dark navbar-dark fixed-top"},Ho={ref:"navbarButton",class:"navbar-toggler mr-auto",type:"button","data-toggle":"collapse","data-target":"#collapsibleNavbar"},Ko={id:"collapsibleNavbar",ref:"collapsibleNavbar",class:"collapse navbar-collapse navbar-nav-scroll"},Go={class:"navbar-nav mr-auto"},Jo={key:0,class:"nav-item"},Zo={class:"nav-item dropdown nav-separator-before"},Qo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},Yo={class:"nav-item dropdown nav-separator-before"},Xo={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ei={class:"nav-item dropdown"},ti={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},si={class:"nav-item dropdown"},ni={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},oi={key:5,class:"dropdown-divider"},ii={key:6,href:"modules/legacy_smart_home/smarthomeconfig.php",class:"dropdown-item",target:"_blank"},ai={class:"nav-item dropdown"},li={class:"dropdown-menu","aria-labelledby":"navbarDropdown"},ri={class:"nav-item nav-separator-before"},di={class:"nav-link",href:"https://wiki.openwb.de/",target:"_blank"};function ui(e,t,s,u,o,n){const a=g("router-link"),p=g("font-awesome-icon");return i(),c("nav",Fo,[t[30]||(t[30]=l("a",{class:"navbar-brand",href:"/openWB/web/"},[l("span",null,"openWB")],-1)),l("button",Ho,[...t[0]||(t[0]=[l("span",{class:"navbar-toggler-icon"},null,-1)])],512),l("div",Ko,[l("ul",Go,[n.accessAllowed("Status")?(i(),c("li",Jo,[b(a,{to:"/Status",class:"nav-link","active-class":"active disabled"},{default:m(()=>[...t[1]||(t[1]=[h(" Status ",-1)])]),_:1})])):d("",!0),l("li",Zo,[t[4]||(t[4]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Auswertungen ",-1)),l("div",Qo,[n.accessAllowed("ChargeLog")?(i(),f(a,{key:0,to:"/Logging/ChargeLog",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[2]||(t[2]=[h(" Ladeprotokoll ",-1)])]),_:1})):d("",!0),n.accessAllowed("Chart")?(i(),f(a,{key:1,to:"/Logging/Chart",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[3]||(t[3]=[h(" Diagramme ",-1)])]),_:1})):d("",!0)])]),l("li",Yo,[t[8]||(t[8]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Einstellungen ",-1)),l("div",Xo,[n.accessAllowed("GeneralConfiguration")?(i(),f(a,{key:0,to:"/GeneralConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[5]||(t[5]=[h(" Allgemein ",-1)])]),_:1})):d("",!0),n.accessAllowed("DisplayConfiguration")?(i(),f(a,{key:1,to:"/DisplayConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[6]||(t[6]=[h(" Display ",-1)])]),_:1})):d("",!0),n.accessAllowed("IdentificationConfiguration")?(i(),f(a,{key:2,to:"/IdentificationConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[7]||(t[7]=[h(" Identifikation ",-1)])]),_:1})):d("",!0)])]),l("li",ei,[t[12]||(t[12]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Ladeeinstellungen ",-1)),l("div",ti,[n.accessAllowed("GeneralChargeConfiguration")?(i(),f(a,{key:0,to:"/GeneralChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[9]||(t[9]=[h(" Übergreifendes ",-1)])]),_:1})):d("",!0),n.accessAllowed("SurplusChargeConfiguration")?(i(),f(a,{key:1,to:"/SurplusChargeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[10]||(t[10]=[h(" Überschuss-Laden ",-1)])]),_:1})):d("",!0),n.accessAllowed("ActiveBatControlConfiguration")?(i(),f(a,{key:2,to:"/ActiveBatControlConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[11]||(t[11]=[h(" Speichersteuerung ",-1)])]),_:1})):d("",!0)])]),l("li",si,[t[18]||(t[18]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," Konfiguration ",-1)),l("div",ni,[n.accessAllowed("HardwareInstallation")?(i(),f(a,{key:0,to:"/HardwareInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[13]||(t[13]=[h(" Geräte und Komponenten ",-1)])]),_:1})):d("",!0),n.accessAllowed("LoadManagementConfiguration")?(i(),f(a,{key:1,to:"/LoadManagementConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[14]||(t[14]=[h(" Lastmanagement ",-1)])]),_:1})):d("",!0),n.accessAllowed("ChargePointInstallation")?(i(),f(a,{key:2,to:"/ChargePointInstallation",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[15]||(t[15]=[h(" Ladepunkte ",-1)])]),_:1})):d("",!0),n.accessAllowed("VehicleConfiguration")?(i(),f(a,{key:3,to:"/VehicleConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[16]||(t[16]=[h(" Fahrzeuge ",-1)])]),_:1})):d("",!0),n.accessAllowed("IoConfiguration")?(i(),f(a,{key:4,to:"/IoConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[17]||(t[17]=[h(" Ein-/Ausgänge ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("div",oi)):d("",!0),n.accessAllowed("LegacySmartHomeConfiguration")?(i(),c("a",ii," SmartHome ")):d("",!0)])]),l("li",ai,[t[28]||(t[28]=l("a",{class:"nav-link dropdown-toggle",href:"#",role:"button","data-toggle":"dropdown","aria-expanded":"false"}," System ",-1)),l("div",li,[n.accessAllowed("InstallAssistant")?(i(),f(a,{key:0,to:"/System/InstallAssistant",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[19]||(t[19]=[h(" Einrichtungsassistent ",-1)])]),_:1})):d("",!0),n.accessAllowed("CloudConfiguration")?(i(),f(a,{key:1,to:"/System/CloudConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[20]||(t[20]=[h(" openWB Cloud ",-1)])]),_:1})):d("",!0),n.accessAllowed("MqttBridgeConfiguration")?(i(),f(a,{key:2,to:"/System/MqttBridgeConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[21]||(t[21]=[h(" MQTT-Brücken ",-1)])]),_:1})):d("",!0),n.accessAllowed("DebugConfiguration")?(i(),f(a,{key:3,to:"/System/DebugConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[22]||(t[22]=[h(" Fehlersuche ",-1)])]),_:1})):d("",!0),n.accessAllowed("Support")?(i(),f(a,{key:4,to:"/System/Support",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[23]||(t[23]=[h(" Support ",-1)])]),_:1})):d("",!0),n.accessAllowed("DataManagement")?(i(),f(a,{key:5,to:"/System/DataManagement",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[24]||(t[24]=[h(" Datenverwaltung ",-1)])]),_:1})):d("",!0),n.accessAllowed("SecurityConfiguration")?(i(),f(a,{key:6,to:"/System/SecurityConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[25]||(t[25]=[h(" Sicherheit ",-1)])]),_:1})):d("",!0),n.accessAllowed("SystemConfiguration")?(i(),f(a,{key:7,to:"/System/SystemConfiguration",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[26]||(t[26]=[h(" System ",-1)])]),_:1})):d("",!0),n.accessAllowed("LegalSettings")?(i(),f(a,{key:8,to:"/System/LegalSettings",class:"dropdown-item","active-class":"active disabled"},{default:m(()=>[...t[27]||(t[27]=[h(" Rechtliches ",-1)])]),_:1})):d("",!0)])]),l("li",ri,[l("a",di,[t[29]||(t[29]=h(" Wiki ",-1)),b(p,{icon:["fas","external-link-alt"]})])])])],512),t[31]||(t[31]=l("div",{class:"ml-auto d-flex flex-row align-items-center"},[l("div",{id:"info-target"}),l("div",{id:"user-target"}),l("div",{id:"message-target"})],-1))])}const ci=S(Uo,[["render",ui],["__scopeId","data-v-e7a6d0c0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageNavbar.vue"]]),pi={name:"OpenwbPageFooter"},mi={id:"footer",class:"footer bg-dark text-light font-small"},fi={class:"container text-center"};function gi(e,t,s,u,o,n){return i(),c("footer",mi,[l("div",fi,[l("small",null," Du befindest dich hier: Einstellungen / "+w(e.$route.meta.heading),1)])])}const hi=S(pi,[["render",gi],["__scopeId","data-v-3c9a239a"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageFooter.vue"]]);A.add(Qe,Ye,Xe,et);const bi={name:"OpenwbPageUser",components:{FontAwesomeIcon:T,FontAwesomeLayers:se},mixins:[z],emits:["sendCommand"],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/dataprotection_acknowledged",writeable:!1},{topic:"openWB/system/security/access_allowed",writeable:!1},{topic:"openWB/system/security/user_management_active",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],showLoginModal:!1,showPasswordResetModal:!1,showLogoutModal:!1,username:"",password:"",token:"",passwordConfirm:"",tokenRequested:!1,passwordResetRequested:!1,smallScreen:!1}},computed:{loggedInUser(){return this.$store.state.local.username||null},userManagementActive(){return this.$store.state.mqtt["openWB/system/security/user_management_active"]===!0},accessAllowed(){return this.$store.state.mqtt["openWB/system/security/access_allowed"]===void 0?!1:this.$store.state.mqtt["openWB/system/security/access_allowed"]===!0},anonymousAccessAllowed(){return this.accessAllowed&&this.loggedInUser===null},dataProtectionAcknowledged(){return this.$store.state.mqtt["openWB/system/dataprotection_acknowledged"]===!0},loginButtons(){let e=[{text:"Anmelden",event:"login",subtype:"success",disabled:this.stringIsEmpty(this.username)||this.stringIsEmpty(this.password)}];return this.dataProtectionAcknowledged&&e.push({text:"Kennwort vergessen",event:"forgot_password",subtype:"warning"}),e},requestTokenDisabled(){return this.stringIsEmpty(this.username)||this.tokenRequested},resetPasswordDisabled(){return this.stringIsEmpty(this.username)||this.stringIsEmpty(this.token)||this.stringIsEmpty(this.password)||this.stringIsEmpty(this.passwordConfirm)||this.password!==this.passwordConfirm||this.passwordResetRequested},modalBlockerVisible(){return this.$store.state.local.modalBlockerVisible===!0}},watch:{userManagementActive(){this.checkAutoLogin()},loggedInUser(e){e&&this.checkAutoLogin()},accessAllowed(){this.checkAutoLogin()},modalBlockerVisible(){this.checkAutoLogin()}},mounted(){me(()=>{this.checkAutoLogin()})},beforeMount(){window.addEventListener("resize",this.updateScreenSize),this.updateScreenSize()},beforeUnmount(){window.removeEventListener("resize",this.updateScreenSize)},methods:{updateScreenSize(){this.smallScreen=window.innerWidth<576},stringIsEmpty(e){return!e||e.length===0},checkAutoLogin(){console.debug("Checking auto login: ",this.userManagementActive,this.accessAllowed,this.loggedInUser),this.userManagementActive&&!this.accessAllowed&&!this.modalBlockerVisible?this.showLoginModal=!0:this.showLoginModal=!1},doLogin(e){switch(e){case"login":if(!this.username||!this.password){this.$root.postClientMessage("Benutzername und Passwort erforderlich.","danger");return}this.$cookies.set("mqtt",`${this.username}:${this.password}`),this.$root.reconnectMqttClient(),location.reload();break;case"forgot_password":console.warn("Password reset requested for user:",this.username),this.showLoginModal=!1,this.username="",this.password="",this.showPasswordResetModal=!0;break;default:this.showLoginModal=!1,this.username="",this.password=""}},processResetResult(e){switch(console.log("Password reset modal result:",e),e){case"request_token":if(!this.username){this.$root.postClientMessage("Benutzername erforderlich.","danger");return}console.warn("Requesting password reset token for:",this.username),this.tokenRequested=!0,this.$emit("sendCommand",{command:"createPasswordResetToken",data:{username:this.username}});break;case"reset_password":if(!this.username||!this.token||!this.password||!this.passwordConfirm||this.password!==this.passwordConfirm){this.$root.postClientMessage("Benutzername, Token und neues Kennwort erforderlich.","danger");return}console.warn("Resetting password for:",this.username,"with token:",this.token,"and new password:",this.password),this.passwordResetRequested=!0,this.$root.postClientMessage("Das Token wird geprüft und bei Erfolg das Passwort zurückgesetzt. Dieser Vorgang dauert ein paar Sekunden.","info"),this.$emit("sendCommand",{command:"resetUserPassword",data:{username:this.username,token:this.token,newPassword:this.password}});break;case"close":this.showPasswordResetModal=!1,this.username="",this.password="",this.token="",this.passwordConfirm="",this.tokenRequested=!1,this.passwordResetRequested=!1,this.showLoginModal=!0;return}},doLogout(e){this.showLogoutModal=!1,e==="confirm"&&(console.warn("Logging out user"),this.$cookies.remove("mqtt"),this.$root.reconnectMqttClient(),location.reload())}}},_i={id:"user-indicator",class:"ml-2"},vi={key:0,class:"pill bg-primary"},yi={key:0,class:"non-selectable"},wi={key:1,class:"pill bg-secondary"},ki={name:"loginForm"},Si={name:"requestTokenForm"};function Ci(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-tooltip"),r=g("FontAwesomeLayers"),v=g("openwb-base-modal-dialog"),k=g("openwb-base-text-input");return i(),c(M,null,[n.userManagementActive===!0?(i(),f(j,{key:0,defer:"",to:"#user-target"},[l("div",_i,[n.loggedInUser?(i(),c("span",vi,[b(p,{description:`Angemeldet als ${n.loggedInUser}`},{default:m(()=>[b(a,{icon:["fas","circle-user"],size:"lg"}),o.smallScreen?d("",!0):(i(),c("span",yi,w(n.loggedInUser),1))]),_:1},8,["description"]),b(p,{description:"Abmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-from-bracket"],size:"lg",onClick:t[0]||(t[0]=y=>o.showLogoutModal=!0)})]),_:1})])):(i(),c("span",wi,[b(p,{description:"Nicht angemeldet"},{default:m(()=>[b(r,null,{default:m(()=>[b(a,{icon:["fas","circle-user"]}),b(a,{icon:["fas","ban"],color:"red"})]),_:1})]),_:1}),b(p,{description:"Anmelden"},{default:m(()=>[b(a,{class:"text-light clickable px-2",icon:["fas","arrow-right-to-bracket"],size:"lg",onClick:t[1]||(t[1]=y=>o.showLoginModal=!0)})]),_:1})]))])])):d("",!0),n.userManagementActive?(i(),f(v,{key:1,show:o.showLogoutModal,title:"Abmelden",subtype:"warning",buttons:[{text:"Abmelden",event:"confirm",subtype:"danger"}],onModalResult:t[2]||(t[2]=y=>n.doLogout(y))},{default:m(()=>[...t[11]||(t[11]=[l("p",null,"Willst Du Dich wirklich abmelden?",-1)])]),_:1},8,["show"])):d("",!0),n.userManagementActive?(i(),f(v,{key:2,show:o.showLoginModal,"prevent-close":!n.anonymousAccessAllowed,title:"Anmelden",subtype:"success",buttons:n.loginButtons,onModalResult:t[5]||(t[5]=y=>n.doLogin(y))},{default:m(()=>[l("form",ki,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[3]||(t[3]=y=>o.username=y),title:"Benutzername",subtype:"user",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[4]||(t[4]=y=>o.password=y),title:"Passwort",subtype:"password",required:"",autocomplete:"current-password"},null,8,["modelValue"])])]),_:1},8,["show","prevent-close","buttons"])):d("",!0),n.userManagementActive&&n.dataProtectionAcknowledged?(i(),f(v,{key:3,show:o.showPasswordResetModal,title:"Kennwort zurücksetzen",subtype:"warning",buttons:[{text:"Token anfordern",event:"request_token",subtype:"success",disabled:n.requestTokenDisabled},{text:"Kennwort zurücksetzen",event:"reset_password",subtype:"primary",disabled:n.resetPasswordDisabled},{text:"Zurück",event:"close",subtype:"secondary"}],onModalResult:t[10]||(t[10]=y=>n.processResetResult(y))},{default:m(()=>[l("form",Si,[b(k,{modelValue:o.username,"onUpdate:modelValue":t[6]||(t[6]=y=>o.username=y),title:"Benutzername",subtype:"user","empty-value":"",required:"",autocomplete:"username"},null,8,["modelValue"]),b(k,{modelValue:o.token,"onUpdate:modelValue":t[7]||(t[7]=y=>o.token=y),title:"Token",subtype:"password","empty-value":"",readonly:o.username.length<=0,disabled:o.username.length<=0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.password,"onUpdate:modelValue":t[8]||(t[8]=y=>o.password=y),title:"Neues Kennwort",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0},null,8,["modelValue","readonly","disabled"]),b(k,{modelValue:o.passwordConfirm,"onUpdate:modelValue":t[9]||(t[9]=y=>o.passwordConfirm=y),title:"Neues Kennwort bestätigen",subtype:"password","empty-value":"",readonly:o.username.length===0||o.token.length===0,disabled:o.username.length===0||o.token.length===0,validator:y=>y===o.password||"Kennwörter stimmen nicht überein"},null,8,["modelValue","readonly","disabled","validator"])])]),_:1},8,["show","buttons"])):d("",!0)],64)}const Bi=S(bi,[["render",Ci],["__scopeId","data-v-adc196c2"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageUser.vue"]]);A.add(tt,st);const $i={name:"OpenwbPageMqttConnectionState",components:{FontAwesomeIcon:T},props:{connected:{type:Boolean,required:!0}},data(){return{showIcon:!this.connected,visibilityTimeout:null}},watch:{connected(e){e?(clearTimeout(this.visibilityTimeout),this.visibilityTimeout=setTimeout(()=>{this.showIcon=!1},5e3)):(this.showIcon=!0,clearTimeout(this.visibilityTimeout))}}},Ii={id:"connection-state-indicator",class:"ml-2"};function Oi(e,t,s,u,o,n){const a=g("FontAwesomeIcon"),p=g("openwb-base-avatar"),r=g("openwb-base-tooltip");return o.showIcon?(i(),f(j,{key:0,defer:"",to:"#info-target"},[l("div",Ii,[b(r,{description:`Verbindung ${s.connected?"hergestellt":"getrennt"}`},{default:m(()=>[b(p,{class:C(s.connected?"text-success":"bg-danger")},{default:m(()=>[b(a,{icon:s.connected?["fas","link"]:["fas","link-slash"]},null,8,["icon"])]),_:1},8,["class"])]),_:1},8,["description"])])])):d("",!0)}const Ai=S($i,[["render",Oi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMqttConnectionState.vue"]]);A.add(nt,ot);const Ti={name:"OpenwbPageMessages",components:{FontAwesomeIcon:T,FontAwesomeLayers:se,FontAwesomeLayersText:it},mixins:[z],data(){return{mqttTopics:[{topic:"openWB/command/"+this.$root.mqttClientId+"/messages/+",writeable:!1},{topic:"openWB/system/messages/+",writeable:!1}],showAllMessages:!1,hiddenMessages:[]}},computed:{alertLevel(){return this.messages.reduce((t,s)=>((t=="light"&&["info","success","warning","danger"].includes(s.type)||t=="info"&&["success","warning","danger"].includes(s.type)||t=="success"&&["warning","danger"].includes(s.type)||t=="warning"&&s.type=="danger")&&(t=s.type),t),"light")},messages(){const e=[];return this.systemMessages.forEach(t=>{e.push(t)}),this.localMessages.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[s,u]of Object.entries(e))t.push({topic:s,...u});return t},localMessages(){const e=this.$store.state.local.messages||{};var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});return t},clientMessages(){let e=this.getWildcardTopics("openWB/command/"+this.$root.mqttClientId+"/messages/+");var t=[];for(const[s,u]of Object.entries(e))t.push({topic:s,...u});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.localMessages.find(s=>s.topic===e.topic)?this.$store.commit("removeClientMessage",e.topic):this.clearTopic(e.topic);var t=this.hiddenMessages.indexOf(e.topic);t>-1&&this.hiddenMessages.splice(t,1)},dismissAllMessages(){this.messages.forEach(e=>{this.dismissMessage({topic:e.topic})}),this.hiddenMessages=[],this.toggleAllMessages()},hideMessage(e){this.hiddenMessages.includes(e.topic)||this.hiddenMessages.push(e.topic)}}},Mi=["title"],Vi=["innerHTML"];function qi(e,t,s,u,o,n){const a=g("font-awesome-icon"),p=g("font-awesome-layers-text"),r=g("font-awesome-layers"),v=g("openwb-base-alert"),k=g("openwb-base-click-button"),y=g("openwb-base-toast");return i(),c(M,null,[(i(),f(j,{defer:"",to:"#message-target"},[l("div",{id:"message-indicator",class:C(["text-light clickable",o.showAllMessages?"active":""]),title:o.showAllMessages?"nur neue Nachrichten anzeigen":"Alle Nachrichten anzeigen",onClick:t[0]||(t[0]=(...I)=>n.toggleAllMessages&&n.toggleAllMessages(...I))},[b(r,{"full-width":""},{default:m(()=>[b(a,{icon:o.showAllMessages?["fas","bell"]:["far","bell"],class:C(n.messageIndicatorClass)},null,8,["icon","class"]),n.messages.length>0?(i(),f(p,{key:0,counter:"",value:n.messages.length,position:"top-right",class:"message-counter bg-light text-dark"},null,8,["value"])):d("",!0)]),_:1})],10,Mi)])),n.recentMessages.length>0||o.showAllMessages?(i(),c("div",{key:0,class:C(["openwb-toast-container",o.showAllMessages?"full-height":""])},[n.recentMessages.length==0?(i(),f(v,{key:0,subtype:"info"},{default:m(()=>[...t[1]||(t[1]=[h(" Keine Nachrichten vorhanden. ",-1)])]),_:1})):o.showAllMessages?(i(),f(k,{key:1,class:"btn-sm btn-secondary mb-1",onButtonClicked:n.dismissAllMessages},{default:m(()=>[...t[2]||(t[2]=[h(" Alle Nachrichten löschen ",-1)])]),_:1},8,["onButtonClicked"])):d("",!0),(i(!0),c(M,null,q(n.recentMessages,I=>(i(),f(y,{key:I.topic,topic:I.topic,source:I.source,subtype:I.type,timestamp:I.timestamp,onDismiss:n.dismissMessage,onHide:n.hideMessage},{default:m(()=>[l("span",{innerHTML:I.message},null,8,Vi)]),_:2},1032,["topic","source","subtype","timestamp","onDismiss","onHide"]))),128))],2)):d("",!0)],64)}const Pi=S(Ti,[["render",qi],["__scopeId","data-v-2c25f0d0"],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageMessages.vue"]]),Di={name:"OpenwbPageBlocker",mixins:[z],data(){return{mqttTopics:[{topic:"openWB/system/boot_done",writeable:!1},{topic:"openWB/system/update_in_progress",writeable:!1}],disconnectedTimeout:null}},computed:{title(){return this.bootInProgress||this.updateInProgress?"openWB ist noch nicht bereit":this.mqttClientDisconnected?"Verbindung zur openWB verloren":this.reloadRequired?"Die Seite muss neu geladen werden":"???"},myButtons(){return!(this.bootInProgress||this.updateInProgress||this.mqttClientDisconnected)&&this.reloadRequired?[{text:"Jetzt neu laden",subtype:"success",event:"reload"}]:[]},mqttClientDisconnected(){return!this.$root.$data.connected},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.$store.state.local.modalBlockerVisible},modalType(){return this.mqttClientDisconnected&&!(this.bootInProgress||this.updateInProgress)?"danger":"dark"}},watch:{mqttClientDisconnected(e){e===!0?this.disconnectedTimeout=window.setTimeout(()=>{this.mqttClientDisconnected&&this.updateLocalStore()},2e3):(this.disconnectedTimeout&&(clearTimeout(this.disconnectedTimeout),this.disconnectedTimeout=null),this.updateLocalStore())},bootInProgress(e){e===!0&&this.updateInProgress===!0&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!0}),this.updateLocalStore()},updateInProgress(e){e===!1&&this.bootInProgress===!1&&this.$store.commit("storeLocal",{name:"reloadRequired",value:!1}),this.updateLocalStore()},reloadRequired(){this.updateLocalStore()}},methods:{updateLocalStore(){this.$store.commit("storeLocal",{name:"modalBlockerVisible",value:this.bootInProgress||this.updateInProgress||this.reloadRequired||this.mqttClientDisconnected})},handleModalResult(e){e=="reload"?location.reload():console.warn("unknown event",e)}}},Li={class:"openwb-blocker"},Ei={key:0},xi={key:1},Ri={key:2},Wi={key:3},ji={key:4};function zi(e,t,s,u,o,n){const a=g("openwb-base-modal-dialog");return i(),c("div",Li,[b(a,{show:n.showModalBlocker,title:n.title,subtype:n.modalType,"prevent-close":!0,buttons:n.myButtons,onModalResult:t[0]||(t[0]=p=>n.handleModalResult(p))},{default:m(()=>[n.bootInProgress?(i(),c("p",Ei,"Der Systemstart ist noch nicht abgeschlossen.")):n.updateInProgress?(i(),c("p",xi,"Es wird eine Systemaktualisierung ausgeführt.")):n.mqttClientDisconnected?(i(),c("p",Ri,[...t[1]||(t[1]=[h(" Die Verbindung zur openWB wurde unterbrochen.",-1),l("br",null,null,-1),h(" Es wird versucht, die Verbindung wieder herzustellen... ",-1)])])):n.reloadRequired?(i(),c("p",Wi,"Bitte die Seite neu laden.")):(i(),c("p",ji,"Bitte warten..."))]),_:1},8,["show","title","subtype","buttons"])])}const Ni=S(Di,[["render",zi],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/OpenwbPageBlocker.vue"]]),Ui={name:"OpenwbSettingsApp",components:{NavBar:ci,PageFooter:hi,UserInfo:Bi,MqttConnectionState:Ai,Messages:Pi,Blocker:Ni},data(){return{client:null,connected:!1,connection:{protocol:location.protocol=="https:"?"wss":"ws",protocolVersion:5,host:location.hostname,port:parseInt(location.port)||(location.protocol=="https:"?443:80),path:"/ws",connectTimeout:4e3,reconnectPeriod:4e3,resubscribe:!0,properties:{requestResponseInformation:!0,requestProblemInformation:!0}},dataTimeout:null}},computed:{mqttClientId(){try{return this.client.options.clientId}catch(e){console.error("mqttClientId error",e);return}},topicList(){return Object.keys(this.$store.state.mqtt)},nodeEnv(){return"development"}},created(){this.createConnection()},methods:{async saveValues(e=void 0){function t(u){return new Promise(o=>setTimeout(o,u))}function s(u){return u.includes("#")||u.includes("+")}this.$store.commit("storeLocal",{name:"savingData",value:!0});try{let u={};if(e===void 0){console.error("no topics to save defined!");return}if(Array.isArray(e))e.forEach(o=>{if(s(o)){console.debug("expanding wildcard topic:",o);const n=this.getWildcardTopics(o);Object.entries(n).forEach(([a,p])=>{console.debug("adding topic to save:",a),u[a]=p})}else console.debug("adding topic to save:",o),u[o]=this.$store.state.mqtt[o]});else{console.error("expected array, got ",typeof e);return}for(const[o,n]of Object.entries(u)){if(o.startsWith("$CONTROL")){console.debug("skipping control topic:",o);continue}let a=o.replace("openWB/","openWB/set/");console.debug("saving data:",a,n),this.doPublish(a,n),await t(50)}}finally{this.$store.commit("storeLocal",{name:"savingData",value:!1})}},resetValues(e=this.topicList){console.debug("resetting values..."),console.debug("topics: ",e),this.doUnsubscribe(e),this.doSubscribe(e)},setDefaultValues(){console.debug("setting default values... (ToDo)")},sendCommand(e){console.debug("sendCommand:",e),this.doPublish(`openWB/set/command/${this.client.options.clientId}/todo/${e.command}`,e,!1)},createConnection(){const{protocol:e,host:t,port:s,path:u,...o}=this.connection,n=`${e}://${t}:${s}${u}`,[a,p]=this.$cookies.get("mqtt")?.match(/^([^:]+):(.+)$/)?.slice(1)||[null,null];a&&p||console.debug("Anonymous mqtt connection (no cookie set)"),(this.nodeEnv!=="production"||e=="wss")&&a&&p&&(console.debug(`Using mqtt credentials from cookie: "${a}" / "${p.charAt(0)}..."`),o.username=a,o.password=p,a==="admin"&&p==="openwb"&&(console.warn("Using default mqtt credentials! This is insecure and not recommended for production systems."),this.postClientMessage("Warnung: Es werden die Standard-Zugangsdaten für MQTT verwendet! Dies ist unsicher und wird für Produktivsysteme nicht empfohlen.","warning"))),console.debug("connecting to broker:",n),this.client=fe.connect(n,o),this.client.on("connect",()=>{this.connected=!0,console.debug("Connection succeeded! ClientId: ",this.client.options.clientId),a&&(this.postClientMessage(`Angemeldet als "${a}".`,"success"),this.$store.commit("storeLocal",{name:"username",value:a})),this.doSubscribe(["openWB/system/boot_done","openWB/system/dataprotection_acknowledged","openWB/system/usage_terms_acknowledged","openWB/system/installAssistantDone","openWB/system/security/access/+"]),this.dataTimeout=setTimeout(()=>{console.warn("No data received after 1 second, connection might not be working. Removing mqtt cookie and trying again with anonymous connection."),a&&(this.$cookies.remove("mqtt"),this.reconnectMqttClient())},1e3)}),this.client.on("error",r=>{this.connected=!1,console.error("Connection failed",r),this.$cookies.remove("mqtt"),this.$store.commit("storeLocal",{name:"username",value:null}),this.reconnectMqttClient()}),this.client.on("message",(r,v)=>{if(this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null),v.toString().length>0){let k;try{k=JSON.parse(v.toString())}catch(y){console.debug("Json parsing failed, fallback to string: ",r,y),k=v.toString()}this.$store.commit("updateTopic",{topic:r,payload:k})}else this.$store.commit("removeTopic",r)}),this.client.on("end",()=>{this.connected=!1,console.error("mqtt connection ended")}),this.client.on("close",()=>{this.connected=!1,console.error("mqtt connection closed")}),this.client.on("offline",()=>{this.connected=!1,console.error("mqtt connection offline")}),this.client.on("disconnect",()=>{this.connected=!1,console.error("mqtt connection disconnected")}),this.client.on("reconnect",()=>{console.error("mqtt connection reconnecting...")})},endConnection(){this.connected?(console.warn("Ending mqtt connection..."),this.client.end(),this.connected=!1,this.$store.commit("storeLocal",{name:"username",value:null}),this.dataTimeout&&(clearTimeout(this.dataTimeout),this.dataTimeout=null)):console.error("No mqtt connection to end.")},reconnectMqttClient(){this.client?.connected&&this.endConnection(),this.createConnection()},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,{},s=>{if(s){this.postClientMessage(`Daten konnten nicht abonniert werden.
Topic: ${t}
${s}`,"danger"),this.$store.commit("removeSubscription",t);return}})):console.debug("Already subscribed to topic: ",t)})},doUnsubscribe(e){e.forEach(t=>{this.$store.commit("removeSubscription",t),this.$store.getters.subscriptionCount(t)==0?(this.client.unsubscribe(t,s=>{s&&(console.error("Unsubscribe error",s),this.postClientMessage(`Daten konnten nicht abbestellt werden.
Topic: ${t}
${s}`,"danger"))}),t.includes("#")||t.includes("+")?(console.debug("expanding wildcard topic:",t),Object.keys(this.getWildcardTopics(t)).forEach(s=>{console.debug("removing wildcardTopic:",s),this.$store.commit("removeTopic",s)})):(console.debug("removing topic:",t),this.$store.commit("removeTopic",t))):console.debug("Still subscribed to topic: ",t)})},doPublish(e,t,s=!0,u=2){let o={qos:u,retain:s};this.client.publish(e,JSON.stringify(t),o,n=>{n&&(console.error("Publish error",n),this.postClientMessage(`Daten konnten nicht geschrieben werden.
Topic: ${e}
${n}`,"danger"))})},postClientMessage(e,t="secondary"){console.debug("postMessage:",e,t);const s=Date.now();this.$store.commit({type:"addClientMessage",timestamp:s,payload:{message:e,type:t,source:"client",timestamp:Math.floor(s/1e3)}})},getWildcardTopics(e,t=!1){let s=e;return t||(s="^"+e.replaceAll("/","\\/").replaceAll("+","[^+/]+").replaceAll("#","[^#/]+")+"$"),Object.keys(this.$store.state.mqtt).filter(u=>u.match(s)).reduce((u,o)=>({...u,[o]:this.$store.state.mqtt[o]}),{})}}},Fi={role:"main",class:"container"},Hi={id:"content"};function Ki(e,t,s,u,o,n){const a=g("nav-bar"),p=g("router-view"),r=g("page-footer"),v=g("mqtt-connection-state"),k=g("user-info"),y=g("messages"),I=g("blocker");return i(),c(M,null,[l("header",null,[b(a)]),l("div",Fi,[l("div",Hi,[l("h1",null,w(e.$route.meta.heading),1),b(p,{onSave:n.saveValues,onReset:n.resetValues,onDefaults:n.setDefaultValues,onSendCommand:n.sendCommand},null,8,["onSave","onReset","onDefaults","onSendCommand"])])]),b(r),b(v,{connected:o.connected},null,8,["connected"]),b(k,{onSendCommand:n.sendCommand},null,8,["onSendCommand"]),b(y),b(I)],64)}const Gi=S(Ui,[["render",Ki],["__file","/opt/openWB-dev/openwb-ui-settings/src/App.vue"]]),Ji="modulepreload",Zi=function(e){return"/openWB/web/settings/"+e},Z={},B=function(t,s,u){let o=Promise.resolve();if(s&&s.length>0){let r=function(v){return Promise.all(v.map(k=>Promise.resolve(k).then(y=>({status:"fulfilled",value:y}),y=>({status:"rejected",reason:y}))))};document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),p=a?.nonce||a?.getAttribute("nonce");o=r(s.map(v=>{if(v=Zi(v),v in Z)return;Z[v]=!0;const k=v.endsWith(".css"),y=k?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${v}"]${y}`))return;const I=document.createElement("link");if(I.rel=k?"stylesheet":Ji,k||(I.as="script"),I.crossOrigin="",I.href=v,p&&I.setAttribute("nonce",p),document.head.appendChild(I),k)return new Promise((le,re)=>{I.addEventListener("load",le),I.addEventListener("error",()=>re(new Error(`Unable to preload CSS for ${v}`)))})}))}function n(a){const p=new Event("vite:preloadError",{cancelable:!0});if(p.payload=a,window.dispatchEvent(p),!p.defaultPrevented)throw a}return o.then(a=>{for(const p of a||[])p.status==="rejected"&&n(p.reason);return t().catch(n)})},Qi={namespaced:!0,state:()=>({hiddenDatasets:[]}),mutations:{toggleDataset(e,t){e.hiddenDatasets.includes(t)?e.hiddenDatasets=e.hiddenDatasets.filter(s=>s!==t):e.hiddenDatasets.push(t)},setHiddenDatasets(e,t){e.hiddenDatasets=t}}};let ie={mqtt:{},mqttSubscriptions:{},local:{modalBlockerVisible:!1,reloadRequired:!1,savingData:!1,username:null}};ie.examples={text1:"Text...",text2:"mail@domain.com",text3:"openwb.local",text4:"http://www.openwb.de",text5:"Benutzername",text6:"12:34",text7:"2021-10-31",text8:"Text mit Add-Button",color1:"#ff0000",color2:"#0000ff",number1:5,number2:10,number3:28e-5,password1:"GeHeiM!",textarea1:"Langer Text...",range1:6,range2:10,select1:1,select2:void 0,buttonGroup1:1,checkbox1:!0,json1:{text:"Text",number:123},hierarchy1:[{id:0,type:"counter",children:[{id:3,type:"inverter",children:[]},{id:4,type:"bat",children:[]},{id:1,type:"cp",children:[]},{id:2,type:"cp",children:[]}]}],hierarchy1Labels:{0:"EVU",1:"Ladepunkt 1",2:"Ladepunkt 2",3:"Wechselrichter",4:"Batteriespeicher"},tags:["1234","2345","3456"],ioConfig:{active:!1,pattern:[null,!1,!0],action:{value:"stop_all",options:null}}};const x=ge({state:ie,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 s=(u,o,n)=>o.split(".").reduce((a,p,r)=>a[p]=o.split(".").length===r+1?n:a[p]||{},u);t.topic in e.mqtt||!(t.topic in e.examples)?t.objectPath!=null?s(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?s(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"))},addClientMessage(e,t){e.local.messages||(e.local.messages={}),e.local.messages[t.timestamp]=t.payload},removeClientMessage(e,t){e.local.messages&&t in e.local.messages&&delete e.local.messages[t]},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:{chartLegend:Qi},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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/usage_terms_acknowledged"]!==void 0&&(clearTimeout(s),clearInterval(u),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 s,u;s=setTimeout(()=>{clearInterval(u),t(!1)},5e3),u=setInterval(()=>{e.mqtt["openWB/system/installAssistantDone"]!==void 0&&(clearTimeout(s),clearInterval(u),t(e.mqtt["openWB/system/installAssistantDone"]))},100)}})},accessAllowed(e){return t=>new Promise(s=>{const u=`openWB/system/security/access/${t}`;if(e.mqtt[u]!==void 0)s(e.mqtt[u]);else{var o,n;o=setTimeout(()=>{clearInterval(n),s(!1)},5e3),n=setInterval(()=>{e.mqtt[u]!==void 0&&(clearTimeout(o),clearInterval(n),s(e.mqtt[u]))},100)}})},subscriptionCount:e=>t=>e.mqttSubscriptions[t]||0}}),ae=[{path:"/",redirect:"/GeneralConfiguration"},{path:"/Status",name:"Status",meta:{heading:"Status",checkPermissions:!0},component:()=>B(()=>import("./Status-C2MPQY7c.js"),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10]))},{path:"/Logging/ChargeLog",name:"ChargeLog",meta:{heading:"Auswertungen - Ladeprotokoll",checkPermissions:!0},component:()=>B(()=>import("./ChargeLog-DrRDhBzR.js"),__vite__mapDeps([11,1,2,3,6,7,8,9,12]))},{path:"/Logging/Chart/:chartRange?/:initialDate?",name:"Chart",meta:{heading:"Auswertungen - Diagramme",checkPermissions:!0},component:()=>B(()=>import("./Chart-CswxV9n9.js"),__vite__mapDeps([13,1,2,3,4,5,6,7,8,9,14]))},{path:"/GeneralConfiguration",name:"GeneralConfiguration",meta:{heading:"Einstellungen - Allgemein",checkPermissions:!0},component:()=>B(()=>import("./GeneralConfiguration-d2XsWBRc.js").then(e=>e.a),__vite__mapDeps([15,1,2,3,16,17]))},{path:"/IdentificationConfiguration",name:"IdentificationConfiguration",meta:{heading:"Einstellungen - Identifikation",checkPermissions:!0},component:()=>B(()=>import("./IdentificationConfiguration-D2_DUB2l.js"),__vite__mapDeps([18,16,2,3,1,6,7,8,9]))},{path:"/DisplayConfiguration",name:"DisplayConfiguration",meta:{heading:"Einstellungen - Display",checkPermissions:!0},component:()=>B(()=>import("./DisplayConfiguration-C9arPcQK.js").then(e=>e.a),__vite__mapDeps([19,17,1,2,3]))},{path:"/GeneralChargeConfiguration",name:"GeneralChargeConfiguration",meta:{heading:"Ladeeinstellungen - Übergreifendes",checkPermissions:!0},component:()=>B(()=>import("./GeneralChargeConfiguration-BMEAxDhB.js").then(e=>e.a),__vite__mapDeps([20,17,1,2,3]))},{path:"/SurplusChargeConfiguration",name:"SurplusChargeConfiguration",meta:{heading:"Ladeeinstellungen - Überschuss-Laden",checkPermissions:!0},component:()=>B(()=>import("./SurplusChargeConfiguration-Cu9BnO0I.js"),__vite__mapDeps([21,16,2,3,1,6,7,8,9]))},{path:"/ActiveBatControlConfiguration",name:"ActiveBatControlConfiguration",meta:{heading:"Ladeeinstellungen - Speichersteuerung",checkPermissions:!0},component:()=>B(()=>import("./ActiveBatControlConfiguration-DHcxvCYP.js"),__vite__mapDeps([22,1,2,3,6,7,8,9]))},{path:"/HardwareInstallation",name:"HardwareInstallation",meta:{heading:"Konfiguration - Geräte und Komponenten",checkPermissions:!0},component:()=>B(()=>import("./HardwareInstallation-DW5TYu17.js").then(e=>e.a),__vite__mapDeps([23,1,2,3,17]))},{path:"/LoadManagementConfiguration",name:"LoadManagementConfiguration",meta:{heading:"Konfiguration - Lastmanagement",checkPermissions:!0},component:()=>B(()=>import("./LoadManagementConfiguration-DkVfCmRF.js"),__vite__mapDeps([24,1,2,3,25,26,6,7,8,9]))},{path:"/ChargePointInstallation",name:"ChargePointInstallation",meta:{heading:"Konfiguration - Ladepunkte",checkPermissions:!0},component:()=>B(()=>import("./ChargePointInstallation-Cmc7sApi.js").then(e=>e.c),__vite__mapDeps([27,1,2,3,16,17,28]))},{path:"/VehicleConfiguration/:section?/:section_index?/:section_part?/:action?",name:"VehicleConfiguration",meta:{heading:"Konfiguration - Fahrzeuge",checkPermissions:!0},component:()=>B(()=>import("./VehicleConfiguration-DZuJgE9z.js").then(e=>e.b),__vite__mapDeps([29,1,2,3,17]))},{path:"/IoConfiguration",name:"IoConfiguration",meta:{heading:"Konfiguration - Ein- und Ausgänge",checkPermissions:!0},component:()=>B(()=>import("./IoConfiguration-CuIvy4Hb.js").then(e=>e.b),__vite__mapDeps([30,1,2,3,17]))},{path:"/System/CloudConfiguration",name:"CloudConfiguration",meta:{heading:"System - openWB Cloud",checkPermissions:!0},component:()=>B(()=>import("./CloudConfiguration-CTXO9wZf.js"),__vite__mapDeps([31,1,2,3,6,7,8,9]))},{path:"/System/MqttBridgeConfiguration",name:"MqttBridgeConfiguration",meta:{heading:"System - MQTT-Brücken",checkPermissions:!0},component:()=>B(()=>import("./MqttBridgeConfiguration-CDPcpDOw.js"),__vite__mapDeps([32,1,2,3,6,7,8,9]))},{path:"/System/DebugConfiguration",name:"DebugConfiguration",meta:{heading:"System - Fehlersuche",checkPermissions:!0},component:()=>B(()=>import("./DebugConfiguration-FJkDknEv.js"),__vite__mapDeps([33,1,2,3,9,6,7,8,34]))},{path:"/System/Support",name:"Support",meta:{heading:"System - Support",checkPermissions:!0},component:()=>B(()=>import("./Support--2N_8ACr.js"),__vite__mapDeps([35,1,2,3,6,7,8,9]))},{path:"/System/LegalSettings",name:"LegalSettings",meta:{heading:"System - Rechtliches",checkPermissions:!0},component:()=>B(()=>import("./LegalSettings-DqdcFet8.js"),__vite__mapDeps([36,1,2,3,6,7,8,9]))},{path:"/System/SystemConfiguration",name:"SystemConfiguration",meta:{heading:"System - System",checkPermissions:!0},component:()=>B(()=>import("./SystemConfiguration-C-kqn4RK.js"),__vite__mapDeps([37,1,2,3,6,7,8,9,38]))},{path:"/System/SecurityConfiguration",name:"SecurityConfiguration",meta:{heading:"System - Sicherheit",checkPermissions:!0},component:()=>B(()=>import("./SecurityConfiguration-Dlmaxpov.js"),__vite__mapDeps([39,1,2,3,6,7,8,9]))},{path:"/System/DataManagement",name:"DataManagement",meta:{heading:"System - Datenverwaltung",checkPermissions:!0},component:()=>B(()=>import("./DataManagement-lM5_tcaR.js").then(e=>e.a),__vite__mapDeps([40,1,2,3,17]))},{path:"/System/InstallAssistant",name:"InstallAssistant",meta:{heading:"System - Einrichtungsassistent",checkPermissions:!0},component:()=>B(()=>import("./InstallAssistant-DLIY5fno.js"),__vite__mapDeps([41,17,2,3,1,6,7,8,9]))},{path:"/Error",name:"Error",meta:{heading:"Fehler",checkPermissions:!1},component:()=>B(()=>import("./Error-BZ1TitTh.js"),__vite__mapDeps([42,2,3]))}];ae.push({path:"/TestingStore",name:"VUEX Store",meta:{heading:"Beispiele - VUEX Store",checkPermissions:!1},component:()=>B(()=>import("./TestingStore-DRd3kTjd.js"),__vite__mapDeps([43,25,2,3,1,26,6,7,8,9]))});const F=he({history:be(),routes:ae});let W=!1;F.beforeEach(async e=>{const t=async n=>{if(n.meta.checkPermissions===!0){const a=await x.getters.accessAllowed(n.name);if(console.debug("access check for",n.name,"->",a),W)return console.debug("route already handled, cancel further processing"),!1;if(!a)return console.warn("no permission to access",n.name),x.state.local.username?{name:"Error"}:(console.debug("not logged in, cancel navigation to",n.name),W=!0,!1)}return!0};if(W=!1,!await x.getters.usageTermsAcknowledged)return e.name!=="LegalSettings"?(console.log("usage terms not acknowledged, redirect to legal settings"),{name:"LegalSettings"}):(console.log("usage terms not acknowledged, but already on legal settings, continue"),await t(e));if(!await x.getters.installAssistantDone)return e.name!=="InstallAssistant"?(console.log("install assistant not done, redirect to install assistant"),{name:"InstallAssistant"}):(console.log("install assistant not done, but already on install assistant, continue"),await t(e));const o=await t(e);return W=!0,o});F.afterEach(e=>{e.meta.heading?document.title="openWB | "+e.meta.heading:document.title="openWB"});const H=_e(Gi);H.use(x).use(F).use(at,lt).use(ve,{expire:"30d",path:"/",domain:"",secure:!0,sameSite:"Lax"});const Yi=Object.assign({"./components/OpenwbBaseAlert.vue":ct,"./components/OpenwbBaseArrayInput.vue":qt,"./components/OpenwbBaseAvatar.vue":xt,"./components/OpenwbBaseButtonGroupInput.vue":Jt,"./components/OpenwbBaseButtonInput.vue":ns,"./components/OpenwbBaseButtonRow.vue":Ut,"./components/OpenwbBaseCard.vue":ms,"./components/OpenwbBaseCheckboxInput.vue":vs,"./components/OpenwbBaseClickButton.vue":Xt,"./components/OpenwbBaseColorPicker.vue":Bs,"./components/OpenwbBaseCopyToClipboard.vue":Ps,"./components/OpenwbBaseHeading.vue":zs,"./components/OpenwbBaseIoPattern.vue":Hs,"./components/OpenwbBaseModalDialog.vue":en,"./components/OpenwbBaseNumberInput.vue":mn,"./components/OpenwbBaseRangeInput.vue":Sn,"./components/OpenwbBaseSelectInput.vue":En,"./components/OpenwbBaseSettingElement.vue":bt,"./components/OpenwbBaseSubmitButtons.vue":Gn,"./components/OpenwbBaseTextInput.vue":_o,"./components/OpenwbBaseTextarea.vue":Mo,"./components/OpenwbBaseToast.vue":Eo,"./components/OpenwbBaseTooltip.vue":zo});Object.entries(Yi).forEach(([e,t])=>{const s=ye(we(e.split("/").pop().replace(/\.\w+$/,"")));H.component(s,t.default)});H.mount("#app");export{z as C,D as O,B as _}; diff --git a/web/settings/assets/inverter-CTZt8kgW.js b/web/settings/assets/inverter-3I2lkK_L.js similarity index 96% rename from web/settings/assets/inverter-CTZt8kgW.js rename to web/settings/assets/inverter-3I2lkK_L.js index 12118168cc..9bb4658ea3 100644 --- a/web/settings/assets/inverter-CTZt8kgW.js +++ b/web/settings/assets/inverter-3I2lkK_L.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as p,k as g,e as b,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceMqttInverter",mixins:[m]},v={class:"device-mqtt-inverter"};function B(o,e,z,w,k,W){const d=p("openwb-base-heading"),u=p("openwb-base-alert"),r=p("openwb-base-copy-to-clipboard");return g(),b("div",v,[i(d,null,{default:l(()=>[...e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])]),_:1}),i(u,{subtype:"warning"},{default:l(()=>[e[1]||(e[1]=t(" Ist die ",-1)),e[2]||(e[2]=n("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Wechselrichter '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[4]||(e[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(u,{subtype:"info"},{default:l(()=>[e[23]||(e[23]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[5]||(e[5]=n("br",null,null,-1)),e[6]||(e[6]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[7]||(e[7]=n("span",{class:"text-info"},"-123",-1))])]),e[24]||(e[24]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" Beispiel: ",-1)),e[12]||(e[12]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Bezogene Energie in Wh (optional, zB für Hybridsysteme, die den Speicher aus dem Netz laden), Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[15]||(e[15]=n("br",null,null,-1)),e[16]||(e[16]=t(" Beispiel: ",-1)),e[17]||(e[17]=n("span",{class:"text-info"},"123.45",-1))])]),e[25]||(e[25]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[20]||(e[20]=n("br",null,null,-1)),e[21]||(e[21]=t(" Beispiel: ",-1)),e[22]||(e[22]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1})])}const V=a(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{V as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as p,k as g,e as b,m as i,q as l,A as t,x as n,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceMqttInverter",mixins:[m]},v={class:"device-mqtt-inverter"};function B(o,e,z,w,k,W){const d=p("openwb-base-heading"),u=p("openwb-base-alert"),r=p("openwb-base-copy-to-clipboard");return g(),b("div",v,[i(d,null,{default:l(()=>[...e[0]||(e[0]=[t(" Einstellungen für MQTT Wechselrichter ",-1)])]),_:1}),i(u,{subtype:"warning"},{default:l(()=>[e[1]||(e[1]=t(" Ist die ",-1)),e[2]||(e[2]=n("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=t(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),n("strong",null,`"Daten: Wechselrichter '`+s(o.component.name)+"' ("+s(o.component.id)+') MQTT-Input"',1),e[4]||(e[4]=t(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(u,{subtype:"info"},{default:l(()=>[e[23]||(e[23]=t(" Die folgenden Topics sind für einen reibungslosen Betrieb unbedingt erforderlich: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/power ",1)]),_:1}),e[5]||(e[5]=n("br",null,null,-1)),e[6]||(e[6]=t(" PV-Leistung in Watt als Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) Beispiel: ",-1)),e[7]||(e[7]=n("span",{class:"text-info"},"-123",-1))])]),e[24]||(e[24]=t(" Falls keine Wert für den Zählerstand übermittelt wird, berechnet openWB den Zählerstand anhand der Leistung. ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/exported ",1)]),_:1}),e[8]||(e[8]=n("br",null,null,-1)),e[9]||(e[9]=t(" Erzeugte Energie in Wh, Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[10]||(e[10]=n("br",null,null,-1)),e[11]||(e[11]=t(" Beispiel: ",-1)),e[12]||(e[12]=n("span",{class:"text-info"},"123.45",-1))]),n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/imported ",1)]),_:1}),e[13]||(e[13]=n("br",null,null,-1)),e[14]||(e[14]=t(" Bezogene Energie in Wh (optional, zB für Hybridsysteme, die den Speicher aus dem Netz laden), Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen, nur positiv",-1)),e[15]||(e[15]=n("br",null,null,-1)),e[16]||(e[16]=t(" Beispiel: ",-1)),e[17]||(e[17]=n("span",{class:"text-info"},"123.45",-1))])]),e[25]||(e[25]=t(" Ströme je Phase sind optional, jedoch für phasenbasiertes Lastmanagement in Verbindung mit einem virtuellen Zähler unbedingt erforderlich. Ansonsten erfolgt das Lastmanagement ausschließlich auf Basis der Gesamtleistung an diesem Zähler: ",-1)),n("ul",null,[n("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:l(()=>[t(" openWB/set/mqtt/pv/"+s(o.component.id)+"/get/currents ",1)]),_:1}),e[18]||(e[18]=n("br",null,null,-1)),e[19]||(e[19]=t(" Array mit den Strömen je Phase in Ampere, mit Nachkommastellen (Float), positiv Bezug, negativ Einspeisung",-1)),e[20]||(e[20]=n("br",null,null,-1)),e[21]||(e[21]=t(" Beispiel: ",-1)),e[22]||(e[22]=n("span",{class:"text-info"},"[1.2,2.3,-2.1]",-1))])])]),_:1})])}const V=a(f,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/mqtt/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-DXCXYnzH.js b/web/settings/assets/inverter-6IxocKCd.js similarity index 89% rename from web/settings/assets/inverter-DXCXYnzH.js rename to web/settings/assets/inverter-6IxocKCd.js index 9e503ca30a..97ac7d6e70 100644 --- a/web/settings/assets/inverter-DXCXYnzH.js +++ b/web/settings/assets/inverter-6IxocKCd.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as l,l as n,k as d,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])]),_:1}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>[...e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])]),_:1},8,["model-value"])])}const A=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{A as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as l,l as n,k as d,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSolarViewInverter",mixins:[p]},_={class:"device-solar-view-inverter"};function f(o,e,v,g,w,b){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return d(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für SolarView Wechselrichter ",-1)])]),_:1}),t(a,{title:"Kommando für die Abfrage",required:"","model-value":o.component.configuration.command,"onUpdate:modelValue":e[0]||(e[0]=m=>o.updateConfiguration(m,"configuration.command"))},{help:i(()=>[...e[2]||(e[2]=[r(" Kommandos gemäß SolarView-Dokumentation, z.B.: 00* (gesamte Anlage), 01* (Wechselrichter 1), 02* (Wechselrichter 2) ",-1)])]),_:1},8,["model-value"])])}const A=l(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solar_view/solar_view/inverter.vue"]]);export{A as default}; diff --git a/web/settings/assets/inverter-DgFOEAbi.js b/web/settings/assets/inverter-B4d2P0BT.js similarity index 87% rename from web/settings/assets/inverter-DgFOEAbi.js rename to web/settings/assets/inverter-B4d2P0BT.js index 715ec6448e..be8f5be971 100644 --- a/web/settings/assets/inverter-DgFOEAbi.js +++ b/web/settings/assets/inverter-B4d2P0BT.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeInverter",mixins:[p]},_={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceDeyeInverter",mixins:[p]},_={class:"device-deye-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),d("div",_,[t(i,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für Deye Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/deye/deye/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-D8I4F0kA.js b/web/settings/assets/inverter-BBOKdY28.js similarity index 90% rename from web/settings/assets/inverter-D8I4F0kA.js rename to web/settings/assets/inverter-BBOKdY28.js index a71c4b6ae1..62a7296dc7 100644 --- a/web/settings/assets/inverter-D8I4F0kA.js +++ b/web/settings/assets/inverter-BBOKdY28.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as u,e as m,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[p]},b={class:"device-openwb-flex-inverter"};function f(o,e,_,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",b,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])]),_:1}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const q=a(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as t,k as u,e as m,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceOpenwbFlexInverter",mixins:[p]},b={class:"device-openwb-flex-inverter"};function f(o,e,_,w,x,g){const r=t("openwb-base-heading"),l=t("openwb-base-select-input"),s=t("openwb-base-number-input");return u(),m("div",b,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für openWB-Flex Wechselrichter ",-1)])]),_:1}),i(l,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"},{value:3,text:"SDM120"}],"model-value":o.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.version"))},null,8,["model-value"]),i(s,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":o.component.configuration.id,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.id"))},null,8,["model-value"])])}const q=a(v,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_flex/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-BjdsHouB.js b/web/settings/assets/inverter-BFfNvObM.js similarity index 88% rename from web/settings/assets/inverter-BjdsHouB.js rename to web/settings/assets/inverter-BFfNvObM.js index 15978dac58..62105a1055 100644 --- a/web/settings/assets/inverter-BjdsHouB.js +++ b/web/settings/assets/inverter-BFfNvObM.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as p,e as l,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])]),_:1}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const E=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{E as default}; +import{C as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as t,k as p,e as l,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceYoulessInverter",mixins:[u]},d={class:"device-youless-inverter"};function f(o,e,b,v,g,x){const s=t("openwb-base-heading"),i=t("openwb-base-button-group-input");return p(),l("div",d,[n(s,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für Youless LS120 Wechselrichter ",-1)])]),_:1}),n(i,{title:"S0-Eingang auslesen",buttons:[{buttonValue:!1,text:"nein"},{buttonValue:!0,text:"ja"}],"model-value":o.component.configuration.source_s0,"onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.source_s0"))},null,8,["model-value"])])}const E=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/youless/youless/inverter.vue"]]);export{E as default}; diff --git a/web/settings/assets/inverter-AYViTSOI.js b/web/settings/assets/inverter-BL7QHUdu.js similarity index 88% rename from web/settings/assets/inverter-AYViTSOI.js rename to web/settings/assets/inverter-BL7QHUdu.js index cdf7075f10..831188b8e1 100644 --- a/web/settings/assets/inverter-AYViTSOI.js +++ b/web/settings/assets/inverter-BL7QHUdu.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiInverter",mixins:[m]},c={class:"device-kostal-piko-ci-inverter"};function b(o,e,f,v,k,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kostal Piko CI Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/inverter.vue"]]);export{M as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as n,k as l,e as u,m as t,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceKostalPikoCiInverter",mixins:[m]},c={class:"device-kostal-piko-ci-inverter"};function b(o,e,f,v,k,C){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return l(),u("div",c,[t(r,null,{default:i(()=>[...e[1]||(e[1]=[s(" Einstellungen für Kostal Piko CI Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[s(" Die Standard-Modbus-ID von Kostal Piko CI ist 75 ",-1)])]),_:1},8,["model-value"])])}const M=d(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko_ci/inverter.vue"]]);export{M as default}; diff --git a/web/settings/assets/inverter-oQ0jJI7j.js b/web/settings/assets/inverter-BZuKTY7H.js similarity index 88% rename from web/settings/assets/inverter-oQ0jJI7j.js rename to web/settings/assets/inverter-BZuKTY7H.js index af1b82203d..9314f429ad 100644 --- a/web/settings/assets/inverter-oQ0jJI7j.js +++ b/web/settings/assets/inverter-BZuKTY7H.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as o,k as u,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{I as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as o,k as u,e as l,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceSigenergyInverter",mixins:[m]},_={class:"device-sigenergy-inverter"};function c(n,e,b,f,v,w){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return u(),l("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Sigenergy Wechselrichter ",-1)])]),_:1}),t(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von Sigenergy ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sigenergy/sigenergy/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-CzPXa6it.js b/web/settings/assets/inverter-BaXH_Y9w.js similarity index 92% rename from web/settings/assets/inverter-CzPXa6it.js rename to web/settings/assets/inverter-BaXH_Y9w.js index f6da500b1d..31936e5dd3 100644 --- a/web/settings/assets/inverter-CzPXa6it.js +++ b/web/settings/assets/inverter-BaXH_Y9w.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as t,k as m,e as c,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxInverter",mixins:[l]},b={class:"device-powerfox-inverter"};function g(o,e,v,w,x,_){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{A as default}; +import{C as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as t,k as m,e as c,m as r,q as i,A as n,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DevicePowerfoxInverter",mixins:[l]},b={class:"device-powerfox-inverter"};function g(o,e,v,w,x,_){const a=t("openwb-base-heading"),p=t("openwb-base-text-input");return m(),c("div",b,[r(a,null,{default:i(()=>[...e[1]||(e[1]=[n(" Einstellungen für Powerfox Wechselrichter ",-1)])]),_:1}),r(p,{title:"ID",required:"","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=d=>o.updateConfiguration(d,"configuration.id"))},{help:i(()=>[...e[2]||(e[2]=[n(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),s("a",{href:"https://backend.powerfox.energy/api/2.0/my/all/devices",target:"_blank",rel:"noopener noreferrer"}," https://backend.powerfox.energy/api/2.0/my/all/devices ",-1),n(" aufrufen und dort Benutzername und Passwort eingeben. Die DeviceID ist exakt so einzutragen, wie in der Antwort des Servers. Das bedeutet insbesondere auch, die Groß-/Kleinschreibung ist zu beachten! In dem Feld ist nur die Zeichenfolge direkt hinter ",-1),s("span",{class:"font-weight-bold text-monospace",style:{display:"contents"}},' "DeviceID" ',-1),n(" ohne den Doppelpunkt und Anführungszeichen einzutragen. ",-1)])]),_:1},8,["model-value"])])}const A=u(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/powerfox/powerfox/inverter.vue"]]);export{A as default}; diff --git a/web/settings/assets/inverter-9vdoOv_r.js b/web/settings/assets/inverter-BmdI7f5U.js similarity index 87% rename from web/settings/assets/inverter-9vdoOv_r.js rename to web/settings/assets/inverter-BmdI7f5U.js index 97a08882d5..0210956e9c 100644 --- a/web/settings/assets/inverter-9vdoOv_r.js +++ b/web/settings/assets/inverter-BmdI7f5U.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as o,k as p,e as l,m as n,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartMeInverter",mixins:[a]},_={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",_,[n(r,null,{default:d(()=>[...e[1]||(e[1]=[c(" Einstellungen für smart-me Wechselrichter ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as o,k as p,e as l,m as n,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceSmartMeInverter",mixins:[a]},_={class:"device-smart-me-inverter"};function f(t,e,v,b,g,x){const r=o("openwb-base-heading"),i=o("openwb-base-text-input");return p(),l("div",_,[n(r,null,{default:d(()=>[...e[1]||(e[1]=[c(" Einstellungen für smart-me Wechselrichter ",-1)])]),_:1}),n(i,{title:"Geräte-ID",required:"","model-value":t.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.id"))},null,8,["model-value"])])}const D=m(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/smart_me/smart_me/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-CbPKaOUd.js b/web/settings/assets/inverter-BmkLYd0W.js similarity index 88% rename from web/settings/assets/inverter-CbPKaOUd.js rename to web/settings/assets/inverter-BmkLYd0W.js index 90ab489e10..9c4d41ed0b 100644 --- a/web/settings/assets/inverter-CbPKaOUd.js +++ b/web/settings/assets/inverter-BmkLYd0W.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as t,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return l(),u("div",_,[n(i,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko Wechselrichter ",-1)])]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const K=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{K as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as t,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalPikoInverter",mixins:[a]},_={class:"device-kostal-piko-inverter"};function f(o,e,b,v,g,k){const i=t("openwb-base-heading"),r=t("openwb-base-button-group-input");return l(),u("div",_,[n(i,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko Wechselrichter ",-1)])]),_:1}),n(r,{title:"Speicher",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":o.component.configuration.bat_configured,"onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.bat_configured"))},null,8,["model-value"])])}const K=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_piko/inverter.vue"]]);export{K as default}; diff --git a/web/settings/assets/inverter-CDYkCixE.js b/web/settings/assets/inverter-BseXGzyq.js similarity index 79% rename from web/settings/assets/inverter-CDYkCixE.js rename to web/settings/assets/inverter-BseXGzyq.js index c0a791e669..8695f6cdde 100644 --- a/web/settings/assets/inverter-CDYkCixE.js +++ b/web/settings/assets/inverter-BseXGzyq.js @@ -1 +1 @@ -import{C as e}from"./HardwareInstallation-DrK-NlWu.js";import{_ as t,k as o,e as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const C=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{C as default}; +import{C as e}from"./HardwareInstallation-DW5TYu17.js";import{_ as t,k as o,e as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const r={name:"DeviceOpenDTUInverter",mixins:[e]},i={class:"device-opendtu-inverter"};function p(s,c,m,a,_,d){return o(),n("div",i)}const C=t(r,[["render",p],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/opendtu/opendtu/inverter.vue"]]);export{C as default}; diff --git a/web/settings/assets/inverter-DMLtmP39.js b/web/settings/assets/inverter-C0TqYVpJ.js similarity index 88% rename from web/settings/assets/inverter-DMLtmP39.js rename to web/settings/assets/inverter-C0TqYVpJ.js index f494f959ce..5833a8e5d1 100644 --- a/web/settings/assets/inverter-DMLtmP39.js +++ b/web/settings/assets/inverter-C0TqYVpJ.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as o,k as l,e as u,m as n,q as m,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbEvukitInverter",mixins:[p]},v={class:"device-openwb-evukit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),u("div",v,[n(i,null,{default:m(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB EVU-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_evu_kit/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-DSMmU0bk.js b/web/settings/assets/inverter-C7XZ_DaO.js similarity index 90% rename from web/settings/assets/inverter-DSMmU0bk.js rename to web/settings/assets/inverter-C7XZ_DaO.js index f0ae1f3b3b..8ad6042efd 100644 --- a/web/settings/assets/inverter-DSMmU0bk.js +++ b/web/settings/assets/inverter-C7XZ_DaO.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])]),_:1}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const D=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{D as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as t,k as m,e as l,m as i,q as d,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"DeviceVictronInverter",mixins:[s]},_={class:"device-victron-inverter"};function f(o,e,v,g,w,V){const r=t("openwb-base-heading"),p=t("openwb-base-number-input"),u=t("openwb-base-button-group-input");return m(),l("div",_,[i(r,null,{default:d(()=>[...e[2]||(e[2]=[c(" Einstellungen für Victron Wechselrichter ",-1)])]),_:1}),i(p,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.modbus_id"))},null,8,["model-value"]),i(u,{title:"MPPT",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],"model-value":o.component.configuration.mppt,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.mppt"))},null,8,["model-value"])])}const D=a(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/victron/victron/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-D8ojL_BV.js b/web/settings/assets/inverter-C9IbTuw1.js similarity index 90% rename from web/settings/assets/inverter-D8ojL_BV.js rename to web/settings/assets/inverter-C9IbTuw1.js index f442ff594c..073d86db70 100644 --- a/web/settings/assets/inverter-D8ojL_BV.js +++ b/web/settings/assets/inverter-C9IbTuw1.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l as n,k as d,e as c,m as o,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),c("div",f,[o(s,null,{default:r(()=>[...e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])]),_:1}),o(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])]),_:1}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const W=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{W as default}; +import{C as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l as n,k as d,e as c,m as o,q as r,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSmahmInverter",mixins:[l]},f={class:"device-smahm-inverter"};function b(t,e,v,g,h,w){const s=n("openwb-base-heading"),a=n("openwb-base-alert"),m=n("openwb-base-number-input");return d(),c("div",f,[o(s,null,{default:r(()=>[...e[1]||(e[1]=[i(" Einstellungen für SMA-HM/EM Wechselrichter ",-1)])]),_:1}),o(a,{subtype:"info"},{default:r(()=>[...e[2]||(e[2]=[i(' Dies ist nur die richtige Komponente, wenn ein extra EnergyMeter ausschließlich für die PV-Messung vorhanden ist. Wenn nur ein HomeManager vorhanden ist, muss ein Gerät "SMA Sunny Boy" mit der entsprechenden Wechselrichter-Komponente angelegt werden. ',-1)])]),_:1}),o(m,{title:"Seriennummer",required:"","model-value":t.component.configuration.serials,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.serials"))},null,8,["model-value"])])}const W=u(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_shm/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-ChBLwrbt.js b/web/settings/assets/inverter-CBpmmUE2.js similarity index 91% rename from web/settings/assets/inverter-ChBLwrbt.js rename to web/settings/assets/inverter-CBpmmUE2.js index 9a5b50f540..225b91c116 100644 --- a/web/settings/assets/inverter-ChBLwrbt.js +++ b/web/settings/assets/inverter-CBpmmUE2.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as m,e as c,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),c("div",b,[r(u,null,{default:i(()=>[...e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])]),_:1}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>[...e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{$ as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as n,k as m,e as c,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceStuderInverter",mixins:[s]},b={class:"device-studer-inverter"};function v(t,e,f,g,V,S){const u=n("openwb-base-heading"),p=n("openwb-base-button-group-input"),l=n("openwb-base-number-input");return m(),c("div",b,[r(u,null,{default:i(()=>[...e[2]||(e[2]=[a(" Einstellungen für Studer Wechselrichter ",-1)])]),_:1}),r(p,{title:"Typ der MPPT Solarladeregler",buttons:[{buttonValue:"VT",text:"Variotrack (VT-40/VT-65/VT-80)"},{buttonValue:"VS",text:"VarioString (VS-70/VS-120)"}],"model-value":t.component.configuration.vc_type,required:"","onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.vc_type"))},null,8,["model-value"]),r(l,{title:"Anzahl MPPT Solarladeregler",required:"",min:1,max:9,"model-value":t.component.configuration.vc_count,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.vc_count"))},{help:i(()=>[...e[3]||(e[3]=[a(" Anzahl (1-9) der Studer MPPT Solarladeregler im System (VS/VT) ",-1)])]),_:1},8,["model-value"])])}const $=d(_,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/studer/studer/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-9SjCnF3G.js b/web/settings/assets/inverter-CF16Zlup.js similarity index 88% rename from web/settings/assets/inverter-9SjCnF3G.js rename to web/settings/assets/inverter-CF16Zlup.js index bdd5237ab7..5ff4397a5e 100644 --- a/web/settings/assets/inverter-9SjCnF3G.js +++ b/web/settings/assets/inverter-CF16Zlup.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{V as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as o,k as l,e as m,m as n,q as u,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceOpenwbPvkitInverter",mixins:[p]},v={class:"device-openwb-pvkit-inverter"};function _(t,e,f,b,w,g){const i=o("openwb-base-heading"),r=o("openwb-base-select-input");return l(),m("div",v,[n(i,null,{default:u(()=>[...e[1]||(e[1]=[c(" Einstellungen für openWB PV-Kit Wechselrichter ",-1)])]),_:1}),n(r,{title:"Zählermodell","not-selected":"Bitte auswählen",options:[{value:0,text:"MPM3PM"},{value:1,text:"Lovato"},{value:2,text:"SDM630/SDM72D-M"}],"model-value":t.component.configuration.version,required:"","onUpdate:modelValue":e[0]||(e[0]=s=>t.updateConfiguration(s,"configuration.version"))},null,8,["model-value"])])}const V=a(d,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/openwb/openwb_pv_kit/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter-Ci3SfwIV.js b/web/settings/assets/inverter-CJF4atrW.js similarity index 87% rename from web/settings/assets/inverter-Ci3SfwIV.js rename to web/settings/assets/inverter-CJF4atrW.js index bc41f7a98a..dcf8b8fd4c 100644 --- a/web/settings/assets/inverter-Ci3SfwIV.js +++ b/web/settings/assets/inverter-CJF4atrW.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as c,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHInverter",mixins:[s]},_={class:"device-kaco-nh-inverter"};function f(o,e,v,b,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Kaco NH Wechselrichter ",-1)])]),_:1}),t(r,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/inverter.vue"]]);export{q as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as c,m as t,q as l,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"DeviceKacoNHInverter",mixins:[s]},_={class:"device-kaco-nh-inverter"};function f(o,e,v,b,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:l(()=>[...e[1]||(e[1]=[d(" Einstellungen für Kaco NH Wechselrichter ",-1)])]),_:1}),t(r,{title:"ID",required:"",min:"0",max:"65535","model-value":o.component.configuration.id,"onUpdate:modelValue":e[0]||(e[0]=a=>o.updateConfiguration(a,"configuration.id"))},null,8,["model-value"])])}const q=p(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_nh/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-B8AbK5LS.js b/web/settings/assets/inverter-CZL0apch.js similarity index 88% rename from web/settings/assets/inverter-B8AbK5LS.js rename to web/settings/assets/inverter-CZL0apch.js index d956e9eb78..f6f3a88167 100644 --- a/web/settings/assets/inverter-B8AbK5LS.js +++ b/web/settings/assets/inverter-CZL0apch.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as n,k as u,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{I as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as n,k as u,e as c,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceMTecInverter",mixins:[a]},_={class:"device-mtec-inverter"};function b(o,e,f,v,g,w){const s=n("openwb-base-heading"),m=n("openwb-base-number-input");return u(),c("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für M-Tec Wechselrichter ",-1)])]),_:1}),t(m,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=p=>o.updateConfiguration(p,"configuration.modbus_id"))},{help:i(()=>[...e[2]||(e[2]=[r(" Die Standard-Modbus-ID von M-Tec ist 247 ",-1)])]),_:1},8,["model-value"])])}const I=d(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/mtec/mtec/inverter.vue"]]);export{I as default}; diff --git a/web/settings/assets/inverter-D0gOX-_P.js b/web/settings/assets/inverter-C_8-RWzk.js similarity index 90% rename from web/settings/assets/inverter-D0gOX-_P.js rename to web/settings/assets/inverter-C_8-RWzk.js index b04fd74ab2..6c9f4881cf 100644 --- a/web/settings/assets/inverter-D0gOX-_P.js +++ b/web/settings/assets/inverter-C_8-RWzk.js @@ -1 +1 @@ -import{C as d}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},f={class:"device-discovergy-inverter"};function g(t,e,_,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const $=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{$ as default}; +import{C as d}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as u,e as c,m as r,q as i,A as o,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceDiscovergyInverter",mixins:[d]},f={class:"device-discovergy-inverter"};function g(t,e,_,b,w,x){const s=n("openwb-base-heading"),a=n("openwb-base-text-input");return u(),c("div",f,[r(s,null,{default:i(()=>[...e[1]||(e[1]=[o(" Einstellungen für Discovergy Wechselrichter ",-1)])]),_:1}),r(a,{title:"Meter-ID",required:"","model-value":t.component.configuration.meter_id,"onUpdate:modelValue":e[0]||(e[0]=p=>t.updateConfiguration(p,"configuration.meter_id"))},{help:i(()=>[...e[2]||(e[2]=[o(" Um die ID herauszufinden mit dem Browser die Adresse ",-1),l("a",{href:"https://api.discovergy.com/public/v1/meters",target:"_blank",rel:"noopener noreferrer"}," https://api.discovergy.com/public/v1/meters ",-1),o(" aufrufen und dort Benutzername und Passwort eingeben. Hier wird nun u.a. die ID des Zählers angezeigt. ",-1)])]),_:1},8,["model-value"])])}const $=m(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/discovergy/discovergy/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-DBFgbhVo.js b/web/settings/assets/inverter-CiPvqfmh.js similarity index 89% rename from web/settings/assets/inverter-DBFgbhVo.js rename to web/settings/assets/inverter-CiPvqfmh.js index b8e4a87200..4fb41435b2 100644 --- a/web/settings/assets/inverter-DBFgbhVo.js +++ b/web/settings/assets/inverter-CiPvqfmh.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as o,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),s=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])]),_:1}),n(s,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as o,k as l,e as u,m as n,q as c,A as m}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"DeviceKostalStecaInverter",mixins:[r]},_={class:"device-kostal-steca-inverter"};function f(t,e,v,b,g,k){const a=o("openwb-base-heading"),s=o("openwb-base-button-group-input");return l(),u("div",_,[n(a,null,{default:c(()=>[...e[1]||(e[1]=[m(" Einstellungen für Kostal Piko MP oder Steca Grid Coolcept Wechselrichter ",-1)])]),_:1}),n(s,{title:"Variante",buttons:[{buttonValue:!1,text:"Kostal Piko MP (non-plus)"},{buttonValue:!0,text:"Kostal Piko MP oder Steca Grid Coolcept"}],"model-value":t.component.configuration.variant_steca,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.variant_steca"))},null,8,["model-value"])])}const h=p(d,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kostal/kostal_steca/inverter.vue"]]);export{h as default}; diff --git a/web/settings/assets/inverter-D8K2CFDi.js b/web/settings/assets/inverter-CmIS6Rxf.js similarity index 87% rename from web/settings/assets/inverter-D8K2CFDi.js rename to web/settings/assets/inverter-CmIS6Rxf.js index 5c4155acd4..c8b05699b4 100644 --- a/web/settings/assets/inverter-D8K2CFDi.js +++ b/web/settings/assets/inverter-CmIS6Rxf.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisInverter",mixins:[p]},_={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Wechselrichter ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{D as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolisInverter",mixins:[p]},_={class:"device-solis-inverter"};function b(o,e,f,v,g,w){const i=n("openwb-base-heading"),s=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solis Wechselrichter ",-1)])]),_:1}),t(s,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const D=a(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solis/solis/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-D9Thnvbs.js b/web/settings/assets/inverter-DBEU38Ze.js similarity index 87% rename from web/settings/assets/inverter-D9Thnvbs.js rename to web/settings/assets/inverter-DBEU38Ze.js index 164b6e72bb..631a68511a 100644 --- a/web/settings/assets/inverter-D9Thnvbs.js +++ b/web/settings/assets/inverter-DBEU38Ze.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxInverter",mixins:[a]},_={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolarmaxInverter",mixins:[a]},_={class:"device-solarmax-inverter"};function b(o,e,f,v,x,g){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return p(),l("div",_,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-8vpAsJFV.js b/web/settings/assets/inverter-DJMrcxw5.js similarity index 87% rename from web/settings/assets/inverter-8vpAsJFV.js rename to web/settings/assets/inverter-DJMrcxw5.js index a468009230..f013af1aee 100644 --- a/web/settings/assets/inverter-8vpAsJFV.js +++ b/web/settings/assets/inverter-DJMrcxw5.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOneInverter",mixins:[a]},_={class:"device-solakon-one-inverter"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolakonOneInverter",mixins:[a]},_={class:"device-solakon-one-inverter"};function b(o,e,f,v,g,k){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),l("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solakon One Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=p(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solakon/solakon_one/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-ACq6R7xB.js b/web/settings/assets/inverter-DQZrmUb6.js similarity index 88% rename from web/settings/assets/inverter-ACq6R7xB.js rename to web/settings/assets/inverter-DQZrmUb6.js index 7df5fa35da..8c4a32a28a 100644 --- a/web/settings/assets/inverter-ACq6R7xB.js +++ b/web/settings/assets/inverter-DQZrmUb6.js @@ -1 +1 @@ -import{C as m}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as o,k as l,e as u,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseInverter",mixins:[m]},_={class:"device-enphase-inverter"};function f(n,e,v,b,g,h){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return l(),u("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])]),_:1}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[r(' EID für "production" ',-1)])]),_:1},8,["model-value"])])}const D=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{D as default}; +import{C as m}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as o,k as l,e as u,m as t,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceEnphaseInverter",mixins:[m]},_={class:"device-enphase-inverter"};function f(n,e,v,b,g,h){const s=o("openwb-base-heading"),p=o("openwb-base-number-input");return l(),u("div",_,[t(s,null,{default:i(()=>[...e[1]||(e[1]=[r(" Einstellungen für Enphase Envoy / IQ Gateway Wechselrichter ",-1)])]),_:1}),t(p,{title:"EID",required:"","model-value":n.component.configuration.eid,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.eid"))},{help:i(()=>[...e[2]||(e[2]=[r(' EID für "production" ',-1)])]),_:1},8,["model-value"])])}const D=d(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/enphase/enphase/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-0RghKIsx.js b/web/settings/assets/inverter-Ddd-hTPo.js similarity index 87% rename from web/settings/assets/inverter-0RghKIsx.js rename to web/settings/assets/inverter-Ddd-hTPo.js index 91deed84eb..ca2d803be0 100644 --- a/web/settings/assets/inverter-0RghKIsx.js +++ b/web/settings/assets/inverter-Ddd-hTPo.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{q as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as a,l as n,k as m,e as d,m as t,q as u,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceFoxEssInverter",mixins:[p]},c={class:"device-fox_ess-inverter"};function f(o,e,b,v,x,g){const s=n("openwb-base-heading"),i=n("openwb-base-number-input");return m(),d("div",c,[t(s,null,{default:u(()=>[...e[1]||(e[1]=[l(" Einstellungen für FoxEss Wechselrichter ",-1)])]),_:1}),t(i,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=r=>o.updateConfiguration(r,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(_,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fox_ess/fox_ess/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-DJnr53ar.js b/web/settings/assets/inverter-DnZJ8VZ2.js similarity index 95% rename from web/settings/assets/inverter-DJnr53ar.js rename to web/settings/assets/inverter-DnZJ8VZ2.js index 1d65587303..76bcd5a638 100644 --- a/web/settings/assets/inverter-DJnr53ar.js +++ b/web/settings/assets/inverter-DnZJ8VZ2.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,c,j,_){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const A=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{A as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as a,k as p,e as m,m as o,q as l,A as i,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"DeviceJsonInverter",mixins:[s]},b={class:"device-json-inverter"};function v(n,e,w,c,j,_){const u=a("openwb-base-heading"),r=a("openwb-base-text-input");return p(),m("div",b,[o(u,null,{default:l(()=>[...e[5]||(e[5]=[i(" Einstellungen für JSON Wechselrichter ",-1)])]),_:1}),o(r,{title:"Abfrage für Leistung",subtype:"text",required:"","model-value":n.component.configuration.jq_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.jq_power"))},{help:l(()=>[...e[6]||(e[6]=[i(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"PowerInstalledPeak":4655, "PowerProduced":132, "PowerOut":897.08172362555717, "PowerSelfSupplied":234.9182763744428} So muss hier .PowerOut eingetragen werden. ',-1),f("br",null,null,-1),i(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Zählerstand",subtype:"text","model-value":n.component.configuration.jq_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.jq_exported"))},{help:l(()=>[...e[7]||(e[7]=[i(" Wird dieses Feld leer gelassen, dann werden Zählerstände intern simuliert. ",-1)])]),_:1},8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 1",subtype:"text","model-value":n.component.configuration.jq_current_l1,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.jq_current_l1"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 2",subtype:"text","model-value":n.component.configuration.jq_current_l2,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.jq_current_l2"))},null,8,["model-value"]),o(r,{title:"Abfrage für Strom auf Phase 3",subtype:"text","model-value":n.component.configuration.jq_current_l3,"onUpdate:modelValue":e[4]||(e[4]=t=>n.updateConfiguration(t,"configuration.jq_current_l3"))},null,8,["model-value"])])}const A=d(g,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/json/inverter.vue"]]);export{A as default}; diff --git a/web/settings/assets/inverter-Dt-0cVGJ.js b/web/settings/assets/inverter-DvXw3D7a.js similarity index 79% rename from web/settings/assets/inverter-Dt-0cVGJ.js rename to web/settings/assets/inverter-DvXw3D7a.js index 644a152a32..8c73e75f4c 100644 --- a/web/settings/assets/inverter-Dt-0cVGJ.js +++ b/web/settings/assets/inverter-DvXw3D7a.js @@ -1 +1 @@ -import{C as e}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,k as t,e as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const $=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{$ as default}; +import{C as e}from"./HardwareInstallation-DW5TYu17.js";import{_ as n,k as t,e as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const o={name:"DeviceBenningInverter",mixins:[e]},r={class:"device-benning-inverter"};function s(p,c,m,a,_,v){return t(),i("div",r)}const $=n(o,[["render",s],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/benning/benning/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-CbwWOoTg.js b/web/settings/assets/inverter-JBoSg5MK.js similarity index 94% rename from web/settings/assets/inverter-CbwWOoTg.js rename to web/settings/assets/inverter-JBoSg5MK.js index 3960dd6e5f..9acfd135c1 100644 --- a/web/settings/assets/inverter-CbwWOoTg.js +++ b/web/settings/assets/inverter-JBoSg5MK.js @@ -1 +1 @@ -import{C as p}from"./HardwareInstallation-DrK-NlWu.js";import{_ as u,l,k as m,e as g,m as r,q as o,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>[...e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])]),_:1}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>[...e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>[...e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const W=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{W as default}; +import{C as p}from"./HardwareInstallation-DW5TYu17.js";import{_ as u,l,k as m,e as g,m as r,q as o,A as n,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const h={name:"DeviceHttpInverter",mixins:[p]},c={class:"device-http-inverter"};function b(t,e,v,f,w,_){const d=l("openwb-base-heading"),s=l("openwb-base-text-input");return m(),g("div",c,[r(d,null,{default:o(()=>[...e[2]||(e[2]=[n(" Einstellungen für Http Wechselrichter ",-1)])]),_:1}),r(s,{title:"Pfad für Leistung",subtype:"text",required:"",pattern:"^/[-a-zA-Z0-9@:%_\\+.~#?&/=]*","model-value":t.component.configuration.power_path,"onUpdate:modelValue":e[0]||(e[0]=i=>t.updateConfiguration(i,"configuration.power_path"))},{help:o(()=>[...e[3]||(e[3]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Leistung in Watt darstellt. Produzierte Leistung muss ein negatives Vorzeichen haben. (In bestimmten Konstellationen, z.B. wenn ein Hybridsystem über einen zweiten Wechselrichter geladen wird, hat die Leistung ein positives Vorzeichen.) ",-1)])]),_:1},8,["model-value"]),r(s,{title:"Pfad für Zählerstand Erzeugung",subtype:"text",pattern:"^(/[-a-zA-Z0-9@:%_\\+.~#?&/=]*)","model-value":t.component.configuration.exported_path,"onUpdate:modelValue":e[1]||(e[1]=i=>t.updateConfiguration(i,"configuration.exported_path"))},{help:o(()=>[...e[4]||(e[4]=[n(' Diese Angabe wird an die Server-URL angehängt und muss mit einem Schrägstrich "/" beginnen.',-1),a("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen absoluten Zählerstand in Wh darstellt.",-1),a("br",null,null,-1),n(" Wird dieses Feld leer gelassen, wird der Zählerstand intern simuliert. ",-1)])]),_:1},8,["model-value"])])}const W=u(h,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/generic/http/inverter.vue"]]);export{W as default}; diff --git a/web/settings/assets/inverter-DIStW2Xn.js b/web/settings/assets/inverter-Nqq-ojGV.js similarity index 93% rename from web/settings/assets/inverter-DIStW2Xn.js rename to web/settings/assets/inverter-Nqq-ojGV.js index f0264ceb74..bc6158bb61 100644 --- a/web/settings/assets/inverter-DIStW2Xn.js +++ b/web/settings/assets/inverter-Nqq-ojGV.js @@ -1 +1 @@ -import{C as l}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as b,e as v,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>[...e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])]),_:1}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>[...e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>[...e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])]),_:1},8,["model-value"])])}const E=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{E as default}; +import{C as l}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as t,k as b,e as v,m as r,q as i,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceSunnyBoyInverter",mixins:[l]},_={class:"device-sunnyboy-inverter"};function g(n,e,y,c,w,C){const s=t("openwb-base-heading"),u=t("openwb-base-button-group-input"),d=t("openwb-base-select-input"),p=t("openwb-base-number-input");return b(),v("div",_,[r(s,null,{default:i(()=>[...e[3]||(e[3]=[a(" Einstellungen für SMA Sunny Boy/Tripower Wechselrichter ",-1)])]),_:1}),r(u,{title:"Hybrid-System",buttons:[{buttonValue:!1,text:"nicht vorhanden"},{buttonValue:!0,text:"vorhanden"}],"model-value":n.component.configuration.hybrid,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.hybrid"))},{help:i(()=>[...e[4]||(e[4]=[a(" Diese Option aktivieren, wenn ein Tripower Smart Energy, Sunny Boy Smart Energy oder ein anderes Hybrid-System verbaut ist. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Version","not-selected":"Bitte auswählen",options:[{value:0,text:"Standard"},{value:1,text:"Core-2"},{value:2,text:"Data Manager/Cluster Controller"}],"model-value":n.component.configuration.version,required:"","onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.version"))},null,8,["model-value"]),r(p,{title:"Modbus ID",required:"","model-value":n.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.modbus_id"))},{help:i(()=>[...e[5]||(e[5]=[a(" Für die Standardversion ist die Standardmodbus-ID 3, für Core-2 ist sie 1 und für Data Manager/Cluster Controller 2. Wurde eine abweichende Modbus ID konfiguriert, entsprechend anpassen. ",-1)])]),_:1},8,["model-value"])])}const E=m(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/sma/sma_sunny_boy/inverter.vue"]]);export{E as default}; diff --git a/web/settings/assets/inverter-YRLdoDau.js b/web/settings/assets/inverter-Tudrcp8A.js similarity index 86% rename from web/settings/assets/inverter-YRLdoDau.js rename to web/settings/assets/inverter-Tudrcp8A.js index dee40522d4..a8200656b2 100644 --- a/web/settings/assets/inverter-YRLdoDau.js +++ b/web/settings/assets/inverter-Tudrcp8A.js @@ -1 +1 @@ -import{C as r}from"./HardwareInstallation-DrK-NlWu.js";import{_ as n,l as s,k as o,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])]),_:1})])}const B=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{B as default}; +import{C as r}from"./HardwareInstallation-DW5TYu17.js";import{_ as n,l as s,k as o,e as i,m as a,q as p,A as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"DeviceVartaInverter",mixins:[r]},d={class:"varta-inverter"};function _(l,e,u,v,f,b){const t=s("openwb-base-alert");return o(),i("div",d,[a(t,{subtype:"info"},{default:p(()=>[...e[0]||(e[0]=[c(" Die Leistung des Wechselrichters ist nur verfügbar, wenn dieser über Sensor an Varta angebunden ist. Wechselrichter die per Modbus mit dem Speicher kommunizieren lassen sich nicht über den Varta PV-Sensor auslesen. ",-1)])]),_:1})])}const B=n(m,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/varta/varta/inverter.vue"]]);export{B as default}; diff --git a/web/settings/assets/inverter-CQscUjQi.js b/web/settings/assets/inverter-ecQY2yVW.js similarity index 91% rename from web/settings/assets/inverter-CQscUjQi.js rename to web/settings/assets/inverter-ecQY2yVW.js index 6ad5378f6c..94ca86e22d 100644 --- a/web/settings/assets/inverter-CQscUjQi.js +++ b/web/settings/assets/inverter-ecQY2yVW.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerInverter",mixins:[u]},_={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[o(a,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])]),_:1}),o(p,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const $=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{$ as default}; +import{C as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"DeviceVZLoggerInverter",mixins:[u]},_={class:"device-vzlogger-inverter"};function c(n,e,v,b,w,Z){const a=r("openwb-base-heading"),p=r("openwb-base-alert"),i=r("openwb-base-number-input");return m(),g("div",_,[o(a,null,{default:l(()=>[...e[2]||(e[2]=[s(" Einstellungen für VZLogger Wechselrichter ",-1)])]),_:1}),o(p,{subtype:"info"},{default:l(()=>[...e[3]||(e[3]=[s(' Bitte auf der Shell ausführen: "curl -s IPdesVZLogger:Port | jq .|cat -n" Zählen, in welcher Zeile der gesuchte Wert steht. Bei der ersten Zeile mit 1 anfangen zu zählen. ',-1)])]),_:1}),o(i,{title:"Zeile der Leistung",required:"",min:0,"model-value":n.component.configuration.line_power,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.line_power"))},null,8,["model-value"]),o(i,{title:"Zeile der exportierten Energie (Ertrag)",min:0,"model-value":n.component.configuration.line_exported,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.line_exported"))},null,8,["model-value"])])}const $=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/vzlogger/vzlogger/inverter.vue"]]);export{$ as default}; diff --git a/web/settings/assets/inverter-B-NdAxCX.js b/web/settings/assets/inverter-iIz-rAKJ.js similarity index 88% rename from web/settings/assets/inverter-B-NdAxCX.js rename to web/settings/assets/inverter-iIz-rAKJ.js index c9fd366737..88a79d5c62 100644 --- a/web/settings/assets/inverter-B-NdAxCX.js +++ b/web/settings/assets/inverter-iIz-rAKJ.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as p,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},_={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{D as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as p,e as u,m as t,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceHuaweiSmartLoggerInverter",mixins:[a]},_={class:"device-huawei-smart-logger-inverter"};function g(o,e,b,f,v,w){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return p(),u("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[l(" Einstellungen für Huawei SmartLogger Wechselrichter ",-1)])]),_:1}),t(r,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const D=m(c,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/huawei/huawei_smartlogger/inverter.vue"]]);export{D as default}; diff --git a/web/settings/assets/inverter-hdDYm9Uf.js b/web/settings/assets/inverter-nJJk1YCc.js similarity index 87% rename from web/settings/assets/inverter-hdDYm9Uf.js rename to web/settings/assets/inverter-nJJk1YCc.js index 52bcdd8c32..b1b63199fd 100644 --- a/web/settings/assets/inverter-hdDYm9Uf.js +++ b/web/settings/assets/inverter-nJJk1YCc.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Kaco Wechselrichter ",-1)])]),_:1}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{q as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as m,e as c,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const l={name:"DeviceKacoInverter",mixins:[a]},_={class:"device-kaco-inverter"};function b(o,e,f,v,g,x){const i=n("openwb-base-heading"),r=n("openwb-base-number-input");return m(),c("div",_,[t(i,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Kaco Wechselrichter ",-1)])]),_:1}),t(r,{title:"Kaco-Modbus-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const q=p(l,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/kaco/kaco_tx/inverter.vue"]]);export{q as default}; diff --git a/web/settings/assets/inverter-BbajKr0y.js b/web/settings/assets/inverter-pZ3BL9gj.js similarity index 87% rename from web/settings/assets/inverter-BbajKr0y.js rename to web/settings/assets/inverter-pZ3BL9gj.js index c091c770a2..effc8e30c2 100644 --- a/web/settings/assets/inverter-BbajKr0y.js +++ b/web/settings/assets/inverter-pZ3BL9gj.js @@ -1 +1 @@ -import{C as a}from"./HardwareInstallation-DrK-NlWu.js";import{_ as p,l as n,k as d,e as m,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolaredgeInverter",mixins:[a]},_={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return d(),m("div",_,[t(r,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{V as default}; +import{C as a}from"./HardwareInstallation-DW5TYu17.js";import{_ as p,l as n,k as d,e as m,m as t,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"DeviceSolaredgeInverter",mixins:[a]},_={class:"device-solaredge-inverter"};function f(o,e,g,b,v,w){const r=n("openwb-base-heading"),i=n("openwb-base-number-input");return d(),m("div",_,[t(r,null,{default:l(()=>[...e[1]||(e[1]=[u(" Einstellungen für SolarEdge Wechselrichter ",-1)])]),_:1}),t(i,{title:"SolarEdge-Geräte-ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=s=>o.updateConfiguration(s,"configuration.modbus_id"))},null,8,["model-value"])])}const V=p(c,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solaredge/solaredge/inverter.vue"]]);export{V as default}; diff --git a/web/settings/assets/inverter_maxstorage-DeCO1HV-.js b/web/settings/assets/inverter_maxstorage-21D0TjaH.js similarity index 88% rename from web/settings/assets/inverter_maxstorage-DeCO1HV-.js rename to web/settings/assets/inverter_maxstorage-21D0TjaH.js index 2e7f8e25b9..09d7d82597 100644 --- a/web/settings/assets/inverter_maxstorage-DeCO1HV-.js +++ b/web/settings/assets/inverter_maxstorage-21D0TjaH.js @@ -1 +1 @@ -import{C as s}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxMsInverter",mixins:[s]},c={class:"device-solarmax-inverter-maxstorage"};function b(o,e,f,x,v,g){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const k=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter_maxstorage.vue"]]);export{k as default}; +import{C as s}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as n,k as p,e as l,m as t,q as d,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const _={name:"DeviceSolarmaxMsInverter",mixins:[s]},c={class:"device-solarmax-inverter-maxstorage"};function b(o,e,f,x,v,g){const r=n("openwb-base-heading"),a=n("openwb-base-number-input");return p(),l("div",c,[t(r,null,{default:d(()=>[...e[1]||(e[1]=[u(" Einstellungen für Solarmax MAX.STORAGE / MAX.STORAGE Ultimate Wechselrichter ",-1)])]),_:1}),t(a,{title:"Modbus ID",required:"","model-value":o.component.configuration.modbus_id,min:"1",max:"255","onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const k=m(_,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/solarmax/solarmax/inverter_maxstorage.vue"]]);export{k as default}; diff --git a/web/settings/assets/inverter_production_meter-Coy7d4cu.js b/web/settings/assets/inverter_production_meter-CuurhLpB.js similarity index 95% rename from web/settings/assets/inverter_production_meter-Coy7d4cu.js rename to web/settings/assets/inverter_production_meter-CuurhLpB.js index 20e9e3d822..f4af78cde5 100644 --- a/web/settings/assets/inverter_production_meter-Coy7d4cu.js +++ b/web/settings/assets/inverter_production_meter-CuurhLpB.js @@ -1 +1 @@ -import{C as f}from"./HardwareInstallation-DrK-NlWu.js";import{_ as g,l as r,k as b,e as c,m as i,q as o,A as t,x as l,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceFroniusInverterProductionMeter",mixins:[f],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},w={class:"device-fronius-inverter-production-meter"},D=["href"];function h(n,e,k,M,S,s){const d=r("openwb-base-heading"),u=r("openwb-base-alert"),m=r("openwb-base-select-input"),p=r("openwb-base-number-input");return b(),c("div",w,[i(d,null,{default:o(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius Erzeugerzähler ",-1)])]),_:1}),i(u,{subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[t(" Zusätzlicher, externer Erzeuger, welcher über einen Smartmeter erfasst wird. ",-1)])]),_:1}),i(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.variant"))},{help:o(()=>[...e[4]||(e[4]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),i(p,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateConfiguration(a,"configuration.meter_id"))},{help:o(()=>[e[5]||(e[5]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},_(s.meterRealtimeUrl),9,D),e[6]||(e[6]=l("br",null,null,-1)),e[7]||(e[7]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const N=g(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_production_meter.vue"]]);export{N as default}; +import{C as f}from"./HardwareInstallation-DW5TYu17.js";import{_ as g,l as r,k as b,e as c,m as i,q as o,A as t,x as l,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"DeviceFroniusInverterProductionMeter",mixins:[f],computed:{meterRealtimeUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetMeterRealtimeData.cgi?Scope=System`}}}},w={class:"device-fronius-inverter-production-meter"},D=["href"];function h(n,e,k,M,S,s){const d=r("openwb-base-heading"),u=r("openwb-base-alert"),m=r("openwb-base-select-input"),p=r("openwb-base-number-input");return b(),c("div",w,[i(d,null,{default:o(()=>[...e[2]||(e[2]=[t(" Einstellungen für Fronius Erzeugerzähler ",-1)])]),_:1}),i(u,{subtype:"info"},{default:o(()=>[...e[3]||(e[3]=[t(" Zusätzlicher, externer Erzeuger, welcher über einen Smartmeter erfasst wird. ",-1)])]),_:1}),i(m,{title:"Kompatibilitätsmodus","not-selected":"Bitte auswählen",required:"",options:[{value:0,text:"Aus"},{value:1,text:"Variante 1"},{value:2,text:"Variante 2"}],"model-value":n.component.configuration.variant,"onUpdate:modelValue":e[0]||(e[0]=a=>n.updateConfiguration(a,"configuration.variant"))},{help:o(()=>[...e[4]||(e[4]=[t(" Gegebenenfalls auch für alte Modelle nach einem Softwareupdate erforderlich. Fronius hat derzeit keine Konsistente Schnittstelle. Speziell beim Gen24 kann Variante 1 oder 2 erforderlich sein. Nach speichern sollten nach etwa 10-20 Sekunden Daten angezeigt werden. Ist dies nicht der Fall die andere Variante ausprobieren. ",-1)])]),_:1},8,["model-value"]),i(p,{title:"Meter ID",required:"",min:"0",max:"65535","model-value":n.component.configuration.meter_id,"onUpdate:modelValue":e[1]||(e[1]=a=>n.updateConfiguration(a,"configuration.meter_id"))},{help:o(()=>[e[5]||(e[5]=t(" Die Meter ID des SmartMeters. Diese ist normalerweise 1. Bei mehreren SmartMetern im System kann es notwendig sein, die Meter ID zu ändern. Zur Ermittlung kann der folgende Link verwendet werden. Die Meter ID kann den zurückgegebenen JSON Daten entnommen werden. ",-1)),l("a",{href:s.meterRealtimeUrl,target:"_blank",rel:"noopener noreferrer"},_(s.meterRealtimeUrl),9,D),e[6]||(e[6]=l("br",null,null,-1)),e[7]||(e[7]=t(' Im Abschnitt "Body" -> "Data" werden die installierten SmartMeter mit aktuellen Messwerten angezeigt. Die Meter ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Messwerten. ',-1))]),_:1},8,["model-value"])])}const N=g(v,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_production_meter.vue"]]);export{N as default}; diff --git a/web/settings/assets/inverter_secondary-D3yQDLVg.js b/web/settings/assets/inverter_secondary-D81T0iKO.js similarity index 92% rename from web/settings/assets/inverter_secondary-D3yQDLVg.js rename to web/settings/assets/inverter_secondary-D81T0iKO.js index f6c0d30d39..65c6dc8872 100644 --- a/web/settings/assets/inverter_secondary-D3yQDLVg.js +++ b/web/settings/assets/inverter_secondary-D81T0iKO.js @@ -1 +1 @@ -import{C as u}from"./HardwareInstallation-DrK-NlWu.js";import{_ as m,l as t,k as f,e as c,m as i,q as s,A as n,x as a,J as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},_={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",_,[i(d,null,{default:s(()=>[...e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])]),_:1}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},g(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const U=m(w,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{U as default}; +import{C as u}from"./HardwareInstallation-DW5TYu17.js";import{_ as m,l as t,k as f,e as c,m as i,q as s,A as n,x as a,J as g}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"DeviceFroniusInverterSecondary",mixins:[u],computed:{powerFlowUrl:{get(){return`http://${this.device.configuration.ip_address}/solar_api/v1/GetPowerFlowRealtimeData.fcgi?Scope=System`}}}},_={class:"device-fronius-inverter-secondary"},v=["href"];function b(r,e,D,k,h,o){const d=t("openwb-base-heading"),l=t("openwb-base-number-input");return f(),c("div",_,[i(d,null,{default:s(()=>[...e[1]||(e[1]=[n(" Einstellungen für einen sekundären Wechselrichter ",-1)])]),_:1}),i(l,{title:"ID","model-value":r.component.configuration.id,min:"0",required:"","onUpdate:modelValue":e[0]||(e[0]=p=>r.updateConfiguration(p,"configuration.id"))},{help:s(()=>[e[2]||(e[2]=n(" Die ID des sekundären Wechselrichters. Diese ist für jede Installation individuell und muss ermittelt werden. Dafür kann der folgende Link verwendet werden. Die ID kann den zurückgegebenen JSON entnommen werden. ",-1)),a("a",{href:o.powerFlowUrl,target:"_blank",rel:"noopener noreferrer"},g(o.powerFlowUrl),9,v),e[3]||(e[3]=a("br",null,null,-1)),e[4]||(e[4]=n(' Im Abschnitt "Body" -> "Data" -> "SecondaryMeters" werden die installierten Zähler angezeigt. Die ID ist die Zahl vor dem Doppelpunkt und den zugehörigen Daten. ',-1))]),_:1},8,["model-value"])])}const U=m(w,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/devices/fronius/fronius/inverter_secondary.vue"]]);export{U as default}; diff --git a/web/settings/assets/io_action-B9LeEnBs.js b/web/settings/assets/io_action-B4e-bIRM.js similarity index 96% rename from web/settings/assets/io_action-B9LeEnBs.js rename to web/settings/assets/io_action-B4e-bIRM.js index 85efe2656a..d780755c81 100644 --- a/web/settings/assets/io_action-B9LeEnBs.js +++ b/web/settings/assets/io_action-B4e-bIRM.js @@ -1 +1 @@ -import{a as b}from"./IoConfiguration-hMQZDwaS.js";import{O as v}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as u,k as a,e as l,y as d,u as s,m as f,q as w,A as p,x as k,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const V={name:"IoActionDimming",components:{OpenwbIoSinglePattern:v},mixins:[b],computed:{value:{get(){return this.ioAction?.configuration?.input_pattern||[]},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},isPatternConfigured(){return this.value?.length>0&&this.value[0].matrix&&Object.keys(this.value[0].matrix).length>0},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices?.forEach(t=>{let o=[];Object.keys(t?.output?.digital||{}).forEach(r=>{o.push({text:`${r}`,value:{type:"io",id:t.id,digital_output:r}})}),o.length>0&&e.push({label:t.name,options:o})}),e},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints?.map(t=>({value:{type:"cp",id:t.value},text:t.text}))||[]}].concat(this.ioDevicesOutputOptions)}}},A={key:2};function D(e,t,o,r,y,n){const g=u("openwb-io-single-pattern"),m=u("openwb-base-number-input"),c=u("openwb-base-select-input");return a(),l(_,null,[e.ioDevice?.type!=="eebus"&&n.value&&n.value.length>0?(a(),d(g,{key:0,modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=i=>n.value=i),contacts:e.ioDevice?.input?.digital||{}},null,8,["modelValue","contacts"])):s("",!0),e.ioAction?.configuration&&e.ioDevice?.type!=="eebus"?(a(),d(m,{key:1,title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!n.isPatternConfigured,"model-value":(e.ioAction.configuration.max_import_power||0)/1e3,"onUpdate:modelValue":t[1]||(t[1]=i=>e.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"])):s("",!0),e.ioDevice?.type!=="eebus"?(a(),l("hr",A)):s("",!0),f(c,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:e.ioDevice?.type!=="eebus"&&!n.isPatternConfigured,"model-value":e.ioAction?.configuration?.devices||[],"onUpdate:modelValue":t[2]||(t[2]=i=>e.updateConfiguration(i,"configuration.devices"))},{help:w(()=>[...t[3]||(t[3]=[p(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),k("br",null,null,-1),p(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const I=h(V,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{I as default}; +import{a as b}from"./IoConfiguration-CuIvy4Hb.js";import{O as v}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as u,k as a,e as l,y as d,u as s,m as f,q as w,A as p,x as k,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const V={name:"IoActionDimming",components:{OpenwbIoSinglePattern:v},mixins:[b],computed:{value:{get(){return this.ioAction?.configuration?.input_pattern||[]},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},isPatternConfigured(){return this.value?.length>0&&this.value[0].matrix&&Object.keys(this.value[0].matrix).length>0},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices?.forEach(t=>{let o=[];Object.keys(t?.output?.digital||{}).forEach(r=>{o.push({text:`${r}`,value:{type:"io",id:t.id,digital_output:r}})}),o.length>0&&e.push({label:t.name,options:o})}),e},availableDevices(){return[{label:"Ladepunkte",options:this.availableChargePoints?.map(t=>({value:{type:"cp",id:t.value},text:t.text}))||[]}].concat(this.ioDevicesOutputOptions)}}},A={key:2};function D(e,t,o,r,y,n){const g=u("openwb-io-single-pattern"),m=u("openwb-base-number-input"),c=u("openwb-base-select-input");return a(),l(_,null,[e.ioDevice?.type!=="eebus"&&n.value&&n.value.length>0?(a(),d(g,{key:0,modelValue:n.value,"onUpdate:modelValue":t[0]||(t[0]=i=>n.value=i),contacts:e.ioDevice?.input?.digital||{}},null,8,["modelValue","contacts"])):s("",!0),e.ioAction?.configuration&&e.ioDevice?.type!=="eebus"?(a(),d(m,{key:1,title:"maximale Bezugsleistung",unit:"kW",min:"0",step:"0.01",required:"",disabled:!n.isPatternConfigured,"model-value":(e.ioAction.configuration.max_import_power||0)/1e3,"onUpdate:modelValue":t[1]||(t[1]=i=>e.updateConfiguration(i*1e3,"configuration.max_import_power"))},null,8,["disabled","model-value"])):s("",!0),e.ioDevice?.type!=="eebus"?(a(),l("hr",A)):s("",!0),f(c,{title:"Anwenden auf...",groups:n.availableDevices,required:"",multiple:"",disabled:e.ioDevice?.type!=="eebus"&&!n.isPatternConfigured,"model-value":e.ioAction?.configuration?.devices||[],"onUpdate:modelValue":t[2]||(t[2]=i=>e.updateConfiguration(i,"configuration.devices"))},{help:w(()=>[...t[3]||(t[3]=[p(" Bitte die Ladepunkte und/oder digitale Ausgänge auswählen, welche berücksichtigt werden sollen. Es können mehrere Einträge ausgewählt werden. Bei steuerbaren Verbrauchseinrichtungen, die über einen digitalen Ausgang angesteuert werden, wird eine Leistung von 4,2 kW bei aktiver Dimmung angenommen. Ladepunkte werden so gesteuert, dass die angegebene Leistung am EVU-Punkt nicht überschritten wird. Eigene PV-Erzeugung und vorhandene Speicher werden berücksichtigt und zusätzlich genutzt.",-1),k("br",null,null,-1),p(' Zugeordnete digitale Ausgänge werden im nicht gedimmten Zustand aktiviert und im gedimmten Zustand deaktiviert. So ist sichergestellt, dass bei einem Verbindungsabbruch oder einem Ausfall der Steuerung die Verbraucher nicht ungewollt mit voller Leistung betrieben werden. Ein mit "NO" bezeichneter digitaler Ausgang ist also für den nicht gedimmten Zustand geschlossen und bei aktivierter Dimmung geöffnet. ',-1)])]),_:1},8,["groups","disabled","model-value"])],64)}const I=h(V,[["render",D],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming/io_action.vue"]]);export{I as default}; diff --git a/web/settings/assets/io_action-JT1W0Hwl.js b/web/settings/assets/io_action-CMnVuT9A.js similarity index 93% rename from web/settings/assets/io_action-JT1W0Hwl.js rename to web/settings/assets/io_action-CMnVuT9A.js index 7f05c19bd4..d0dc116396 100644 --- a/web/settings/assets/io_action-JT1W0Hwl.js +++ b/web/settings/assets/io_action-CMnVuT9A.js @@ -1 +1 @@ -import{a as v}from"./IoConfiguration-hMQZDwaS.js";import{O as f}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as s,k as n,e as p,y as r,q as d,A as c,u,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:f},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices.forEach(t=>{let i=[];Object.keys(t?.output?.digital||{}).forEach(a=>{i.push({text:`${a}`,value:{type:"io",id:t.id,digital_output:a}})}),i.length>0&&e.push({label:t.name,options:i})}),e.length===0&&e.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),e},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}},k={key:2};function y(e,t,i,a,D,o){const m=s("openwb-base-alert"),g=s("openwb-io-single-pattern"),b=s("openwb-base-select-input");return n(),p(_,null,[e.ioDevice?.type==="eebus"?(n(),r(m,{key:0,subtype:"warning"},{default:d(()=>[...t[2]||(t[2]=[c(" Steuerboxen mit EEBus-Schnistelle sind für Dimmen per Direktsteuerung nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):e.ioDevice?(n(),r(g,{key:1,modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=l=>o.value=l),contacts:e.ioDevice?.input?.digital},null,8,["modelValue","contacts"])):u("",!0),e.ioDevice?.type!=="eebus"?(n(),p("hr",k)):u("",!0),e.ioDevice?.type!=="eebus"?(n(),r(b,{key:3,title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":e.ioAction?.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateConfiguration(l,"configuration.devices"))},{help:d(()=>[...t[3]||(t[3]=[c(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])]),_:1},8,["groups","disabled","model-value"])):u("",!0)],64)}const P=h(w,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{P as default}; +import{a as v}from"./IoConfiguration-CuIvy4Hb.js";import{O as f}from"./OpenwbIoSinglePattern-C4hsIwwW.js";import{_ as h,l as s,k as n,e as p,y as r,q as d,A as c,u,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const w={name:"IoActionDimmingDirectControl",components:{OpenwbIoSinglePattern:f},mixins:[v],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(e){this.updateConfiguration(e,"configuration.input_pattern")}},ioDevicesOutputOptions(){let e=[];return this.availableIoDevices.forEach(t=>{let i=[];Object.keys(t?.output?.digital||{}).forEach(a=>{i.push({text:`${a}`,value:{type:"io",id:t.id,digital_output:a}})}),i.length>0&&e.push({label:t.name,options:i})}),e.length===0&&e.push({label:"Keine digitalen Ausgänge verfügbar",options:[]}),e},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(t=>({value:{type:"cp",id:t.value},text:t.text}))}].concat(this.ioDevicesOutputOptions)}}},k={key:2};function y(e,t,i,a,D,o){const m=s("openwb-base-alert"),g=s("openwb-io-single-pattern"),b=s("openwb-base-select-input");return n(),p(_,null,[e.ioDevice?.type==="eebus"?(n(),r(m,{key:0,subtype:"warning"},{default:d(()=>[...t[2]||(t[2]=[c(" Steuerboxen mit EEBus-Schnistelle sind für Dimmen per Direktsteuerung nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):e.ioDevice?(n(),r(g,{key:1,modelValue:o.value,"onUpdate:modelValue":t[0]||(t[0]=l=>o.value=l),contacts:e.ioDevice?.input?.digital},null,8,["modelValue","contacts"])):u("",!0),e.ioDevice?.type!=="eebus"?(n(),p("hr",k)):u("",!0),e.ioDevice?.type!=="eebus"?(n(),r(b,{key:3,title:"Verhalten anwenden auf...","not-selected":"Bitte auswählen","empty-value":[],groups:o.availableDevices,multiple:"",required:"",disabled:!(Object.keys(o.value[0].matrix).length>0),"model-value":e.ioAction?.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=l=>e.updateConfiguration(l,"configuration.devices"))},{help:d(()=>[...t[3]||(t[3]=[c(" Bitte die Ladepunkte und/oder digitalen Ausgänge auswählen, auf welche das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. Ladepunkte werden auf 4,2kW gedimmt, eine Verrechnung mit PV-Erzeugung findet nicht statt. ",-1)])]),_:1},8,["groups","disabled","model-value"])):u("",!0)],64)}const P=h(w,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/dimming_direct_control/io_action.vue"]]);export{P as default}; diff --git a/web/settings/assets/io_action-Des8D82O.js b/web/settings/assets/io_action-Cfwq0HWR.js similarity index 96% rename from web/settings/assets/io_action-Des8D82O.js rename to web/settings/assets/io_action-Cfwq0HWR.js index 03249d864f..81b59fc86b 100644 --- a/web/settings/assets/io_action-Des8D82O.js +++ b/web/settings/assets/io_action-Cfwq0HWR.js @@ -1 +1 @@ -import{a as f}from"./IoConfiguration-hMQZDwaS.js";import{O as v}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as h,l as u,k as i,e as l,y as p,q as s,A as a,J as g,u as r,m as k,x as w,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:v},mixins:[f],computed:{availableDevices(){let e=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:e.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:e}]}}},V={key:1},y={key:2};function B(e,t,o,D,z,c){const d=u("openwb-io-pattern"),m=u("openwb-base-select-input"),b=u("openwb-base-button-group-input");return i(),l(_,null,[e.ioDevice?.type!=="eebus"?(i(),p(d,{key:0,modelValue:e.ioAction.configuration.input_pattern,"onUpdate:modelValue":t[0]||(t[0]=n=>e.ioAction.configuration.input_pattern=n),contacts:e.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0),e.ioDevice?.type!=="eebus"?(i(),l("hr",V)):r("",!0),k(m,{modelValue:e.ioAction.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=n=>e.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:c.availableDevices,required:"",multiple:""},{help:s(()=>[...t[4]||(t[4]=[a(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),w("br",null,null,-1),a(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])]),_:1},8,["modelValue","groups"]),e.ioDevice?.type!=="eebus"?(i(),l("hr",y)):r("",!0),e.ioDevice?.type!=="eebus"?(i(),p(b,{key:3,modelValue:e.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":t[2]||(t[2]=n=>e.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:s(()=>[...t[5]||(t[5]=[a(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])]),_:1},8,["modelValue"])):r("",!0),e.ioAction.configuration.passthrough_enabled?(i(),p(d,{key:4,modelValue:e.ioAction.configuration.output_pattern,"onUpdate:modelValue":t[3]||(t[3]=n=>e.ioAction.configuration.output_pattern=n),contacts:e.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0)],64)}const $=h(A,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{$ as default}; +import{a as f}from"./IoConfiguration-CuIvy4Hb.js";import{O as v}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as h,l as u,k as i,e as l,y as p,q as s,A as a,J as g,u as r,m as k,x as w,K as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const A={name:"IoActionStepwiseControl",components:{OpenwbIoPattern:v},mixins:[f],computed:{availableDevices(){let e=this.availableComponents.filter(o=>o.type==="inverter").map(o=>({value:{type:o.type,id:o.value},text:o.text}));return[{label:e.length>0?"Wechselrichter":"Keine Wechselrichter verfügbar",options:e}]}}},V={key:1},y={key:2};function B(e,t,o,D,z,c){const d=u("openwb-io-pattern"),m=u("openwb-base-select-input"),b=u("openwb-base-button-group-input");return i(),l(_,null,[e.ioDevice?.type!=="eebus"?(i(),p(d,{key:0,modelValue:e.ioAction.configuration.input_pattern,"onUpdate:modelValue":t[0]||(t[0]=n=>e.ioAction.configuration.input_pattern=n),contacts:e.ioDevice.input.digital,"action-title":"Begrenzung","enable-add-delete":!1,class:"text-center"},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0),e.ioDevice?.type!=="eebus"?(i(),l("hr",V)):r("",!0),k(m,{modelValue:e.ioAction.configuration.devices,"onUpdate:modelValue":t[1]||(t[1]=n=>e.ioAction.configuration.devices=n),title:"Zugeordnete Erzeugungsanlagen...","not-selected":"Bitte auswählen","empty-value":[],groups:c.availableDevices,required:"",multiple:""},{help:s(()=>[...t[4]||(t[4]=[a(" Bitte die Erzeugungsanlagen auswählen, welche mit dieser Aktion gekoppelt sind. Es können mehrere Erzeugungsanlagen ausgewählt werden.",-1),w("br",null,null,-1),a(" Diese Zuordnung ist rein informativ und hat noch keine Auswirkungen auf die Funktionalität. Die Begrenzung der zugeordneten Erzeugungsanlagen wird im Status angezeigt. ",-1)])]),_:1},8,["modelValue","groups"]),e.ioDevice?.type!=="eebus"?(i(),l("hr",y)):r("",!0),e.ioDevice?.type!=="eebus"?(i(),p(b,{key:3,modelValue:e.ioAction.configuration.passthrough_enabled,"onUpdate:modelValue":t[2]||(t[2]=n=>e.ioAction.configuration.passthrough_enabled=n),title:"Ausgänge aktivieren",buttons:[{buttonValue:!1,text:"Nein"},{buttonValue:!0,text:"Ja"}],class:"mb-2",required:""},{help:s(()=>[...t[5]||(t[5]=[a(' Optional kann das Signal der konfigurierten Eingänge an Ausgänge durchgereicht ("durchgeschliffen") werden. Wird z.B. das Muster für 60% als aktiv erkannt, dann wird auch das hier festgelegte Ausgangsmuster für 60% aktiviert. ',-1)])]),_:1},8,["modelValue"])):r("",!0),e.ioAction.configuration.passthrough_enabled?(i(),p(d,{key:4,modelValue:e.ioAction.configuration.output_pattern,"onUpdate:modelValue":t[3]||(t[3]=n=>e.ioAction.configuration.output_pattern=n),contacts:e.ioDevice.output.digital,title:"Ausgangsmuster","action-title":"Begrenzung","enable-add-delete":!1,class:"text-center","show-check-pattern":!1},{default:s(n=>[a(g(n.pattern.value*100+"%"),1)]),_:1},8,["modelValue","contacts"])):r("",!0)],64)}const $=h(A,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/generator_systems/stepwise_control/io_action.vue"]]);export{$ as default}; diff --git a/web/settings/assets/io_action-BWKUJ45t.js b/web/settings/assets/io_action-iOBI7on-.js similarity index 92% rename from web/settings/assets/io_action-BWKUJ45t.js rename to web/settings/assets/io_action-iOBI7on-.js index 1f5c947809..01cc769662 100644 --- a/web/settings/assets/io_action-BWKUJ45t.js +++ b/web/settings/assets/io_action-iOBI7on-.js @@ -1 +1 @@ -import{a as b}from"./IoConfiguration-hMQZDwaS.js";import{O as g}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as f,l as i,k as o,e as p,y as l,q as r,A as d,m as _,u,K as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:g},mixins:[b],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}},h={key:2};function y(t,e,V,C,B,a){const m=i("openwb-base-alert"),s=i("openwb-base-select-input"),c=i("openwb-io-pattern");return o(),p(w,null,[t.ioDevice?.type==="eebus"?(o(),l(m,{key:0,subtype:"warning"},{default:r(()=>[...e[2]||(e[2]=[d(" Steuerboxen mit EEBus-Schnistelle sind für Rundsteuerempfänger-Aktionen nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):t.ioDevice?(o(),l(c,{key:1,modelValue:a.value,"onUpdate:modelValue":e[0]||(e[0]=n=>a.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:r(n=>[_(s,{modelValue:n.pattern.value,"onUpdate:modelValue":v=>n.pattern.value=v,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"])):u("",!0),t.ioDevice?.type!=="eebus"?(o(),p("hr",h)):u("",!0),t.ioDevice?.type!=="eebus"?(o(),l(s,{key:3,title:"Anwenden auf...","empty-value":[],groups:a.availableDevices,required:"",multiple:"","model-value":t.ioAction?.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:r(()=>[...e[3]||(e[3]=[d(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])]),_:1},8,["groups","model-value"])):u("",!0)],64)}const N=f(k,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{N as default}; +import{a as b}from"./IoConfiguration-CuIvy4Hb.js";import{O as g}from"./OpenwbIoPattern-DAvfzRSb.js";import{_ as f,l as i,k as o,e as p,y as l,q as r,A as d,m as _,u,K as w}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const k={name:"IoActionRippleControlReceiver",components:{OpenwbIoPattern:g},mixins:[b],computed:{value:{get(){return this.ioAction.configuration.input_pattern},set(t){this.updateConfiguration(t,"configuration.input_pattern")}},availableDevices(){return[{label:this.availableChargePoints.length>0?"Ladepunkte":"Keine Ladepunkte verfügbar",options:this.availableChargePoints.map(e=>({value:{type:"cp",id:e.value},text:e.text}))}]}}},h={key:2};function y(t,e,V,C,B,a){const m=i("openwb-base-alert"),s=i("openwb-base-select-input"),c=i("openwb-io-pattern");return o(),p(w,null,[t.ioDevice?.type==="eebus"?(o(),l(m,{key:0,subtype:"warning"},{default:r(()=>[...e[2]||(e[2]=[d(" Steuerboxen mit EEBus-Schnistelle sind für Rundsteuerempfänger-Aktionen nicht geeignet. Bitte wähle ein anderes I/O-Gerät aus. ",-1)])]),_:1})):t.ioDevice?(o(),l(c,{key:1,modelValue:a.value,"onUpdate:modelValue":e[0]||(e[0]=n=>a.value=n),contacts:t.ioDevice.input.digital,"enable-add-delete":!0,"min-patterns":2},{default:r(n=>[_(s,{modelValue:n.pattern.value,"onUpdate:modelValue":v=>n.pattern.value=v,required:"","not-selected":"Bitte auswählen","empty-value":null,options:[{value:0,text:"sperren"},{value:1,text:"freigeben"}]},null,8,["modelValue","onUpdate:modelValue"])]),_:1},8,["modelValue","contacts"])):u("",!0),t.ioDevice?.type!=="eebus"?(o(),p("hr",h)):u("",!0),t.ioDevice?.type!=="eebus"?(o(),l(s,{key:3,title:"Anwenden auf...","empty-value":[],groups:a.availableDevices,required:"",multiple:"","model-value":t.ioAction?.configuration.devices,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.devices"))},{help:r(()=>[...e[3]||(e[3]=[d(" Bitte die Ladepunkte auswählen, auf die das Verhalten angewendet werden soll. Es können mehrere Einträge ausgewählt werden. ",-1)])]),_:1},8,["groups","model-value"])):u("",!0)],64)}const N=f(k,[["render",y],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_actions/controllable_consumers/ripple_control_receiver/io_action.vue"]]);export{N as default}; diff --git a/web/settings/assets/io_device-ByQHLYHY.js b/web/settings/assets/io_device-CUm9h4iq.js similarity index 95% rename from web/settings/assets/io_device-ByQHLYHY.js rename to web/settings/assets/io_device-CUm9h4iq.js index e8c29eea25..2299485bfc 100644 --- a/web/settings/assets/io_device-ByQHLYHY.js +++ b/web/settings/assets/io_device-CUm9h4iq.js @@ -1 +1 @@ -import{O as m}from"./IoConfiguration-hMQZDwaS.js";import{C as f}from"./index-D_eD74fL.js";import{_ as g,l as s,k as h,e as b,m as a,q as l,A as i,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./dynamic-import-helper-BheWnx7M.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1}]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const o of Object.values(t))if(["external_openwb"].includes(o.type)){if(e.find(r=>r.value===o.configuration.ip_address))continue;e.push({value:o.configuration.ip_address,text:o.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?[]:[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,o,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>[...e[1]||(e[1]=[i(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),i(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),i(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),i(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])]),_:1}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>[...e[2]||(e[2]=[i(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),i(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])]),_:1},8,["groups","model-value"])])}const P=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{P as default}; +import{O as m}from"./IoConfiguration-CuIvy4Hb.js";import{C as f}from"./index-MVrRMMo2.js";import{_ as g,l as s,k as h,e as b,m as a,q as l,A as i,x as n}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./dynamic-import-helper-BheWnx7M.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";const _={name:"IoDeviceAddOn",mixins:[f,m],data(){return{mqttTopics:[{topic:"openWB/chargepoint/+/config",writeable:!1},{topic:"openWB/general/extern",writeable:!1}]}},computed:{configuredChargePoints(){const t=this.getWildcardTopics("openWB/chargepoint/+/config");let e=[];for(const o of Object.values(t))if(["external_openwb"].includes(o.type)){if(e.find(r=>r.value===o.configuration.ip_address))continue;e.push({value:o.configuration.ip_address,text:o.name})}return e},configuredDisplays(){return[]},availableIoSources:{get(){return this.$store.state.mqtt["openWB/general/extern"]===!0?[]:[{label:"Ladepunkte",options:this.configuredChargePoints},{label:"Zusatzdisplays",options:this.configuredDisplays}].filter(t=>t.options.length>0)}}}},v={class:"io-device-add-on"};function w(t,e,o,r,B,d){const u=s("openwb-base-alert"),p=s("openwb-base-select-input");return h(),b("div",v,[a(u,{subtype:"warning"},{default:l(()=>[...e[1]||(e[1]=[i(" Die Kontakte der AddOn-Platine sind nicht galvanisch oder optisch getrennt. Es wird dringend empfohlen, mit Koppelrelais zu arbeiten.",-1),n("br",null,null,-1),i(" Weiterhin muss für die Verwendung der Kontakte in einer openWB series2 eine weitere Kabeldurchführung in das Gehäuse gebohrt werden. Da es hierbei zu Undichtigkeiten kommen kann, ist dies nur von fachkundigen Personen durchzuführen.",-1),n("br",null,null,-1),i(" Es wird keine Haftung für Schäden übernommen, die durch die direkte Beschaltung der Kontakte oder eine zusätzliche Bohrung im Gehäuse entstehen.",-1),n("br",null,null,-1),i(" Es wird der Einsatz des Dimm- & Control-Kits empfohlen! ",-1)])]),_:1}),a(p,{title:"Installiert auf...","not-selected":"Bitte auswählen","empty-value":null,options:[{value:"localhost",text:"dieser openWB"}],groups:d.availableIoSources,"model-value":t.ioDevice.configuration.host,"onUpdate:modelValue":e[0]||(e[0]=c=>t.updateConfiguration(c,"configuration.host"))},{help:l(()=>[...e[2]||(e[2]=[i(" Bitte die Komponente auswählen, an der die Add-On-Platine installiert ist.",-1),n("br",null,null,-1),i(" Unterstützt werden:",-1),n("br",null,null,-1),n("ul",null,[n("li",null,"openWB standalone (als primary oder Zusatzdisplay)"),n("li",null,'openWB Ladepunkte als primary ("interne openWB") und secondary ("externe openWB")')],-1)])]),_:1},8,["groups","model-value"])])}const P=g(_,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/add_on/io_device.vue"]]);export{P as default}; diff --git a/web/settings/assets/io_device-BBOT5GiC.js b/web/settings/assets/io_device-DCk4IaIJ.js similarity index 92% rename from web/settings/assets/io_device-BBOT5GiC.js rename to web/settings/assets/io_device-DCk4IaIJ.js index 941304c2bc..1efca4197d 100644 --- a/web/settings/assets/io_device-BBOT5GiC.js +++ b/web/settings/assets/io_device-DCk4IaIJ.js @@ -1 +1 @@ -import{O as m}from"./IoConfiguration-hMQZDwaS.js";import{_ as p,l as r,k as c,e as b,m as n,q as l,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"IoDeviceEebus",mixins:[m]},v={class:"io-device-eebus"};function g(e,o,_,w,k,D){const u=r("openwb-base-number-input"),t=r("openwb-base-text-input"),s=r("openwb-base-button-input"),d=r("openwb-base-alert");return c(),b("div",v,[n(u,{title:"Port",required:"",min:1,max:65535,"model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),n(t,{title:"SKI-Schlüssel des VNB","model-value":e.ioDevice.configuration.remote_ski,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.remote_ski"))},null,8,["model-value"]),n(s,{title:"Zertifikat und SKI-Schlüssel","button-text":"Zertifikat und SKI-Schlüssel generieren",subtype:"warning",onButtonClicked:o[2]||(o[2]=i=>e.sendSystemCommand("createEebusCert",{io_device:e.ioDevice.id}))},{help:l(()=>[...o[3]||(o[3]=[a(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1}),n(d,{subtype:"danger"},{default:l(()=>[...o[4]||(o[4]=[a(" Vorhandene Zertifikate werden gelöscht. Der SKI-Schlüssel muss danach beim Netzbetreiber (VNB) neu eingetragen werden. ",-1)])]),_:1}),n(t,{title:"SKI-Schlüssel (zum Eintragen beim VNB)","model-value":e.ioDevice.configuration.cert_info.client_ski,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig ab","model-value":e.ioDevice.configuration.cert_info.not_before,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig bis","model-value":e.ioDevice.configuration.cert_info.not_after,readonly:!0},null,8,["model-value"]),n(t,{title:"Aussteller","model-value":e.ioDevice.configuration.cert_info.issuer,readonly:!0},null,8,["model-value"]),n(t,{title:"weitere Informationen","model-value":e.ioDevice.configuration.cert_info.subject,readonly:!0},null,8,["model-value"])])}const N=p(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/eebus/io_device.vue"]]);export{N as default}; +import{O as m}from"./IoConfiguration-CuIvy4Hb.js";import{_ as p,l as r,k as c,e as b,m as n,q as l,A as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"IoDeviceEebus",mixins:[m]},v={class:"io-device-eebus"};function g(e,o,_,w,k,D){const u=r("openwb-base-number-input"),t=r("openwb-base-text-input"),s=r("openwb-base-button-input"),d=r("openwb-base-alert");return c(),b("div",v,[n(u,{title:"Port",required:"",min:1,max:65535,"model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),n(t,{title:"SKI-Schlüssel des VNB","model-value":e.ioDevice.configuration.remote_ski,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.remote_ski"))},null,8,["model-value"]),n(s,{title:"Zertifikat und SKI-Schlüssel","button-text":"Zertifikat und SKI-Schlüssel generieren",subtype:"warning",onButtonClicked:o[2]||(o[2]=i=>e.sendSystemCommand("createEebusCert",{io_device:e.ioDevice.id}))},{help:l(()=>[...o[3]||(o[3]=[a(" Zugangstoken wird abgerufen und gespeichert, damit das Backup durchgeführt werden kann. Zugangstoken werden nur lokal auf dieser openWB gespeichert. ",-1)])]),_:1}),n(d,{subtype:"danger"},{default:l(()=>[...o[4]||(o[4]=[a(" Vorhandene Zertifikate werden gelöscht. Der SKI-Schlüssel muss danach beim Netzbetreiber (VNB) neu eingetragen werden. ",-1)])]),_:1}),n(t,{title:"SKI-Schlüssel (zum Eintragen beim VNB)","model-value":e.ioDevice.configuration.cert_info.client_ski,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig ab","model-value":e.ioDevice.configuration.cert_info.not_before,readonly:!0},null,8,["model-value"]),n(t,{title:"Zertifikat gültig bis","model-value":e.ioDevice.configuration.cert_info.not_after,readonly:!0},null,8,["model-value"]),n(t,{title:"Aussteller","model-value":e.ioDevice.configuration.cert_info.issuer,readonly:!0},null,8,["model-value"]),n(t,{title:"weitere Informationen","model-value":e.ioDevice.configuration.cert_info.subject,readonly:!0},null,8,["model-value"])])}const N=p(f,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/eebus/io_device.vue"]]);export{N as default}; diff --git a/web/settings/assets/io_device-mvR1tJtP.js b/web/settings/assets/io_device-Df6mTI7P.js similarity index 90% rename from web/settings/assets/io_device-mvR1tJtP.js rename to web/settings/assets/io_device-Df6mTI7P.js index 4249750aec..d514ffc923 100644 --- a/web/settings/assets/io_device-mvR1tJtP.js +++ b/web/settings/assets/io_device-Df6mTI7P.js @@ -1 +1 @@ -import{O as m}from"./IoConfiguration-hMQZDwaS.js";import{_ as a,l as r,k as p,e as s,m as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(e,o,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return p(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.ioDevice.configuration.host,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":e.ioDevice.configuration.modbus_id,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{q as default}; +import{O as m}from"./IoConfiguration-CuIvy4Hb.js";import{_ as a,l as r,k as p,e as s,m as t}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"IoDeviceDimmKit",mixins:[m]},l={class:"io-device-dimm-kit"};function v(e,o,c,f,_,b){const u=r("openwb-base-text-input"),n=r("openwb-base-number-input");return p(),s("div",l,[t(u,{title:"IP oder Hostname",subtype:"host",required:"","model-value":e.ioDevice.configuration.host,"onUpdate:modelValue":o[0]||(o[0]=i=>e.updateConfiguration(i,"configuration.host"))},null,8,["model-value"]),t(n,{title:"Port",required:"","model-value":e.ioDevice.configuration.port,"onUpdate:modelValue":o[1]||(o[1]=i=>e.updateConfiguration(i,"configuration.port"))},null,8,["model-value"]),t(n,{title:"Modbus-ID",required:"",min:1,max:255,"model-value":e.ioDevice.configuration.modbus_id,"onUpdate:modelValue":o[2]||(o[2]=i=>e.updateConfiguration(i,"configuration.modbus_id"))},null,8,["model-value"])])}const q=a(d,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/io_devices/dimm_kit/io_device.vue"]]);export{q as default}; diff --git a/web/settings/assets/monitoring-oAy7LKTI.js b/web/settings/assets/monitoring-CKhMIifd.js similarity index 93% rename from web/settings/assets/monitoring-oAy7LKTI.js rename to web/settings/assets/monitoring-CKhMIifd.js index 1eefc55f14..05d8b2f82c 100644 --- a/web/settings/assets/monitoring-oAy7LKTI.js +++ b/web/settings/assets/monitoring-CKhMIifd.js @@ -1 +1 @@ -import{M as l}from"./DataManagement-C57poL-r.js";import{_ as d,l as a,k as p,e as m,m as t,q as g,A as r,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,k,_,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return p(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>[...e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])]),_:1}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const S=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{S as default}; +import{M as l}from"./DataManagement-lM5_tcaR.js";import{_ as d,l as a,k as p,e as m,m as t,q as g,A as r,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"MonitoringZabbix",mixins:[l]},b={class:"monitoring-zabbix"};function v(n,e,k,_,w,y){const u=a("openwb-base-alert"),i=a("openwb-base-text-input");return p(),m("div",b,[t(u,{subtype:"info"},{default:g(()=>[...e[4]||(e[4]=[r(" Mit dem Monitoring-Service von openWB kannst Du Dein System ganz einfach überwachen. Einfach ",-1),s("a",{href:"https://wb-solution.de/produkt/aktives-monitoring-openwb-installation-2/",target:"_blank",rel:"noopener noreferrer"}," hier ",-1),r(" anmelden und Deine Zugangsdaten erhalten.",-1),s("br",null,null,-1),r("Alternativ kannst Du auch deinen eigenen Zabbix-Server aufsetzen und die Zugangsdaten hier eintragen. ",-1)])]),_:1}),t(i,{title:"Zielhost",subtype:"host",required:"","model-value":n.monitoring.configuration.destination_host,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.destination_host"))},null,8,["model-value"]),t(i,{title:"Eigener Hostname",subtype:"user",required:"","model-value":n.monitoring.configuration.hostname,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.hostname"))},null,8,["model-value"]),t(i,{title:"PSK Identifier",subtype:"text",required:"","model-value":n.monitoring.configuration.psk_identifier,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.psk_identifier"))},null,8,["model-value"]),t(i,{title:"PSK Key",subtype:"password",required:"","model-value":n.monitoring.configuration.psk_key,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.psk_key"))},null,8,["model-value"])])}const S=d(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/monitoring/zabbix/monitoring.vue"]]);export{S as default}; diff --git a/web/settings/assets/vehicle-BV1RfRrF.js b/web/settings/assets/vehicle-50Jll49o.js similarity index 97% rename from web/settings/assets/vehicle-BV1RfRrF.js rename to web/settings/assets/vehicle-50Jll49o.js index ef83fa4ce1..13effae3d0 100644 --- a/web/settings/assets/vehicle-BV1RfRrF.js +++ b/web/settings/assets/vehicle-50Jll49o.js @@ -1 +1 @@ -import{_ as h,l as r,k as f,e as b,m as i,q as a,A as s,x as k,a5 as v,a6 as c,a7 as _}from"./vendor-Bo8v-nQD.js";import{a as w}from"./vendor-axios-DdFvNBv9.js";import{C}from"./index-D_eD74fL.js";import{V as y}from"./VehicleConfiguration-B3d9qly5.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=v.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},U={class:"vehicle-soc-tesla"};function B(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return f(),b("div",U,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>[...n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])]),_:1},8,["model-value"]),i(m,null,{default:a(()=>[...n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])]),_:1}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>[...n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Tesla mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>[...n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])]),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>[...n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=k("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>[...n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>[...n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])]),_:1},8,["model-value"])])}const x=h(T,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{x as default}; +import{_ as h,l as r,k as f,e as b,m as i,q as a,A as s,x as k,a5 as v,a6 as c,a7 as _}from"./vendor-Bo8v-nQD.js";import{a as w}from"./vendor-axios-DdFvNBv9.js";import{C}from"./index-MVrRMMo2.js";import{V as y}from"./VehicleConfiguration-DZuJgE9z.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./dynamic-import-helper-BheWnx7M.js";const T={name:"VehicleSocTesla",mixins:[C,y],data(){return{tesla_api_oauth2:"https://auth.tesla.com/oauth2/v3",tesla_api_redirect:"https://auth.tesla.com/void/callback",tesla_api_owners:"https://owner-api.teslamotors.com/oauth/token",user_agent:"Mozilla/5.0 (iPhone; CPU iPhone OS 14_7_1 like Mac OS X) AppleWebKit/605.1.15 (KHTML, like Gecko) Mobile/15E148",code_challenge:null,code_verifier:null,page_not_found_url:null}},methods:{tesla_login_window(){this.tesla_gen_challenge();var e=window.open(this.tesla_gen_url(),"TeslaLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");e.focus()},tesla_gen_challenge(){this.code_verifier=c.encode(_.randomBytes(86)).replace(/[^a-zA-Z0-9]/gi,"").substring(0,86);const e=_.createHash("sha256").update(this.code_verifier).digest();this.code_challenge=c.encode(e),console.debug(this.code_verifier,this.code_verifier.length,this.code_challenge,this.code_challenge.length)},tesla_gen_url(){const e=new URL(this.tesla_api_oauth2+"/authorize/");return e.searchParams.append("client_id","ownerapi"),e.searchParams.append("code_challenge",this.code_challenge),e.searchParams.append("code_challenge_method","S256"),e.searchParams.append("redirect_uri",this.tesla_api_redirect),e.searchParams.append("response_type","code"),e.searchParams.append("scope","openid email offline_access"),e.searchParams.append("state","myteslaapp"),e},async tesla_login(){const e=v.parse(this.page_not_found_url,!0).query;if(console.debug("queryObject",e),!e.code){console.error("Something is wrong... Code does not exist in URL"),this.$root.postClientMessage("Die eingegebene URL ist ungültig.","danger");return}const n={url:this.tesla_api_owners,user_agent:this.user_agent,data:{grant_type:"authorization_code",client_id:"ownerapi",code:e.code,code_verifier:this.code_verifier,redirect_uri:this.tesla_api_redirect}};try{const o=await w.post(location.protocol+"//"+location.host+"/openWB/web/settings/modules/vehicles/tesla/tesla.php",JSON.parse(JSON.stringify(n)),{headers:{"Content-Type":"application/json",Accept:"application/json"}});console.debug("response",o),this.updateConfiguration({access_token:o.data.access_token,refresh_token:o.data.refresh_token,created_at:o.data.created_at,expires_in:o.data.expires_in},"configuration.token"),this.$root.postClientMessage("Token erfolgreich abgerufen.","success")}catch(o){console.error(o),this.$root.postClientMessage("Beim Abruf der Token ist ein Fehler aufgetreten!
"+o+"
","danger")}}}},U={class:"vehicle-soc-tesla"};function B(e,n,o,z,l,p){const u=r("openwb-base-number-input"),m=r("openwb-base-heading"),g=r("openwb-base-button-input"),d=r("openwb-base-text-input");return f(),b("div",U,[i(u,{title:"Fahrzeug-ID",required:"",min:0,"model-value":e.vehicle.configuration.tesla_ev_num,"onUpdate:modelValue":n[0]||(n[0]=t=>e.updateConfiguration(t,"configuration.tesla_ev_num"))},{help:a(()=>[...n[6]||(n[6]=[s(' Die ID des Fahrzeugs bei Tesla. Normalerweise "0" bei nur einem Fahrzeug im Konto. ',-1)])]),_:1},8,["model-value"]),i(m,null,{default:a(()=>[...n[7]||(n[7]=[s("Token abrufen oder eingeben",-1)])]),_:1}),i(g,{title:"1. Anmelden","button-text":"Bei Tesla Anmelden",subtype:"success",onButtonClicked:p.tesla_login_window},{help:a(()=>[...n[8]||(n[8]=[s(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Tesla mit Deinen Zugangsdaten anmelden kannst. ",-1)])]),_:1},8,["onButtonClicked"]),i(d,{modelValue:l.page_not_found_url,"onUpdate:modelValue":n[1]||(n[1]=t=>l.page_not_found_url=t),title:"2. URL kopieren und einfügen",subtype:"url","empty-value":null},{help:a(()=>[...n[9]||(n[9]=[s(' Hier die komplette URL (Text in der Adresszeile) aus dem geöffneten Browserfenster einfügen, wenn dort "Page Not Found" angezeigt wird. ',-1)])]),_:1},8,["modelValue"]),i(g,{title:"3. Token abrufen","button-text":"Jetzt abrufen",subtype:"success",disabled:l.page_not_found_url===null,onButtonClicked:p.tesla_login},{help:a(()=>[...n[10]||(n[10]=[s(" Der in der eingegebenen URL enthaltene Code wird genutzt, um ein Anmeldetoken bei Tesla abzurufen. Ist dies erfolgreich, so werden die Daten des Token in den weiteren Feldern automatisch eingegeben. ",-1)])]),_:1},8,["disabled","onButtonClicked"]),n[13]||(n[13]=k("hr",null,null,-1)),i(d,{title:"Access Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.access_token:"","onUpdate:modelValue":n[2]||(n[2]=t=>e.updateConfiguration(t,"configuration.token.access_token"))},null,8,["model-value"]),i(d,{title:"Refresh Token",pattern:"^(ey).*",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.refresh_token:"","onUpdate:modelValue":n[3]||(n[3]=t=>e.updateConfiguration(t,"configuration.token.refresh_token"))},null,8,["model-value"]),i(u,{title:"Erstellt um",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.created_at:0,"onUpdate:modelValue":n[4]||(n[4]=t=>e.updateConfiguration(t,"configuration.token.created_at"))},{help:a(()=>[...n[11]||(n[11]=[s(" Unix Timestamp des Zeitpunktes, an dem das Token erzeugt wurde. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Ungültig in",unit:"s",required:"","model-value":e.vehicle.configuration.token?e.vehicle.configuration.token.expires_in:0,"onUpdate:modelValue":n[5]||(n[5]=t=>e.updateConfiguration(t,"configuration.token.expires_in"))},{help:a(()=>[...n[12]||(n[12]=[s(" Zeitspanne in Sekunden, nach der das Token ungültig wird. ",-1)])]),_:1},8,["model-value"])])}const x=h(T,[["render",B],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tesla/vehicle.vue"]]);export{x as default}; diff --git a/web/settings/assets/vehicle-ClSMB-k7.js b/web/settings/assets/vehicle-B202xWbb.js similarity index 91% rename from web/settings/assets/vehicle-ClSMB-k7.js rename to web/settings/assets/vehicle-B202xWbb.js index 0109499a9d..3c0a10d3d4 100644 --- a/web/settings/assets/vehicle-ClSMB-k7.js +++ b/web/settings/assets/vehicle-B202xWbb.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfiguration-B3d9qly5.js";import{_ as l,l as s,k as a,e as u,m as i,q as p,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>[...e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const $=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{$ as default}; +import{V as r}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as l,l as s,k as a,e as u,m as i,q as p,A as d}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocSmartHello",mixins:[r]},f={class:"vehicle-soc-smart-hello"};function v(o,e,c,g,h,V){const n=s("openwb-base-text-input");return a(),u("div",f,[i(n,{title:"Benutzername",subtype:"user",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=t=>o.updateConfiguration(t,"configuration.user_id"))},null,8,["model-value"]),i(n,{title:"Kennwort",subtype:"password",required:"","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=t=>o.updateConfiguration(t,"configuration.password"))},null,8,["model-value"]),i(n,{title:"VIN",subtype:"text","model-value":o.vehicle.configuration.VIN,"onUpdate:modelValue":e[2]||(e[2]=t=>o.updateConfiguration(t,"configuration.VIN"))},{help:p(()=>[...e[3]||(e[3]=[d(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const $=l(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/smarthello/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/vehicle-ADVayxu-.js b/web/settings/assets/vehicle-BAqmA1wd.js similarity index 94% rename from web/settings/assets/vehicle-ADVayxu-.js rename to web/settings/assets/vehicle-BAqmA1wd.js index 3788c3eec2..50ffab08df 100644 --- a/web/settings/assets/vehicle-ADVayxu-.js +++ b/web/settings/assets/vehicle-BAqmA1wd.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfiguration-B3d9qly5.js";import{_ as m,l,k as f,e as b,m as i,q as r,A as t,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,C){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])]),_:1}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>[...e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])]),_:1},8,["model-value"])])}const x=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{x as default}; +import{V as p}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as m,l,k as f,e as b,m as i,q as r,A as t,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocVwid",mixins:[p]},v={class:"vehicle-soc-vwid"};function w(n,e,V,c,_,C){const s=l("openwb-base-alert"),u=l("openwb-base-text-input"),d=l("openwb-base-button-group-input");return f(),b("div",v,[i(s,{subtype:"info"},{default:r(()=>[...e[4]||(e[4]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),a("a",{href:"https://github.com/openWB/core/wiki/SoC-VWId",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul VWId",-1)])]),_:1}),i(u,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[5]||(e[5]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[6]||(e[6]=[t(" Das Passwort für die Anmeldung an den VW-Servern. ",-1)])]),_:1},8,["model-value"]),i(u,{title:"VIN",required:"","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.calculate_soc"))},{help:r(()=>[...e[8]||(e[8]=[t(" Berechnet den Ladestand (SoC) während der Ladung. ",-1),a("br",null,null,-1),t(" Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),a("br",null,null,-1)])]),_:1},8,["model-value"])])}const x=m(g,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/vwid/vehicle.vue"]]);export{x as default}; diff --git a/web/settings/assets/vehicle-TpGqMVx6.js b/web/settings/assets/vehicle-BGNpvKRV.js similarity index 96% rename from web/settings/assets/vehicle-TpGqMVx6.js rename to web/settings/assets/vehicle-BGNpvKRV.js index 5a56ef63f8..c90f0d9b4c 100644 --- a/web/settings/assets/vehicle-TpGqMVx6.js +++ b/web/settings/assets/vehicle-BGNpvKRV.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfiguration-B3d9qly5.js";import{_ as b,l as u,k as g,e as f,m as i,q as o,A as n,x as t,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocMqtt",mixins:[m]},w={class:"vehicle-soc-mqtt"};function k(l,e,B,z,x,I){const p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-button-group-input");return g(),f("div",w,[i(p,{subtype:"warning"},{default:o(()=>[e[1]||(e[1]=n(" Ist die ",-1)),e[2]||(e[2]=t("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=n(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),t("strong",null,`"Daten: Fahrzeug '`+s(l.vehicle.name)+"' ("+s(l.vehicleId)+') MQTT-Input"',1),e[4]||(e[4]=n(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:o(()=>[t("ul",null,[t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc ",1)]),_:1}),e[5]||(e[5]=t("br",null,null,-1)),e[6]||(e[6]=n(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[7]||(e[7]=t("br",null,null,-1)),e[8]||(e[8]=n(" Beispiel: ",-1)),e[9]||(e[9]=t("span",{class:"text-info"},"89.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),e[10]||(e[10]=t("br",null,null,-1)),e[11]||(e[11]=n(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),e[12]||(e[12]=t("br",null,null,-1)),e[13]||(e[13]=n(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),e[14]||(e[14]=t("br",null,null,-1)),e[15]||(e[15]=n(" Beispiel: ",-1)),e[16]||(e[16]=t("span",{class:"text-info"},"1748339524",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/range ",1)]),_:1}),e[17]||(e[17]=t("br",null,null,-1)),e[18]||(e[18]=n(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[19]||(e[19]=t("br",null,null,-1)),e[20]||(e[20]=n(" Diese Info ist optional.",-1)),e[21]||(e[21]=t("br",null,null,-1)),e[22]||(e[22]=n(" Beispiel: ",-1)),e[23]||(e[23]=t("span",{class:"text-info"},"356.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/odometer ",1)]),_:1}),e[24]||(e[24]=t("br",null,null,-1)),e[25]||(e[25]=n(" Aktueller Km-Stand des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[26]||(e[26]=t("br",null,null,-1)),e[27]||(e[27]=n(" Diese Info ist optional.",-1)),e[28]||(e[28]=t("br",null,null,-1)),e[29]||(e[29]=n(" Beispiel: ",-1)),e[30]||(e[30]=t("span",{class:"text-info"},"20356.5",-1))])])]),_:1}),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[0]||(e[0]=a=>l.updateConfiguration(a,"configuration.calculate_soc"))},{help:o(()=>[...e[31]||(e[31]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const N=b(v,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default}; +import{V as m}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as b,l as u,k as g,e as f,m as i,q as o,A as n,x as t,J as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocMqtt",mixins:[m]},w={class:"vehicle-soc-mqtt"};function k(l,e,B,z,x,I){const p=u("openwb-base-alert"),r=u("openwb-base-copy-to-clipboard"),d=u("openwb-base-button-group-input");return g(),f("div",w,[i(p,{subtype:"warning"},{default:o(()=>[e[1]||(e[1]=n(" Ist die ",-1)),e[2]||(e[2]=t("strong",null,"Benutzerverwaltung",-1)),e[3]||(e[3]=n(" aktiviert, dann muss ein Benutzer mit Schreibrechten für die entsprechenden Topics angelegt werden, damit openWB die Daten akzeptiert. Hierfür werden automatisch die benötigten Berechtigungen in der Rolle ",-1)),t("strong",null,`"Daten: Fahrzeug '`+s(l.vehicle.name)+"' ("+s(l.vehicleId)+') MQTT-Input"',1),e[4]||(e[4]=n(" angelegt, die einem Benutzer zugewiesen werden kann. ",-1))]),_:1}),i(p,{subtype:"info"},{default:o(()=>[t("ul",null,[t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc ",1)]),_:1}),e[5]||(e[5]=t("br",null,null,-1)),e[6]||(e[6]=n(" Fahrzeug-SoC mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[7]||(e[7]=t("br",null,null,-1)),e[8]||(e[8]=n(" Beispiel: ",-1)),e[9]||(e[9]=t("span",{class:"text-info"},"89.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/soc_timestamp ",1)]),_:1}),e[10]||(e[10]=t("br",null,null,-1)),e[11]||(e[11]=n(" Zeitstempel des SoCs in s als Unix-Zeitstempel",-1)),e[12]||(e[12]=t("br",null,null,-1)),e[13]||(e[13]=n(" Diese Info ist optional. Wird kein Wert für das Topic veröffentlicht, wird bei der Abfrage automatisch der aktuelle Zeitstempel gesetzt.",-1)),e[14]||(e[14]=t("br",null,null,-1)),e[15]||(e[15]=n(" Beispiel: ",-1)),e[16]||(e[16]=t("span",{class:"text-info"},"1748339524",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/range ",1)]),_:1}),e[17]||(e[17]=t("br",null,null,-1)),e[18]||(e[18]=n(" Reichweite des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[19]||(e[19]=t("br",null,null,-1)),e[20]||(e[20]=n(" Diese Info ist optional.",-1)),e[21]||(e[21]=t("br",null,null,-1)),e[22]||(e[22]=n(" Beispiel: ",-1)),e[23]||(e[23]=t("span",{class:"text-info"},"356.5",-1))]),t("li",null,[i(r,{class:"text-info",tooltip:"Topic kopieren"},{default:o(()=>[n(" openWB/set/mqtt/vehicle/"+s(l.vehicleId)+"/get/odometer ",1)]),_:1}),e[24]||(e[24]=t("br",null,null,-1)),e[25]||(e[25]=n(" Aktueller Km-Stand des Fahrzeugs in km mit Nachkommastellen (Float) oder Ganzzahl",-1)),e[26]||(e[26]=t("br",null,null,-1)),e[27]||(e[27]=n(" Diese Info ist optional.",-1)),e[28]||(e[28]=t("br",null,null,-1)),e[29]||(e[29]=n(" Beispiel: ",-1)),e[30]||(e[30]=t("span",{class:"text-info"},"20356.5",-1))])])]),_:1}),i(d,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":l.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[0]||(e[0]=a=>l.updateConfiguration(a,"configuration.calculate_soc"))},{help:o(()=>[...e[31]||(e[31]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const N=b(v,[["render",k],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mqtt/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-Br3C3ndJ.js b/web/settings/assets/vehicle-BNaGIvQj.js similarity index 93% rename from web/settings/assets/vehicle-Br3C3ndJ.js rename to web/settings/assets/vehicle-BNaGIvQj.js index 347ce21946..e38d48e622 100644 --- a/web/settings/assets/vehicle-Br3C3ndJ.js +++ b/web/settings/assets/vehicle-BNaGIvQj.js @@ -1 +1 @@ -import{V as p}from"./VehicleConfiguration-B3d9qly5.js";import{_ as l,l as s,k as d,e as m,m as r,q as i,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,V){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])]),_:1}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{N as default}; +import{V as p}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as l,l as s,k as d,e as m,m as r,q as i,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocCupra",mixins:[p]},g={class:"vehicle-soc-cupra"};function b(o,e,w,C,c,V){const u=s("openwb-base-alert"),a=s("openwb-base-text-input");return d(),m("div",g,[r(u,{subtype:"info"},{default:i(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Cupra",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Cupra",-1)])]),_:1}),r(a,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Cupra-Servern. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:i(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=l(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/cupra/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-BtE1rfvQ.js b/web/settings/assets/vehicle-BcbXWLFP.js similarity index 89% rename from web/settings/assets/vehicle-BtE1rfvQ.js rename to web/settings/assets/vehicle-BcbXWLFP.js index 276a01aa81..c3429d688d 100644 --- a/web/settings/assets/vehicle-BtE1rfvQ.js +++ b/web/settings/assets/vehicle-BcbXWLFP.js @@ -1 +1 @@ -import{V as r}from"./VehicleConfiguration-B3d9qly5.js";import{_ as u,l,k as p,e as s,m as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEvnotify",mixins:[r]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const a=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(a,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const q=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{q as default}; +import{V as r}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as u,l,k as p,e as s,m as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEvnotify",mixins:[r]},d={class:"vehicle-soc-evnotify"};function f(e,o,c,v,b,g){const a=l("openwb-base-number-input"),t=l("openwb-base-text-input");return p(),s("div",d,[i(a,{title:"ID",required:"",min:0,"model-value":e.vehicle.configuration.id,"onUpdate:modelValue":o[0]||(o[0]=n=>e.updateConfiguration(n,"configuration.id"))},null,8,["model-value"]),i(t,{title:"AKey",required:"","model-value":e.vehicle.configuration.akey,"onUpdate:modelValue":o[1]||(o[1]=n=>e.updateConfiguration(n,"configuration.akey"))},null,8,["model-value"]),i(t,{title:"Token",required:"","model-value":e.vehicle.configuration.token,"onUpdate:modelValue":o[2]||(o[2]=n=>e.updateConfiguration(n,"configuration.token"))},null,8,["model-value"])])}const q=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evnotify/vehicle.vue"]]);export{q as default}; diff --git a/web/settings/assets/vehicle-CUR0E3wk.js b/web/settings/assets/vehicle-Bi2svxY9.js similarity index 89% rename from web/settings/assets/vehicle-CUR0E3wk.js rename to web/settings/assets/vehicle-Bi2svxY9.js index af2dc421b5..1d29e74d69 100644 --- a/web/settings/assets/vehicle-CUR0E3wk.js +++ b/web/settings/assets/vehicle-Bi2svxY9.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfiguration-B3d9qly5.js";import{S as d}from"./SystemVersion-DQAfG1DR.js";import{_ as p,l as t,k as m,e as b,m as o,q as f,A as r,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocManual",mixins:[l,d]},c={class:"vehicle-soc-manual"},h=["href"];function _(n,e,k,w,v,z){const s=t("openwb-base-alert"),i=t("openwb-base-button-group-input");return m(),b("div",c,[o(s,{subtype:"info"},{default:f(()=>[e[1]||(e[1]=r(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC-Wert des Fahrzeugs über die Hauptseite oder (wenn verbaut) am Display der openWB angegeben werden. Anhand des geladenen Stroms wird der aktuelle SoC-Wert des Fahrzeugs während der Ladung berechnet. Ausschlaggebend für die Genauigkeit der Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. Weitere Infos dazu im ',-1)),a("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:fahrzeug-infos:manueller-soc`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zum manuellen SoC ",8,h),e[2]||(e[2]=r(".",-1)),e[3]||(e[3]=a("br",null,null,-1))]),_:1}),o(i,{title:"SoC ohne manuelle Eingabe",buttons:[{buttonValue:!1,text:"letzten SoC beibehalten"},{buttonValue:!0,text:"nach dem Abstecken auf 0% zurücksetzen"}],"model-value":n.vehicle.configuration.reset_after_unplug,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u,"configuration.reset_after_unplug"))},null,8,["model-value"])])}const F=p(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{F as default}; +import{V as l}from"./VehicleConfiguration-DZuJgE9z.js";import{S as d}from"./SystemVersion-DQAfG1DR.js";import{_ as p,l as t,k as m,e as b,m as o,q as f,A as r,x as a}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocManual",mixins:[l,d]},c={class:"vehicle-soc-manual"},h=["href"];function _(n,e,k,w,v,z){const s=t("openwb-base-alert"),i=t("openwb-base-button-group-input");return m(),b("div",c,[o(s,{subtype:"info"},{default:f(()=>[e[1]||(e[1]=r(' Beim Anstecken des Fahrzeugs muss der aktuelle SoC-Wert des Fahrzeugs über die Hauptseite oder (wenn verbaut) am Display der openWB angegeben werden. Anhand des geladenen Stroms wird der aktuelle SoC-Wert des Fahrzeugs während der Ladung berechnet. Ausschlaggebend für die Genauigkeit der Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. Weitere Infos dazu im ',-1)),a("a",{href:`https://wiki.openwb.de/doku.php?id=openwb:vc:${n.systemVersion}:software:fahrzeug-infos:manueller-soc`,target:"_blank",rel:"noopener noreferrer"}," Wiki-Beitrag zum manuellen SoC ",8,h),e[2]||(e[2]=r(".",-1)),e[3]||(e[3]=a("br",null,null,-1))]),_:1}),o(i,{title:"SoC ohne manuelle Eingabe",buttons:[{buttonValue:!1,text:"letzten SoC beibehalten"},{buttonValue:!0,text:"nach dem Abstecken auf 0% zurücksetzen"}],"model-value":n.vehicle.configuration.reset_after_unplug,"onUpdate:modelValue":e[0]||(e[0]=u=>n.updateConfiguration(u,"configuration.reset_after_unplug"))},null,8,["model-value"])])}const F=p(g,[["render",_],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/manual/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-DT7Lg5C4.js b/web/settings/assets/vehicle-Bwbyv3mH.js similarity index 92% rename from web/settings/assets/vehicle-DT7Lg5C4.js rename to web/settings/assets/vehicle-Bwbyv3mH.js index 7e47ecad5d..9c12158e40 100644 --- a/web/settings/assets/vehicle-DT7Lg5C4.js +++ b/web/settings/assets/vehicle-Bwbyv3mH.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfiguration-B3d9qly5.js";import{_ as u,l as s,k as d,e as p,m as t,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocKia",mixins:[a]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>[...e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const U=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{U as default}; +import{V as a}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as u,l as s,k as d,e as p,m as t,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocKia",mixins:[a]},v={class:"vehicle-soc-kia"};function f(o,e,g,w,V,b){const i=s("openwb-base-text-input");return d(),p("div",v,[t(i,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"PIN",required:"",subtype:"password","model-value":o.vehicle.configuration.pin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.pin"))},{help:r(()=>[...e[6]||(e[6]=[l(" Die PIN für die Anmeldung an den Servern. ",-1)])]),_:1},8,["model-value"]),t(i,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const U=u(m,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/kia/vehicle.vue"]]);export{U as default}; diff --git a/web/settings/assets/vehicle-D363Q7cB.js b/web/settings/assets/vehicle-BzXDEPgk.js similarity index 97% rename from web/settings/assets/vehicle-D363Q7cB.js rename to web/settings/assets/vehicle-BzXDEPgk.js index cb0b525a38..01f32605fc 100644 --- a/web/settings/assets/vehicle-D363Q7cB.js +++ b/web/settings/assets/vehicle-BzXDEPgk.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as s,k as g,e as b,m as r,q as i,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>[...e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>[...e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>[...e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>[...e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])]),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>[...e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>[...e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])]),_:1},8,["model-value"])])}const y=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{y as default}; +import{V as m}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as p,l as s,k as g,e as b,m as r,q as i,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocJson",mixins:[m]},w={class:"vehicle-soc-json"};function h(t,e,v,c,k,z){const a=s("openwb-base-text-input"),u=s("openwb-base-button-group-input"),d=s("openwb-base-number-input");return g(),b("div",w,[r(a,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.url"))},{help:i(()=>[...e[6]||(e[6]=[n(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen, optional einem Port und einem Pfad. Die Antwort muss ein json-Objekt sein. Beispiel: http://192.168.1.1:8080/json?data=1 ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.soc_pattern,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.soc_pattern"))},{help:i(()=>[...e[7]||(e[7]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.soc eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche den aktuellen Ladestand (SoC) darstellt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Reichweite",subtype:"text","model-value":t.vehicle.configuration.range_pattern,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.range_pattern"))},{help:i(()=>[...e[8]||(e[8]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.range eingetragen werden. ',-1),l("br",null,null,-1),n(" Es wird vom Server eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen erwartet, welche die aktuelle Reichweite darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird die Reichweite nicht abgefragt und auf Null gesetzt. ",-1)])]),_:1},8,["model-value"]),r(a,{title:"Abfrage für Zeitstempel",subtype:"text","model-value":t.vehicle.configuration.timestamp_pattern,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.timestamp_pattern"))},{help:i(()=>[...e[9]||(e[9]=[n(' Zur Analyse der Werte aus dem json-Objekt wird jq benutzt. Ist die Json Antwort z.B. {"response":{"soc":"39.8", "range": "207", "timestamp":1734054449}} So muss hier .response.timestamp eingetragen werden.',-1),l("br",null,null,-1),n(" Es wird vom Server entweder eine Zahl mit oder ohne Nachkommastellen (Float, Integer) und einem Punkt als Dezimaltrennzeichen als Epoch Zeitstempel oder eine ISO 8601 formatierte Zeit erwartet welche den Zeitstempel der gelieferten Werte darstellt.",-1),l("br",null,null,-1),n(" Ohne Angabe wird der Zeitpunkt des Datenabrufs als Zeitstempel verwendet. ",-1)])]),_:1},8,["model-value"]),r(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.calculate_soc"))},{help:i(()=>[...e[10]||(e[10]=[n(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),l("br",null,null,-1),n(" Derzeit u.a. notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"]),r(d,{title:"Timeout für http-Abfragen",subtype:"number","model-value":t.vehicle.configuration.timeout,"onUpdate:modelValue":e[5]||(e[5]=o=>t.updateConfiguration(o,"configuration.timeout"))},{help:i(()=>[...e[11]||(e[11]=[n(" Ermöglicht es einen Timeout für die http-Abfragen zu setzen. Der Wert wird in Sekunden angegeben. Standardwert ist 5 Sekunden sofern kein anderer Wert angegeben ist. ",-1)])]),_:1},8,["model-value"])])}const y=p(f,[["render",h],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/json/vehicle.vue"]]);export{y as default}; diff --git a/web/settings/assets/vehicle-DTOXQ3ag.js b/web/settings/assets/vehicle-CFiyg2u6.js similarity index 93% rename from web/settings/assets/vehicle-DTOXQ3ag.js rename to web/settings/assets/vehicle-CFiyg2u6.js index b77457db71..f47bc0f65b 100644 --- a/web/settings/assets/vehicle-DTOXQ3ag.js +++ b/web/settings/assets/vehicle-CFiyg2u6.js @@ -1 +1 @@ -import{V as s}from"./VehicleConfiguration-B3d9qly5.js";import{_ as d,l as a,k as p,e as m,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"VehicleSocHttp",mixins:[s]},g={class:"vehicle-soc-http"};function b(t,e,v,f,h,w){const l=a("openwb-base-text-input"),u=a("openwb-base-button-group-input");return p(),m("div",g,[o(l,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.soc_url"))},{help:i(()=>[...e[3]||(e[3]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.range_url"))},{help:i(()=>[...e[4]||(e[4]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:i(()=>[...e[5]||(e[5]=[r(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const B=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{B as default}; +import{V as s}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as d,l as a,k as p,e as m,m as o,q as i,A as r}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const c={name:"VehicleSocHttp",mixins:[s]},g={class:"vehicle-soc-http"};function b(t,e,v,f,h,w){const l=a("openwb-base-text-input"),u=a("openwb-base-button-group-input");return p(),m("div",g,[o(l,{title:"SoC URL",subtype:"url",required:"","model-value":t.vehicle.configuration.soc_url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.soc_url"))},{help:i(()=>[...e[3]||(e[3]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche den aktuellen Ladestand in Prozent (0 bis 100) zurückgibt. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Reichweiten URL",subtype:"url","model-value":t.vehicle.configuration.range_url,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.range_url"))},{help:i(()=>[...e[4]||(e[4]=[r(" Es wird vom Server eine Zahl (Float mit Punkt als Dezimaltrennzeichen oder Integer) erwartet, welche die aktuelle Reichweite in Kilometern darstellt. Diese Angabe ist optional. ",-1)])]),_:1},8,["model-value"]),o(u,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:i(()=>[...e[5]||(e[5]=[r(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC während der Ladung nicht aktualisiert wird. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1)])]),_:1},8,["model-value"])])}const B=d(c,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/http/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-uZMeCx8f.js b/web/settings/assets/vehicle-CHu8UU7R.js similarity index 94% rename from web/settings/assets/vehicle-uZMeCx8f.js rename to web/settings/assets/vehicle-CHu8UU7R.js index 0223b5f611..3327fab590 100644 --- a/web/settings/assets/vehicle-uZMeCx8f.js +++ b/web/settings/assets/vehicle-CHu8UU7R.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfiguration-B3d9qly5.js";import{_ as d,l as u,k as p,e as g,m as o,q as l,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>[...e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>[...e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>[...e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])]),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>[...e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const k=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{k as default}; +import{V as a}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as d,l as u,k as p,e as g,m as o,q as l,A as i,x as c}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocTronity",mixins:[a]},f={class:"vehicle-soc-tronity"};function b(n,e,v,C,w,h){const r=u("openwb-base-text-input"),s=u("openwb-base-button-group-input");return p(),g("div",f,[o(r,{title:"Vehicle ID",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_id,"onUpdate:modelValue":e[0]||(e[0]=t=>n.updateConfiguration(t,"configuration.vehicle_id"))},{help:l(()=>[...e[4]||(e[4]=[i(' Vehicle ID aus Tronity angeben. Diese ist in den "Assigned Vehicles" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client ID",subtype:"text",required:"","model-value":n.vehicle.configuration.client_id,"onUpdate:modelValue":e[1]||(e[1]=t=>n.updateConfiguration(t,"configuration.client_id"))},{help:l(()=>[...e[5]||(e[5]=[i(' Client ID aus Tronity angeben. Diese ist in den "Application Settings" zu finden. ',-1)])]),_:1},8,["model-value"]),o(r,{title:"Client Secret",subtype:"password",required:"","model-value":n.vehicle.configuration.client_secret,"onUpdate:modelValue":e[2]||(e[2]=t=>n.updateConfiguration(t,"configuration.client_secret"))},{help:l(()=>[...e[6]||(e[6]=[i(' Client Secret aus Tronity angeben. Diese ist in den "Application Settings" zu finden. Das Client Secret kann nur einmalig abgerufen werden. Ggf. neu erzeugen, womit frühere Client Secrets ungültig werden. ',-1)])]),_:1},8,["model-value"]),o(s,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":n.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[3]||(e[3]=t=>n.updateConfiguration(t,"configuration.calculate_soc"))},{help:l(()=>[...e[7]||(e[7]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),c("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const k=d(m,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/tronity/vehicle.vue"]]);export{k as default}; diff --git a/web/settings/assets/vehicle-lU7Zuadi.js b/web/settings/assets/vehicle-CMvQ9Clb.js similarity index 93% rename from web/settings/assets/vehicle-lU7Zuadi.js rename to web/settings/assets/vehicle-CMvQ9Clb.js index 3ca6f7ef8b..a9f3ed745b 100644 --- a/web/settings/assets/vehicle-lU7Zuadi.js +++ b/web/settings/assets/vehicle-CMvQ9Clb.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfiguration-B3d9qly5.js";import{_ as a,l as s,k as d,e as p,m as i,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>[...e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const A=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{A as default}; +import{V as u}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as a,l as s,k as d,e as p,m as i,q as r,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocRenault",mixins:[u]},f={class:"vehicle-soc-renault"};function v(n,e,g,V,w,b){const t=s("openwb-base-text-input");return d(),p("div",f,[i(t,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[l(" Der Benutzername für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[l(" Das Passwort für die Anmeldung an den Renault-Servern. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"Land",required:"","model-value":n.vehicle.configuration.country,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.country"))},{help:r(()=>[...e[6]||(e[6]=[l(" Land des Fahrzeugs, z.b. DE für Deutschland. ",-1)])]),_:1},8,["model-value"]),i(t,{title:"VIN","model-value":n.vehicle.configuration.vin,"onUpdate:modelValue":e[3]||(e[3]=o=>n.updateConfiguration(o,"configuration.vin"))},{help:r(()=>[...e[7]||(e[7]=[l(" Die Fahrgestellnummer des Fahrzeugs falls mehrere Fahrzeuge im Account vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const A=a(m,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/renault/vehicle.vue"]]);export{A as default}; diff --git a/web/settings/assets/vehicle-uRvyo-2W.js b/web/settings/assets/vehicle-CWdezBG4.js similarity index 94% rename from web/settings/assets/vehicle-uRvyo-2W.js rename to web/settings/assets/vehicle-CWdezBG4.js index cb95d9a277..5f9dcc54e0 100644 --- a/web/settings/assets/vehicle-uRvyo-2W.js +++ b/web/settings/assets/vehicle-CWdezBG4.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfiguration-B3d9qly5.js";import{_ as d,l,k as s,e as p,m as n,q as m,A as a,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>[...e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])]),_:1}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const B=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{B as default}; +import{V as u}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as d,l,k as s,e as p,m as n,q as m,A as a,x as v}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocAiways",mixins:[u]},g={class:"vehicle-soc-aiways"};function c(o,e,w,V,b,C){const r=l("openwb-base-alert"),t=l("openwb-base-text-input");return s(),p("div",g,[n(r,{subtype:"info"},{default:m(()=>[...e[6]||(e[6]=[a(" Alle Werte müssen von der Aiways App abgefangen werden. Dazu kann diese ",-1),v("a",{href:"https://community.home-assistant.io/t/read-aiways-u5-state-of-charge/466441/5"}," Anleitung ",-1),a(" verwendet werden. ",-1)])]),_:1}),n(t,{title:"User ID",required:"","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=i=>o.updateConfiguration(i,"configuration.user_id"))},null,8,["model-value"]),n(t,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[1]||(e[1]=i=>o.updateConfiguration(i,"configuration.vin"))},null,8,["model-value"]),n(t,{title:"Device ID",required:"","model-value":o.vehicle.configuration.device_id,"onUpdate:modelValue":e[2]||(e[2]=i=>o.updateConfiguration(i,"configuration.device_id"))},null,8,["model-value"]),n(t,{title:"Register ID",required:"","model-value":o.vehicle.configuration.register_id,"onUpdate:modelValue":e[3]||(e[3]=i=>o.updateConfiguration(i,"configuration.register_id"))},null,8,["model-value"]),n(t,{title:"Token",required:"","model-value":o.vehicle.configuration.token,"onUpdate:modelValue":e[4]||(e[4]=i=>o.updateConfiguration(i,"configuration.token"))},null,8,["model-value"]),n(t,{title:"Condition URL",subtype:"url",required:"","model-value":o.vehicle.configuration.condition_url,"onUpdate:modelValue":e[5]||(e[5]=i=>o.updateConfiguration(i,"configuration.condition_url"))},null,8,["model-value"])])}const B=d(f,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/aiways/vehicle.vue"]]);export{B as default}; diff --git a/web/settings/assets/vehicle-7kCruC46.js b/web/settings/assets/vehicle-Cz4gTSeZ.js similarity index 94% rename from web/settings/assets/vehicle-7kCruC46.js rename to web/settings/assets/vehicle-Cz4gTSeZ.js index fc6152071e..ae1eca7c64 100644 --- a/web/settings/assets/vehicle-7kCruC46.js +++ b/web/settings/assets/vehicle-Cz4gTSeZ.js @@ -1 +1 @@ -import{V as a}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as u,k as m,e as v,m as t,q as l,A as o,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=u("openwb-base-alert"),s=u("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])]),_:1}),t(s,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>[...e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])]),_:1},8,["model-value"]),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>[...e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>[...e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>[...e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])]),_:1},8,["model-value"])])}const _=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{_ as default}; +import{V as a}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as p,l as u,k as m,e as v,m as t,q as l,A as o,x as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocOVMS",mixins:[a]},g={class:"vehicle-soc-ovms"};function b(n,e,V,w,S,M){const d=u("openwb-base-alert"),s=u("openwb-base-text-input");return m(),v("div",g,[t(d,{subtype:"info"},{default:l(()=>[...e[4]||(e[4]=[o(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),i("a",{href:"https://github.com/openWB/core/wiki/SoC-OVMS",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul OVMS",-1)])]),_:1}),t(s,{title:"Server URL",required:"","model-value":n.vehicle.configuration.server_url,"onUpdate:modelValue":e[0]||(e[0]=r=>n.updateConfiguration(r,"configuration.server_url"))},{help:l(()=>[...e[5]||(e[5]=[o(" Die URL (incl. Port) des API des OVMS-Servers, an dem das OVMS-Modul angemeldet ist, z.B. ",-1),i("br",null,null,-1),o(" https://ovms.dexters-web.de:6869",-1),i("br",null,null,-1),o(" oder",-1),i("br",null,null,-1),o(" https://api.openvehicles.com:6869",-1),i("br",null,null,-1),o(" oder ein custom server",-1),i("br",null,null,-1)])]),_:1},8,["model-value"]),t(s,{title:"Benutzername",required:"",subtype:"user","model-value":n.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=r=>n.updateConfiguration(r,"configuration.user_id"))},{help:l(()=>[...e[6]||(e[6]=[o(" Der Benutzername für die Anmeldung am benutzen OVMS-Servers. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Kennwort",required:"",subtype:"password","model-value":n.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=r=>n.updateConfiguration(r,"configuration.password"))},{help:l(()=>[...e[7]||(e[7]=[o(" Das Passwort für die Anmeldung am OVMS-Server. ",-1)])]),_:1},8,["model-value"]),t(s,{title:"Vehicle Id",required:"","model-value":n.vehicle.configuration.vehicleId,"onUpdate:modelValue":e[3]||(e[3]=r=>n.updateConfiguration(r,"configuration.vehicleId"))},{help:l(()=>[...e[8]||(e[8]=[o(" Die Id des Fahrzeugs im OVMS, auch Module Id genannt. ",-1)])]),_:1},8,["model-value"])])}const _=p(f,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/ovms/vehicle.vue"]]);export{_ as default}; diff --git a/web/settings/assets/vehicle-XMzQc45d.js b/web/settings/assets/vehicle-Dafx24UN.js similarity index 94% rename from web/settings/assets/vehicle-XMzQc45d.js rename to web/settings/assets/vehicle-Dafx24UN.js index c4df88a7fd..b3eb5c799f 100644 --- a/web/settings/assets/vehicle-XMzQc45d.js +++ b/web/settings/assets/vehicle-Dafx24UN.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as a,k as m,e as f,m as r,q as t,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>[...e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])]),_:1}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>[...e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])]),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>[...e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])]),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>[...e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])]),_:1},8,["model-value"])])}const x=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{x as default}; +import{V as l}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as p,l as a,k as m,e as f,m as r,q as t,A as i}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const g={name:"VehicleSocPSACC",mixins:[l]},v={class:"vehicle-soc-psacc"};function c(n,e,b,_,C,h){const d=a("openwb-base-alert"),s=a("openwb-base-text-input"),u=a("openwb-base-number-input");return m(),f("div",v,[r(d,{subtype:"info"},{default:t(()=>[...e[3]||(e[3]=[i(' Der PSA Car Controller muss auf einem eigenen Host installiert werden, mit Zugangsdaten konfiguriert werden und dauerhaft laufen. Die openWB ruft den SoC zu Beginn der Ladung vom PSA Car Controller ab. Während der Ladung liefert PSA keine Updates. Daher wird der SoC während der Ladung aus dem Zählerstand berechnet. Ausschlaggebend für die Genauigkeit dieser Berechnung sind die beiden Einstellungen "Kapazität der Batterie" und "Wirkungsgrad der Ladeelektronik" im Fahrzeug-Profil. ',-1)])]),_:1}),r(s,{title:"IP oder Hostname",subtype:"host",required:"","model-value":n.vehicle.configuration.psacc_server_or_ip,"onUpdate:modelValue":e[0]||(e[0]=o=>n.updateConfiguration(o,"configuration.psacc_server_or_ip"))},{help:t(()=>[...e[4]||(e[4]=[i("Host, auf dem der PSA Car Controller läuft.",-1)])]),_:1},8,["model-value"]),r(u,{title:"Port",required:"",min:1,max:65535,"model-value":n.vehicle.configuration.psacc_port,"onUpdate:modelValue":e[1]||(e[1]=o=>n.updateConfiguration(o,"configuration.psacc_port"))},{help:t(()=>[...e[5]||(e[5]=[i("Nummer des Ports, den der PSA Car Controller verwendet.",-1)])]),_:1},8,["model-value"]),r(s,{title:"VIN",subtype:"text",required:"","model-value":n.vehicle.configuration.vehicle_vin,"onUpdate:modelValue":e[2]||(e[2]=o=>n.updateConfiguration(o,"configuration.vehicle_vin"))},{help:t(()=>[...e[6]||(e[6]=[i("Fahrzeug-Identifizierungsnummer des Fahrzeugs, von dem der SoC abgefragt wird.",-1)])]),_:1},8,["model-value"])])}const x=p(g,[["render",c],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psacc/vehicle.vue"]]);export{x as default}; diff --git a/web/settings/assets/vehicle-BBQyN4nf.js b/web/settings/assets/vehicle-Dciyc5Tc.js similarity index 96% rename from web/settings/assets/vehicle-BBQyN4nf.js rename to web/settings/assets/vehicle-Dciyc5Tc.js index ffe683d898..27064f3233 100644 --- a/web/settings/assets/vehicle-BBQyN4nf.js +++ b/web/settings/assets/vehicle-Dciyc5Tc.js @@ -1 +1 @@ -import{V as s}from"./VehicleConfiguration-B3d9qly5.js";import{_ as d,l as u,k as p,e as v,m as a,q as n,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return p(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>[...e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>[...e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>[...e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>[...e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>[...e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const F=d(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; +import{V as s}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as d,l as u,k as p,e as v,m as a,q as n,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const m={name:"VehicleSocEVCC",mixins:[s]},g={class:"vehicle-soc-evcc"};function x(t,e,f,V,w,b){const i=u("openwb-base-text-input"),r=u("openwb-base-select-input");return p(),v("div",g,[a(i,{title:"EVCC Sponsor Token",subtype:"password",required:"","model-value":t.vehicle.configuration.sponsor_token,"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o,"configuration.sponsor_token"))},{help:n(()=>[...e[5]||(e[5]=[l(" EVCC Sponsor Token angeben, dies ist notwendig um SoC über EVCC abrufen zu können. https://sponsor.evcc.io/ ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Benutzername",subtype:"user",required:"","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[1]||(e[1]=o=>t.updateConfiguration(o,"configuration.user_id"))},{help:n(()=>[...e[6]||(e[6]=[l(" Benutzername beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"Kennwort",subtype:"password",required:"","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[2]||(e[2]=o=>t.updateConfiguration(o,"configuration.password"))},{help:n(()=>[...e[7]||(e[7]=[l(" Kennwort beim Fahrzeughersteller. ",-1)])]),_:1},8,["model-value"]),a(r,{title:"Marke",required:"","not-selected":"Bitte auswählen",options:[{value:"aiways",text:"Aiways"},{value:"audi",text:"Audi"},{value:"etron",text:"Audi e-tron"},{value:"bmw",text:"BMW"},{value:"dacia",text:"Dacia"},{value:"fiat",text:"Fiat"},{value:"ford",text:"Ford"},{value:"hyundai",text:"Hyundai"},{value:"jaguar",text:"Jaguar"},{value:"kia",text:"Kia"},{value:"landrover",text:"Landrover"},{value:"mg",text:"Mg"},{value:"mini",text:"Mini"},{value:"nissan",text:"Nissan"},{value:"carwings",text:"Nissan (Leaf pre 2019)"},{value:"ovms",text:"OVMS"},{value:"polestar",text:"Polestar"},{value:"porsche",text:"Porsche"},{value:"renault",text:"Renault"},{value:"seat",text:"Seat"},{value:"cupra",text:"Seat Cupra"},{value:"skoda",text:"Škoda"},{value:"enyaq",text:"Škoda Enyaq"},{value:"smart",text:"Smart"},{value:"smart-hello",text:"Smart-Hello"},{value:"template",text:"Template"},{value:"volvo",text:"Volvo"},{value:"volvo-connected",text:"Volvo-Connected"},{value:"vw",text:"VW"},{value:"id",text:"VW ID"}],"model-value":t.vehicle.configuration.vehicle_type,"onUpdate:modelValue":e[3]||(e[3]=o=>t.updateConfiguration(o,"configuration.vehicle_type"))},{help:n(()=>[...e[8]||(e[8]=[l(" Marke aus des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),a(i,{title:"VIN",subtype:"text","model-value":t.vehicle.configuration.VIN,"onUpdate:modelValue":e[4]||(e[4]=o=>t.updateConfiguration(o,"configuration.VIN"))},{help:n(()=>[...e[9]||(e[9]=[l(" Fahrgestellnummer (VIN) des Fahrzeugs. Notwendig falls mehrere Fahrzeuge im Account des Herstellers vorhanden sind. ",-1)])]),_:1},8,["model-value"])])}const F=d(m,[["render",x],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/evcc/vehicle.vue"]]);export{F as default}; diff --git a/web/settings/assets/vehicle-CH_9CnU6.js b/web/settings/assets/vehicle-DoLMhCj3.js similarity index 93% rename from web/settings/assets/vehicle-CH_9CnU6.js rename to web/settings/assets/vehicle-DoLMhCj3.js index 07eca006e9..780b48259a 100644 --- a/web/settings/assets/vehicle-CH_9CnU6.js +++ b/web/settings/assets/vehicle-DoLMhCj3.js @@ -1 +1 @@ -import{V as l}from"./VehicleConfiguration-B3d9qly5.js";import{_ as u,l as a,k as p,e as m,m as i,q as r,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,c){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])]),_:1}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{N as default}; +import{V as l}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as u,l as a,k as p,e as m,m as i,q as r,A as t,x as f}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocVwid",mixins:[l]},g={class:"vehicle-soc-skoda"};function b(o,e,w,k,V,c){const d=a("openwb-base-alert"),s=a("openwb-base-text-input");return p(),m("div",g,[i(d,{subtype:"info"},{default:r(()=>[...e[3]||(e[3]=[t(" Beschreibung der Konfiguration und weitere Hinweise im Wiki: ",-1),f("a",{href:"https://github.com/openWB/core/wiki/SoC-Skoda",target:"_blank",rel:"noopener noreferrer"},"Wiki für SoC-Modul Skoda",-1)])]),_:1}),i(s,{title:"Benutzername",required:"",subtype:"user","model-value":o.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>o.updateConfiguration(n,"configuration.user_id"))},{help:r(()=>[...e[4]||(e[4]=[t(" Der Benutzername(Email-Adresse) für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"Kennwort",required:"",subtype:"password","model-value":o.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>o.updateConfiguration(n,"configuration.password"))},{help:r(()=>[...e[5]||(e[5]=[t(" Das Passwort für die Anmeldung an den Skoda-Servern. ",-1)])]),_:1},8,["model-value"]),i(s,{title:"VIN",required:"","model-value":o.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=n=>o.updateConfiguration(n,"configuration.vin"))},{help:r(()=>[...e[6]||(e[6]=[t(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"])])}const N=u(v,[["render",b],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/skoda/vehicle.vue"]]);export{N as default}; diff --git a/web/settings/assets/vehicle-DDs9o72d.js b/web/settings/assets/vehicle-Dy-1WneA.js similarity index 96% rename from web/settings/assets/vehicle-DDs9o72d.js rename to web/settings/assets/vehicle-Dy-1WneA.js index b1a83a1fc3..0757dcdb8e 100644 --- a/web/settings/assets/vehicle-DDs9o72d.js +++ b/web/settings/assets/vehicle-Dy-1WneA.js @@ -1 +1 @@ -import{V as d}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as r,k as m,e as g,m as o,q as l,A as i,x as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocHomeAssistant",mixins:[d]},b={class:"vehicle-soc-homeassistant"};function v(t,e,w,h,D,C){const s=r("openwb-base-text-input"),a=r("openwb-base-button-group-input");return m(),g("div",b,[o(s,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.url"))},{help:l(()=>[...e[6]||(e[6]=[i(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen und idealerweise Port. Beispiel: http://192.168.1.1:8123 ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Token",subtype:"text",required:"","model-value":t.vehicle.configuration.token,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.token"))},{help:l(()=>[...e[7]||(e[7]=[i(" Das Token kann in HomeAssistant hier erstellt werden:",-1),u("br",null,null,-1),i(" „Dein Profil“ → oberer Reiter „Sicherheit“ → ganz unten „Langlebiges Zugriffstoken erstellen“ ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.entity_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.entity_soc"))},{help:l(()=>[...e[8]||(e[8]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Reichweite",subtype:"text","model-value":t.vehicle.configuration.entity_range,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.entity_range"))},{help:l(()=>[...e[9]||(e[9]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Kilometerstand",subtype:"text","model-value":t.vehicle.configuration.entity_odometer,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.entity_odometer"))},{help:l(()=>[...e[10]||(e[10]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(a,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:l(()=>[...e[11]||(e[11]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),u("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const A=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/homeassistant/vehicle.vue"]]);export{A as default}; +import{V as d}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as p,l as r,k as m,e as g,m as o,q as l,A as i,x as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocHomeAssistant",mixins:[d]},b={class:"vehicle-soc-homeassistant"};function v(t,e,w,h,D,C){const s=r("openwb-base-text-input"),a=r("openwb-base-button-group-input");return m(),g("div",b,[o(s,{title:"URL",subtype:"url",required:"","model-value":t.vehicle.configuration.url,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.url"))},{help:l(()=>[...e[6]||(e[6]=[i(" Es wird eine komplette URL erwartet mit Angaben zum Protokoll, IP oder Hostnamen und idealerweise Port. Beispiel: http://192.168.1.1:8123 ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Token",subtype:"text",required:"","model-value":t.vehicle.configuration.token,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.token"))},{help:l(()=>[...e[7]||(e[7]=[i(" Das Token kann in HomeAssistant hier erstellt werden:",-1),u("br",null,null,-1),i(" „Dein Profil“ → oberer Reiter „Sicherheit“ → ganz unten „Langlebiges Zugriffstoken erstellen“ ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID SoC",subtype:"text",required:"","model-value":t.vehicle.configuration.entity_soc,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.entity_soc"))},{help:l(()=>[...e[8]||(e[8]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Reichweite",subtype:"text","model-value":t.vehicle.configuration.entity_range,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.entity_range"))},{help:l(()=>[...e[9]||(e[9]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(s,{title:"Entitäts-ID Kilometerstand",subtype:"text","model-value":t.vehicle.configuration.entity_odometer,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.entity_odometer"))},{help:l(()=>[...e[10]||(e[10]=[i(" Die Entitäts ID findet sich im HomeAssistant unter „Einstellungen“ → „Geräte & Dienste“ → im oberen Reiter „Entitäten“ auswählen ",-1)])]),_:1},8,["model-value"]),o(a,{title:"SoC während der Ladung berechnen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.vehicle.configuration.calculate_soc,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.calculate_soc"))},{help:l(()=>[...e[11]||(e[11]=[i(" Berechnet den Ladestand (SoC) während der Ladung. Dies ist notwendig, wenn der SoC nicht über die Schnittstelle des Fahrzeugs abgerufen werden kann. Die Berechnung erfolgt über die Ladeleistung und die Ladedauer. ",-1),u("br",null,null,-1),i(" Derzeit notwendig für Peugeot, Opel, Citroen und DS. ",-1)])]),_:1},8,["model-value"])])}const A=p(f,[["render",v],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/homeassistant/vehicle.vue"]]);export{A as default}; diff --git a/web/settings/assets/vehicle-DjrtYuS-.js b/web/settings/assets/vehicle-QEOZLyuW.js similarity index 93% rename from web/settings/assets/vehicle-DjrtYuS-.js rename to web/settings/assets/vehicle-QEOZLyuW.js index d7263c04d4..1222cea99f 100644 --- a/web/settings/assets/vehicle-DjrtYuS-.js +++ b/web/settings/assets/vehicle-QEOZLyuW.js @@ -1 +1 @@ -import{V as u}from"./VehicleConfiguration-B3d9qly5.js";import{_ as p,l as r,k as d,e as m,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const a=r("openwb-base-text-input"),l=r("openwb-base-select-input");return d(),m("div",f,[o(a,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[3]||(e[3]=[s(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[4]||(e[4]=[s(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>[...e[5]||(e[5]=[s(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])]),_:1},8,["model-value"])])}const S=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{S as default}; +import{V as u}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as p,l as r,k as d,e as m,m as o,q as i,A as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"VehicleSocLeaf",mixins:[u]},f={class:"vehicle-soc-leaf"};function g(t,e,c,b,w,N){const a=r("openwb-base-text-input"),l=r("openwb-base-select-input");return d(),m("div",f,[o(a,{title:"Benutzername",required:"",subtype:"user","model-value":t.vehicle.configuration.user_id,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.user_id"))},{help:i(()=>[...e[3]||(e[3]=[s(" Der Benutzername für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Kennwort",required:"",subtype:"password","model-value":t.vehicle.configuration.password,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.password"))},{help:i(()=>[...e[4]||(e[4]=[s(" Das Passwort für die Anmeldung an den Nissan-Servern. ",-1)])]),_:1},8,["model-value"]),o(l,{title:"Region",required:"","not-selected":"Bitte auswählen",options:[{value:"NE",text:"Europa (getestet)"},{value:"NNA",text:"USA (nicht getestet)"},{value:"NCI",text:"Kanada (nicht getestet)"},{value:"NMA",text:"Australien (nicht getestet)"},{value:"NML",text:"Japan (nicht getestet)"}],"model-value":t.vehicle.configuration.region,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n,"configuration.region"))},{help:i(()=>[...e[5]||(e[5]=[s(" Die Region, in der das Fahrzeug betrieben wird. ",-1)])]),_:1},8,["model-value"])])}const S=p(v,[["render",g],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/leaf/vehicle.vue"]]);export{S as default}; diff --git a/web/settings/assets/vehicle-CO6j-SQn.js b/web/settings/assets/vehicle-QRfiUykG.js similarity index 87% rename from web/settings/assets/vehicle-CO6j-SQn.js rename to web/settings/assets/vehicle-QRfiUykG.js index e32f2e2d91..2eb680a774 100644 --- a/web/settings/assets/vehicle-CO6j-SQn.js +++ b/web/settings/assets/vehicle-QRfiUykG.js @@ -1 +1 @@ -import{V as o}from"./VehicleConfiguration-B3d9qly5.js";import{_ as i,l as r,k as s,e as a,m as c,q as p,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(f,e,_,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>[...e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])]),_:1})])}const C=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{C as default}; +import{V as o}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as i,l as r,k as s,e as a,m as c,q as p,A as n,x as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const d={name:"VehicleSocPSA",mixins:[o]},m={class:"vehicle-soc-psa"};function u(f,e,_,h,b,g){const t=r("openwb-base-alert");return s(),a("div",m,[c(t,{subtype:"danger"},{default:p(()=>[...e[0]||(e[0]=[n(" Diese Modul ist seit Änderungen der Schnittstellen durch PSA nicht mehr funktionsfähig und wird in einer zukünftigen Version entfernt. Bitte auf einen anderen Anbieter wechseln, z.B. Tronity.",-1),l("br",null,null,-1),n(" Bei vorhandener PSA-Integration in Heimautomation kann der SoC ggf. auch per MQTT übergeben werden. ",-1)])]),_:1})])}const C=i(d,[["render",u],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/psa/vehicle.vue"]]);export{C as default}; diff --git a/web/settings/assets/vehicle-Bzw0t3uD.js b/web/settings/assets/vehicle-o-3CCJWH.js similarity index 95% rename from web/settings/assets/vehicle-Bzw0t3uD.js rename to web/settings/assets/vehicle-o-3CCJWH.js index bbe1147296..1d9d701dc7 100644 --- a/web/settings/assets/vehicle-Bzw0t3uD.js +++ b/web/settings/assets/vehicle-o-3CCJWH.js @@ -1 +1 @@ -import{V as m}from"./VehicleConfiguration-B3d9qly5.js";import{_ as b,l as s,k as g,e as v,m as i,q as o,A as n,x as u,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),v("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>[...e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>[...e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>[...e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(_(r.callback_url),1)]),_:1})]),_:1}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>[...e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Mercedes mit Deinen Zugangsdaten anmelden kannst.",-1),u("br",null,null,-1)])]),_:1},8,["disabled","onButtonClicked"])])}const $=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{$ as default}; +import{V as m}from"./VehicleConfiguration-DZuJgE9z.js";import{_ as b,l as s,k as g,e as v,m as i,q as o,A as n,x as u,J as _}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./dynamic-import-helper-BheWnx7M.js";const f={name:"VehicleSocMercedesEq",mixins:[m],computed:{callback_url(){return`${location.origin}/openWB/web/settings/modules/vehicles/mercedeseq/callback_vehicle.php`},login_url(){return`https://ssoalpha.dvb.corpinter.net/v1/auth?response_type=code&state=${this.vehicleId}&client_id=${this.vehicle.configuration.client_id}&redirect_uri=${this.callback_url}&scope=mb:vehicle:mbdata:evstatus%20offline_access%20openid`},input_complete(){return this.vehicle.configuration.client_id&&this.vehicle.configuration.client_secret&&this.vehicle.configuration.vin}},methods:{login_window(){console.debug("callback url",this.callback_url),console.debug("login url",this.login_url);var t=window.open(this.login_url,"MercedesLogin","width=800,height=600,status=yes,scrollbars=yes,resizable=yes");t.focus()}}},h={class:"vehicle-soc-mercedeseq"};function w(t,e,k,C,y,r){const a=s("openwb-base-text-input"),d=s("openwb-base-copy-to-clipboard"),p=s("openwb-base-alert"),c=s("openwb-base-button-input");return g(),v("div",h,[i(a,{title:"Client-ID",required:"",subtype:"user","model-value":t.vehicle.configuration.client_id,"onUpdate:modelValue":e[0]||(e[0]=l=>t.updateConfiguration(l,"configuration.client_id"))},{help:o(()=>[...e[3]||(e[3]=[n(" Die im Developer Portal angelegte Client-ID. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"Client Secret",required:"",subtype:"password","model-value":t.vehicle.configuration.client_secret,"onUpdate:modelValue":e[1]||(e[1]=l=>t.updateConfiguration(l,"configuration.client_secret"))},{help:o(()=>[...e[4]||(e[4]=[n(" Das im Developer Portal angelegte Client Secret. ",-1)])]),_:1},8,["model-value"]),i(a,{title:"VIN",required:"","model-value":t.vehicle.configuration.vin,"onUpdate:modelValue":e[2]||(e[2]=l=>t.updateConfiguration(l,"configuration.vin"))},{help:o(()=>[...e[5]||(e[5]=[n(" Die Fahrgestellnummer des Fahrzeugs. ",-1)])]),_:1},8,["model-value"]),i(p,{subtype:"info"},{default:o(()=>[e[6]||(e[6]=n(" Vor dem Anmelden bitte die Angaben speichern.",-1)),e[7]||(e[7]=u("br",null,null,-1)),e[8]||(e[8]=n(" Die Callback-URL für die Anmeldung lautet:",-1)),e[9]||(e[9]=u("br",null,null,-1)),i(d,{class:"text-info",tooltip:"URL kopieren"},{default:o(()=>[n(_(r.callback_url),1)]),_:1})]),_:1}),i(c,{title:"Anmelden","button-text":"Bei Mercedes Anmelden",subtype:"success",disabled:!r.input_complete,onButtonClicked:r.login_window},{help:o(()=>[...e[10]||(e[10]=[n(" Es wird ein neues Browserfenster geöffnet, in dem Du dich bei Mercedes mit Deinen Zugangsdaten anmelden kannst.",-1),u("br",null,null,-1)])]),_:1},8,["disabled","onButtonClicked"])])}const $=b(f,[["render",w],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/vehicles/mercedeseq/vehicle.vue"]]);export{$ as default}; diff --git a/web/settings/assets/webTheme-CY7Mp7o_.js b/web/settings/assets/webTheme-C6_Ayx15.js similarity index 88% rename from web/settings/assets/webTheme-CY7Mp7o_.js rename to web/settings/assets/webTheme-C6_Ayx15.js index 8266e45bbe..d0c50aa3d1 100644 --- a/web/settings/assets/webTheme-CY7Mp7o_.js +++ b/web/settings/assets/webTheme-C6_Ayx15.js @@ -1 +1 @@ -import{W as a}from"./GeneralConfiguration-b09cPY_w.js";import{_ as r,l as i,k as s,e as m,m as p,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"WebThemeKoala",mixins:[a]},_={class:"web-theme-standard-legacy"};function f(t,e,c,h,g,b){const n=i("openwb-base-range-input");return s(),m("div",_,[p(n,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":Math.round(t.webTheme.configuration.history_chart_range/(60*1e3)),"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o*60*1e3,"configuration.history_chart_range"))},{help:d(()=>[...e[1]||(e[1]=[l(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"])])}const W=r(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/standard_legacy/webTheme.vue"]]);export{W as default}; +import{W as a}from"./GeneralConfiguration-d2XsWBRc.js";import{_ as r,l as i,k as s,e as m,m as p,q as d,A as l}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const u={name:"WebThemeKoala",mixins:[a]},_={class:"web-theme-standard-legacy"};function f(t,e,c,h,g,b){const n=i("openwb-base-range-input");return s(),m("div",_,[p(n,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":Math.round(t.webTheme.configuration.history_chart_range/(60*1e3)),"onUpdate:modelValue":e[0]||(e[0]=o=>t.updateConfiguration(o*60*1e3,"configuration.history_chart_range"))},{help:d(()=>[...e[1]||(e[1]=[l(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"])])}const W=r(u,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/standard_legacy/webTheme.vue"]]);export{W as default}; diff --git a/web/settings/assets/webTheme-CHG5h5Rr.js b/web/settings/assets/webTheme-CU5jN01o.js similarity index 94% rename from web/settings/assets/webTheme-CHG5h5Rr.js rename to web/settings/assets/webTheme-CU5jN01o.js index 8c2ca90a4f..5f301a0066 100644 --- a/web/settings/assets/webTheme-CHG5h5Rr.js +++ b/web/settings/assets/webTheme-CU5jN01o.js @@ -1 +1 @@ -import{W as g}from"./GeneralConfiguration-b09cPY_w.js";import{S as f}from"./OpenwbSortableList-CSUuyi79.js";import{_ as h,l as o,k as w,e as _,m as i,q as a,A as r,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"WebThemeKoala",components:{SortableList:f},mixins:[g],data(){return{slideLabels:{daily_totals:"Tageswerte",history_chart:"Verlaufsdiagramm",flow_diagram:"Energiefluss"}}},computed:{slideOrderList:{get(){return(this.webTheme.configuration.top_carousel_slide_order||["flow_diagram","history_chart","daily_totals"]).map(e=>({id:e}))},set(t){const e=t.map(l=>l.id);this.updateConfiguration(e,"configuration.top_carousel_slide_order")}},numberedSlideLabels(){return this.slideOrderList.reduce((t,e,l)=>(t[e.id]=`${l+1}. ${this.slideLabels[e.id]||e.id}`,t),{})}}},c={class:"web-theme-koala"};function V(t,e,l,z,L,u){const d=o("openwb-base-button-group-input"),b=o("openwb-base-range-input"),p=o("sortable-list"),m=o("openwb-base-number-input");return w(),_("div",c,[i(d,{title:"Standard-Fahrzeug ausblenden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.hide_standard_vehicle,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.hide_standard_vehicle"))},{help:a(()=>[...e[7]||(e[7]=[r(" Legt fest, ob das Standardfahrzeug im Fahrzeugkarten- bzw. Ladepunkt-Fahrzeugauswahlmenü ausgeblendet wird. ",-1)])]),_:1},8,["model-value"]),e[14]||(e[14]=s("hr",null,null,-1)),i(b,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":t.webTheme.configuration.history_chart_range/60,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n*60,"configuration.history_chart_range"))},{help:a(()=>[...e[8]||(e[8]=[r(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"]),e[15]||(e[15]=s("hr",null,null,-1)),i(p,{modelValue:u.slideOrderList,"onUpdate:modelValue":e[2]||(e[2]=n=>u.slideOrderList=n),title:"Oberer Infobereich",labels:u.numberedSlideLabels,nesting:!1},{help:a(()=>[...e[9]||(e[9]=[r(" Anordnung/Reihenfolge des oberen Informationsbereiches. ",-1)])]),_:1},8,["modelValue","labels"]),e[16]||(e[16]=s("hr",null,null,-1)),i(m,{title:"Ladepunkt Kartenansicht Grenzwert",min:0,step:1,"model-value":t.webTheme.configuration.chargePoint_card_view_breakpoint,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.chargePoint_card_view_breakpoint"))},{help:a(()=>[...e[10]||(e[10]=[r(" Legt fest, bis zu wie vielen Ladepunkten die Kartenansicht verwendet wird. Bei mehr Ladepunkten wird automatisch zur Tabellenansicht gewechselt. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"Suchfeld in Ladepunkt Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.chargePoint_table_search_input_field,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.chargePoint_table_search_input_field"))},{help:a(()=>[...e[11]||(e[11]=[r(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Ladepunkt“ und „Fahrzeug“ durchsucht werden. ",-1)])]),_:1},8,["model-value"]),e[17]||(e[17]=s("hr",null,null,-1)),i(m,{title:"Fahrzeug Kartenansicht Grenzwert",min:0,step:1,"model-value":t.webTheme.configuration.vehicle_card_view_breakpoint,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.vehicle_card_view_breakpoint"))},{help:a(()=>[...e[12]||(e[12]=[r(" Legt fest, bis zu wie vielen Fahrzeugen die Kartenansicht verwendet wird. Bei mehr Fahrzeugen wird automatisch zur Tabellenansicht gewechselt. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"Suchfeld in Fahrzeug Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.vehicle_table_search_input_field,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.vehicle_table_search_input_field"))},{help:a(()=>[...e[13]||(e[13]=[r(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Fahrzeug“, „Hersteller“ und „Modell“ durchsucht werden. ",-1)])]),_:1},8,["model-value"])])}const N=h(v,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/koala/webTheme.vue"]]);export{N as default}; +import{W as g}from"./GeneralConfiguration-d2XsWBRc.js";import{S as f}from"./OpenwbSortableList-B4YWn8p9.js";import{_ as h,l as o,k as w,e as _,m as i,q as a,A as r,x as s}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const v={name:"WebThemeKoala",components:{SortableList:f},mixins:[g],data(){return{slideLabels:{daily_totals:"Tageswerte",history_chart:"Verlaufsdiagramm",flow_diagram:"Energiefluss"}}},computed:{slideOrderList:{get(){return(this.webTheme.configuration.top_carousel_slide_order||["flow_diagram","history_chart","daily_totals"]).map(e=>({id:e}))},set(t){const e=t.map(l=>l.id);this.updateConfiguration(e,"configuration.top_carousel_slide_order")}},numberedSlideLabels(){return this.slideOrderList.reduce((t,e,l)=>(t[e.id]=`${l+1}. ${this.slideLabels[e.id]||e.id}`,t),{})}}},c={class:"web-theme-koala"};function V(t,e,l,z,L,u){const d=o("openwb-base-button-group-input"),b=o("openwb-base-range-input"),p=o("sortable-list"),m=o("openwb-base-number-input");return w(),_("div",c,[i(d,{title:"Standard-Fahrzeug ausblenden",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.hide_standard_vehicle,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.hide_standard_vehicle"))},{help:a(()=>[...e[7]||(e[7]=[r(" Legt fest, ob das Standardfahrzeug im Fahrzeugkarten- bzw. Ladepunkt-Fahrzeugauswahlmenü ausgeblendet wird. ",-1)])]),_:1},8,["model-value"]),e[14]||(e[14]=s("hr",null,null,-1)),i(b,{title:"Zeitfenster Verlaufsdiagramm",min:15,max:120,step:15,unit:"Min.","model-value":t.webTheme.configuration.history_chart_range/60,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n*60,"configuration.history_chart_range"))},{help:a(()=>[...e[8]||(e[8]=[r(" Das Zeitfenster für das Verlaufsdiagramm wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"]),e[15]||(e[15]=s("hr",null,null,-1)),i(p,{modelValue:u.slideOrderList,"onUpdate:modelValue":e[2]||(e[2]=n=>u.slideOrderList=n),title:"Oberer Infobereich",labels:u.numberedSlideLabels,nesting:!1},{help:a(()=>[...e[9]||(e[9]=[r(" Anordnung/Reihenfolge des oberen Informationsbereiches. ",-1)])]),_:1},8,["modelValue","labels"]),e[16]||(e[16]=s("hr",null,null,-1)),i(m,{title:"Ladepunkt Kartenansicht Grenzwert",min:0,step:1,"model-value":t.webTheme.configuration.chargePoint_card_view_breakpoint,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.chargePoint_card_view_breakpoint"))},{help:a(()=>[...e[10]||(e[10]=[r(" Legt fest, bis zu wie vielen Ladepunkten die Kartenansicht verwendet wird. Bei mehr Ladepunkten wird automatisch zur Tabellenansicht gewechselt. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"Suchfeld in Ladepunkt Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.chargePoint_table_search_input_field,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.chargePoint_table_search_input_field"))},{help:a(()=>[...e[11]||(e[11]=[r(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Ladepunkt“ und „Fahrzeug“ durchsucht werden. ",-1)])]),_:1},8,["model-value"]),e[17]||(e[17]=s("hr",null,null,-1)),i(m,{title:"Fahrzeug Kartenansicht Grenzwert",min:0,step:1,"model-value":t.webTheme.configuration.vehicle_card_view_breakpoint,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.vehicle_card_view_breakpoint"))},{help:a(()=>[...e[12]||(e[12]=[r(" Legt fest, bis zu wie vielen Fahrzeugen die Kartenansicht verwendet wird. Bei mehr Fahrzeugen wird automatisch zur Tabellenansicht gewechselt. ",-1)])]),_:1},8,["model-value"]),i(d,{title:"Suchfeld in Fahrzeug Tabellenansicht",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.vehicle_table_search_input_field,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.vehicle_table_search_input_field"))},{help:a(()=>[...e[13]||(e[13]=[r(" Legt fest, ob in der Tabellenansicht ein Suchfeld angezeigt wird. Mit diesem Suchfeld können die Felder „Fahrzeug“, „Hersteller“ und „Modell“ durchsucht werden. ",-1)])]),_:1},8,["model-value"])])}const N=h(v,[["render",V],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/koala/webTheme.vue"]]);export{N as default}; diff --git a/web/settings/assets/webTheme-BZXitWVh.js b/web/settings/assets/webTheme-Ckx7MxLF.js similarity index 98% rename from web/settings/assets/webTheme-BZXitWVh.js rename to web/settings/assets/webTheme-Ckx7MxLF.js index a5d19f0fe3..c43dc5e23f 100644 --- a/web/settings/assets/webTheme-BZXitWVh.js +++ b/web/settings/assets/webTheme-Ckx7MxLF.js @@ -1 +1 @@ -import{W as s}from"./GeneralConfiguration-b09cPY_w.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-D_eD74fL.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"WebThemeColors",components:{},mixins:[s],data(){return{slideLabels:{daily_totals:"Tageswerte",history_chart:"Verlaufsdiagramm",flow_diagram:"Energiefluss"}}}},p={class:"web-theme-colors"};function f(t,e,V,w,v,h){const a=r("openwb-base-button-group-input"),i=r("openwb-base-range-input");return m(),g("div",p,[o(a,{title:"Farbschema",buttons:[{buttonValue:"dark",text:"Dunkel"},{buttonValue:"light",text:"Hell"},{buttonValue:"blue",text:"Blau"}],"model-value":t.webTheme.configuration.displayMode,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.displayMode"))},{help:l(()=>[...e[14]||(e[14]=[u(" Hintergrundfarbe ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Farbschema Smarthome-Geräte",buttons:[{buttonValue:"normal",text:"Orange"},{buttonValue:"standard",text:"Grün/Violett"},{buttonValue:"advanced",text:"Bunt"}],"model-value":t.webTheme.configuration.smartHomeColors,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.smartHomeColors"))},{help:l(()=>[...e[15]||(e[15]=[u(" Für die Smart-Home-Geräte stehen mehrere Schemata zur Verfügung. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Zeitfenster Live-Graph",min:15,max:120,step:15,unit:"Min.","model-value":t.webTheme.configuration.liveGraphDuration/60,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n*60,"configuration.liveGraphDuration"))},{help:l(()=>[...e[16]||(e[16]=[u(" Das Zeitfenster für den Live-Graphen wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Grafik: Raster",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showGrid,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.showGrid"))},{help:l(()=>[...e[17]||(e[17]=[u(" Verwende ein Hintergrundraster in den Grafiken ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Anzahl Dezimalstellen",buttons:[{buttonValue:0,text:"3 kW"},{buttonValue:1,text:"3.1 kW"},{buttonValue:2,text:"3.14 kW"},{buttonValue:3,text:"3.141 kW"},{buttonValue:4,text:"3141 W"}],"model-value":t.webTheme.configuration.decimalPlaces,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.decimalPlaces"))},{help:l(()=>[...e[18]||(e[18]=[u(" Alle kW- und kWh-Werte werden mit der gewählten Anzahl an Stellen angezeigt. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Variable Bogenlänge",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showRelativeArcs,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.showRelativeArcs"))},{help:l(()=>[...e[19]||(e[19]=[u(" Im Graph 'Aktuelle Leistung' können die Bögen immer die volle Länge haben, oder entsprechend des aktuellen Gesamtleistung verkürzt dargestellt werden. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Wechselrichter anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showInverters,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.showInverters"))},{help:l(()=>[...e[20]||(e[20]=[u(" Zeige Details zu den einzelnen Wechselrichtern ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Fahrzeugliste anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showVehicles,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.showVehicles"))},{help:l(()=>[...e[21]||(e[21]=[u(" Zeige alle Fahrzeuge mit Ladestand und Reichweite. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Zähler anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showCounters,"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.showCounters"))},{help:l(()=>[...e[22]||(e[22]=[u(" Zeige die Werte zusätzlich angelegter Zähler. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Preistabelle anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showPrices,"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.showPrices"))},{help:l(()=>[...e[23]||(e[23]=[u(" Zeige den Verlauf des dynamischen Strompreises auf der Hauptseite. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Untere Markierung in der Preistabelle",min:-25,max:95,step:.1,unit:"ct","model-value":t.webTheme.configuration.lowerPriceBound,"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.lowerPriceBound"))},{help:l(()=>[...e[24]||(e[24]=[u(" Position der unteren Markierung festlegen. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Obere Markierung in der Preistabelle",min:-25,max:95,step:.1,unit:"ct","model-value":t.webTheme.configuration.upperPriceBound,"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.upperPriceBound"))},{help:l(()=>[...e[25]||(e[25]=[u(" Position der oberen Markierung festlegen. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Alternatives Energie-Widget",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.alternativeEnergy,"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.alternativeEnergy"))},{help:l(()=>[...e[26]||(e[26]=[u(" Horizontale Darstellung der Energie-Werte. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Standard-Fahrzeug anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showStandardVehicle,"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.showStandardVehicle"))},{help:l(()=>[...e[27]||(e[27]=[u(" Legt fest, ob das Standardfahrzeug in Listen und Auswahlmenus angezeigt wird.",-1)])]),_:1},8,["model-value"])])}const A=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/colors/webTheme.vue"]]);export{A as default}; +import{W as s}from"./GeneralConfiguration-d2XsWBRc.js";import{_ as d,l as r,k as m,e as g,m as o,q as l,A as u}from"./vendor-Bo8v-nQD.js";import"./vendor-fortawesome-CBc-2W7w.js";import"./index-MVrRMMo2.js";import"./vendor-bootstrap-BQqw8g0w.js";import"./vendor-jquery-CEMonh9Y.js";import"./vendor-axios-DdFvNBv9.js";import"./SystemVersion-DQAfG1DR.js";import"./dynamic-import-helper-BheWnx7M.js";const b={name:"WebThemeColors",components:{},mixins:[s],data(){return{slideLabels:{daily_totals:"Tageswerte",history_chart:"Verlaufsdiagramm",flow_diagram:"Energiefluss"}}}},p={class:"web-theme-colors"};function f(t,e,V,w,v,h){const a=r("openwb-base-button-group-input"),i=r("openwb-base-range-input");return m(),g("div",p,[o(a,{title:"Farbschema",buttons:[{buttonValue:"dark",text:"Dunkel"},{buttonValue:"light",text:"Hell"},{buttonValue:"blue",text:"Blau"}],"model-value":t.webTheme.configuration.displayMode,"onUpdate:modelValue":e[0]||(e[0]=n=>t.updateConfiguration(n,"configuration.displayMode"))},{help:l(()=>[...e[14]||(e[14]=[u(" Hintergrundfarbe ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Farbschema Smarthome-Geräte",buttons:[{buttonValue:"normal",text:"Orange"},{buttonValue:"standard",text:"Grün/Violett"},{buttonValue:"advanced",text:"Bunt"}],"model-value":t.webTheme.configuration.smartHomeColors,"onUpdate:modelValue":e[1]||(e[1]=n=>t.updateConfiguration(n,"configuration.smartHomeColors"))},{help:l(()=>[...e[15]||(e[15]=[u(" Für die Smart-Home-Geräte stehen mehrere Schemata zur Verfügung. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Zeitfenster Live-Graph",min:15,max:120,step:15,unit:"Min.","model-value":t.webTheme.configuration.liveGraphDuration/60,"onUpdate:modelValue":e[2]||(e[2]=n=>t.updateConfiguration(n*60,"configuration.liveGraphDuration"))},{help:l(()=>[...e[16]||(e[16]=[u(" Das Zeitfenster für den Live-Graphen wird auf die hier eingestellte Anzahl Minuten beschränkt. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Grafik: Raster",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showGrid,"onUpdate:modelValue":e[3]||(e[3]=n=>t.updateConfiguration(n,"configuration.showGrid"))},{help:l(()=>[...e[17]||(e[17]=[u(" Verwende ein Hintergrundraster in den Grafiken ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Anzahl Dezimalstellen",buttons:[{buttonValue:0,text:"3 kW"},{buttonValue:1,text:"3.1 kW"},{buttonValue:2,text:"3.14 kW"},{buttonValue:3,text:"3.141 kW"},{buttonValue:4,text:"3141 W"}],"model-value":t.webTheme.configuration.decimalPlaces,"onUpdate:modelValue":e[4]||(e[4]=n=>t.updateConfiguration(n,"configuration.decimalPlaces"))},{help:l(()=>[...e[18]||(e[18]=[u(" Alle kW- und kWh-Werte werden mit der gewählten Anzahl an Stellen angezeigt. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Variable Bogenlänge",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showRelativeArcs,"onUpdate:modelValue":e[5]||(e[5]=n=>t.updateConfiguration(n,"configuration.showRelativeArcs"))},{help:l(()=>[...e[19]||(e[19]=[u(" Im Graph 'Aktuelle Leistung' können die Bögen immer die volle Länge haben, oder entsprechend des aktuellen Gesamtleistung verkürzt dargestellt werden. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Wechselrichter anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showInverters,"onUpdate:modelValue":e[6]||(e[6]=n=>t.updateConfiguration(n,"configuration.showInverters"))},{help:l(()=>[...e[20]||(e[20]=[u(" Zeige Details zu den einzelnen Wechselrichtern ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Fahrzeugliste anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showVehicles,"onUpdate:modelValue":e[7]||(e[7]=n=>t.updateConfiguration(n,"configuration.showVehicles"))},{help:l(()=>[...e[21]||(e[21]=[u(" Zeige alle Fahrzeuge mit Ladestand und Reichweite. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Zähler anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showCounters,"onUpdate:modelValue":e[8]||(e[8]=n=>t.updateConfiguration(n,"configuration.showCounters"))},{help:l(()=>[...e[22]||(e[22]=[u(" Zeige die Werte zusätzlich angelegter Zähler. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Preistabelle anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showPrices,"onUpdate:modelValue":e[9]||(e[9]=n=>t.updateConfiguration(n,"configuration.showPrices"))},{help:l(()=>[...e[23]||(e[23]=[u(" Zeige den Verlauf des dynamischen Strompreises auf der Hauptseite. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Untere Markierung in der Preistabelle",min:-25,max:95,step:.1,unit:"ct","model-value":t.webTheme.configuration.lowerPriceBound,"onUpdate:modelValue":e[10]||(e[10]=n=>t.updateConfiguration(n,"configuration.lowerPriceBound"))},{help:l(()=>[...e[24]||(e[24]=[u(" Position der unteren Markierung festlegen. ",-1)])]),_:1},8,["model-value"]),o(i,{title:"Obere Markierung in der Preistabelle",min:-25,max:95,step:.1,unit:"ct","model-value":t.webTheme.configuration.upperPriceBound,"onUpdate:modelValue":e[11]||(e[11]=n=>t.updateConfiguration(n,"configuration.upperPriceBound"))},{help:l(()=>[...e[25]||(e[25]=[u(" Position der oberen Markierung festlegen. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Alternatives Energie-Widget",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.alternativeEnergy,"onUpdate:modelValue":e[12]||(e[12]=n=>t.updateConfiguration(n,"configuration.alternativeEnergy"))},{help:l(()=>[...e[26]||(e[26]=[u(" Horizontale Darstellung der Energie-Werte. ",-1)])]),_:1},8,["model-value"]),o(a,{title:"Standard-Fahrzeug anzeigen",buttons:[{buttonValue:!1,text:"Nein",class:"btn-outline-danger"},{buttonValue:!0,text:"Ja",class:"btn-outline-success"}],"model-value":t.webTheme.configuration.showStandardVehicle,"onUpdate:modelValue":e[13]||(e[13]=n=>t.updateConfiguration(n,"configuration.showStandardVehicle"))},{help:l(()=>[...e[27]||(e[27]=[u(" Legt fest, ob das Standardfahrzeug in Listen und Auswahlmenus angezeigt wird.",-1)])]),_:1},8,["model-value"])])}const A=d(b,[["render",f],["__file","/opt/openWB-dev/openwb-ui-settings/src/components/web_themes/colors/webTheme.vue"]]);export{A as default}; diff --git a/web/settings/index.html b/web/settings/index.html index 23a81628bb..c4741a125b 100644 --- a/web/settings/index.html +++ b/web/settings/index.html @@ -7,7 +7,7 @@ openWB - + From 07bebf78fd3ae40335b9b2162a9fbec10b841064 Mon Sep 17 00:00:00 2001 From: Xoffroad <65235705+Xoffroad@users.noreply.github.com> Date: Mon, 11 May 2026 12:54:53 +0200 Subject: [PATCH 9/9] Implement active battery control via SolaX Remote Control Mode 4 in the SolaX battery module. (#3351) * adding active battery control for qcells and new field for overload security * remove field for max_power and use max_charge_power and max_discharge_power instead * fix(solax): enable mode4 battery control for g3 hybrids only Implement active battery control via SolaX Remote Control Mode 4 in the SolaX battery module. Gate controllability to version g3 (Gen3/Gen4 Hybrid) and keep g2/g4 non-controllable; add unit tests for sign mapping and version gating. --- packages/modules/devices/solax/solax/bat.py | 96 ++++++++++++++++++- .../modules/devices/solax/solax/bat_test.py | 41 ++++++++ 2 files changed, 135 insertions(+), 2 deletions(-) create mode 100644 packages/modules/devices/solax/solax/bat_test.py diff --git a/packages/modules/devices/solax/solax/bat.py b/packages/modules/devices/solax/solax/bat.py index c1cd62a371..d2aa4b023b 100644 --- a/packages/modules/devices/solax/solax/bat.py +++ b/packages/modules/devices/solax/solax/bat.py @@ -1,5 +1,9 @@ #!/usr/bin/env python3 -from typing import Any, TypedDict +import logging +from typing import Any, Optional, TypedDict + +from pymodbus.constants import Endian +from pymodbus.payload import BinaryPayloadBuilder from modules.common import modbus from modules.common.abstract_device import AbstractBat @@ -10,9 +14,20 @@ from modules.common.simcount import SimCounter from modules.common.store import get_bat_value_store from modules.devices.solax.solax.config import SolaxBatSetup, Solax +from modules.devices.solax.solax.version import SolaxVersion from modules.common.utils.peak_filter import PeakFilter from modules.common.component_type import ComponentType +log = logging.getLogger(__name__) + +# Solax Remote Control Registers (Holding Registers) +REMOTE_CONTROL_MODE_REG = 0x7C +MODE_DISABLED = 0 +MODE_4_PUSH_POWER = 4 +SET_TYPE_SET = 1 +MODE_4_TIMEOUT_DISABLED = 0 +MODE4_BLOCK_REG_COUNT = 15 + class KwargsDict(TypedDict): client: modbus.ModbusTcpClient_ @@ -31,11 +46,12 @@ def initialize(self) -> None: self.store = get_bat_value_store(self.component_config.id) self.fault_state = FaultState(ComponentInfo.from_component_config(self.component_config)) self.peak_filter = PeakFilter(ComponentType.BAT, self.component_config.id, self.fault_state) + self.last_mode: Optional[str] = 'Undefined' def update(self) -> None: unit = self.device_config.configuration.modbus_id - # kein Speicher für Versionen G2 und G4 + # Basiswerte aus dem Batterie-Registersatz lesen power = self.__tcp_client.read_input_registers(0x0016, ModbusDataType.INT_16, unit=unit) soc = self.__tcp_client.read_input_registers(0x001C, ModbusDataType.UINT_16, unit=unit) self.peak_filter.check_values(power) @@ -48,5 +64,81 @@ def update(self) -> None: ) self.store.set(bat_state) + def set_power_limit(self, power_limit: Optional[int]) -> None: + if self.power_limit_controllable() is False: + log.debug("SolaX set_power_limit: aktive Speichersteuerung für diese Version nicht unterstützt") + return + + unit = self.device_config.configuration.modbus_id + log.debug(f"SolaX set_power_limit: power_limit={power_limit}, last_mode={self.last_mode}") + + if power_limit is None: + log.debug("Keine Batteriesteuerung, Selbstregelung durch Wechselrichter") + if self.last_mode is not None: + with self.__tcp_client: + self.__tcp_client.write_register( + REMOTE_CONTROL_MODE_REG, + MODE_DISABLED, + data_type=ModbusDataType.UINT_16, + unit=unit, + ) + self.last_mode = None + return + + if power_limit < 0: + self.last_mode = 'discharge' + elif power_limit > 0: + self.last_mode = 'charge' + else: + self.last_mode = 'stop' + + push_power = self._get_mode4_push_power(int(power_limit)) + self._write_mode4(push_power, unit) + + def _get_mode4_push_power(self, power_limit: int) -> int: + # openWB power_limit semantics: + # <0 discharge, 0 stop, >0 charge + # Mode 4 push_power semantics: + # >0 discharge, 0 stop, <0 charge + push_power = int(power_limit * -1) + log.debug(f"SolaX Mode4 target: power_limit={power_limit}W -> push_power={push_power}W") + return push_power + + def _write_mode4(self, push_power: int, unit: int) -> None: + log.debug( + ( + f"SolaX Mode4 write: mode={MODE_4_PUSH_POWER}, set_type={SET_TYPE_SET}, " + f"timeout={MODE_4_TIMEOUT_DISABLED}s, push_power={push_power}W" + ) + ) + builder = BinaryPayloadBuilder(byteorder=Endian.Big, wordorder=Endian.Little) + builder.add_16bit_uint(MODE_4_PUSH_POWER) + builder.add_16bit_uint(SET_TYPE_SET) + builder.add_32bit_int(0) + builder.add_32bit_int(0) + builder.add_16bit_uint(0) + builder.add_16bit_uint(0) + builder.add_32bit_uint(0) + builder.add_32bit_int(0) + builder.add_16bit_uint(MODE_4_TIMEOUT_DISABLED) + builder.add_32bit_int(push_power) + payload = builder.to_registers() + if len(payload) != MODE4_BLOCK_REG_COUNT: + raise RuntimeError( + f"Unexpected mode4 payload size {len(payload)}, expected {MODE4_BLOCK_REG_COUNT}" + ) + + with self.__tcp_client: + self.__tcp_client.write_register(REMOTE_CONTROL_MODE_REG, payload, unit=unit) + + def power_limit_controllable(self) -> bool: + device_config = getattr(self, 'device_config', self.kwargs.get('device_config')) + if device_config is None: + return False + try: + return SolaxVersion(device_config.configuration.version) == SolaxVersion.G3 + except ValueError: + return False + component_descriptor = ComponentDescriptor(configuration_factory=SolaxBatSetup) diff --git a/packages/modules/devices/solax/solax/bat_test.py b/packages/modules/devices/solax/solax/bat_test.py new file mode 100644 index 0000000000..fdfc6d2d41 --- /dev/null +++ b/packages/modules/devices/solax/solax/bat_test.py @@ -0,0 +1,41 @@ +from types import SimpleNamespace + +from modules.devices.solax.solax import bat +from modules.devices.solax.solax.config import Solax, SolaxBatSetup, SolaxConfiguration +from modules.devices.solax.solax.version import SolaxVersion + + +def _create_solax_bat(version: SolaxVersion) -> bat.SolaxBat: + config = SolaxConfiguration(version=version) + device_config = Solax(configuration=config) + return bat.SolaxBat(SolaxBatSetup(), device_config=device_config, client=SimpleNamespace()) + + +def test_get_mode4_push_power_stop_is_zero() -> None: + solax_bat = _create_solax_bat(SolaxVersion.G3) + assert solax_bat._get_mode4_push_power(0) == 0 + + +def test_get_mode4_push_power_discharge_is_positive() -> None: + solax_bat = _create_solax_bat(SolaxVersion.G3) + assert solax_bat._get_mode4_push_power(-700) == 700 + + +def test_get_mode4_push_power_charge_is_negative() -> None: + solax_bat = _create_solax_bat(SolaxVersion.G3) + assert solax_bat._get_mode4_push_power(1000) == -1000 + + +def test_power_limit_controllable_true_for_g3() -> None: + solax_bat = _create_solax_bat(SolaxVersion.G3) + assert solax_bat.power_limit_controllable() is True + + +def test_power_limit_controllable_false_for_g2() -> None: + solax_bat = _create_solax_bat(SolaxVersion.G2) + assert solax_bat.power_limit_controllable() is False + + +def test_power_limit_controllable_false_for_g4() -> None: + solax_bat = _create_solax_bat(SolaxVersion.G4) + assert solax_bat.power_limit_controllable() is False