diff --git a/assets/js/components/Energyflow/Energyflow.vue b/assets/js/components/Energyflow/Energyflow.vue index 5d7ef22cf..0f91750de 100644 --- a/assets/js/components/Energyflow/Energyflow.vue +++ b/assets/js/components/Energyflow/Energyflow.vue @@ -64,17 +64,19 @@ >

In

- +

Out

- +
@@ -293,6 +300,9 @@ export default { co2Available() { return this.smartCostType === CO2_TYPE; }, + pvPossible() { + return this.pvConfigured || this.gridConfigured; + }, }, mounted() { window.addEventListener("resize", this.updateHeight); diff --git a/assets/js/components/Energyflow/Visualization.vue b/assets/js/components/Energyflow/Visualization.vue index 1622861e6..d8f644e72 100644 --- a/assets/js/components/Energyflow/Visualization.vue +++ b/assets/js/components/Energyflow/Visualization.vue @@ -60,11 +60,8 @@ :format="fmtBarValue" /> -
- {{ $t("main.energyflow.noEnergy") }} +
+ {{ fmtKw(0, false, true) }}
diff --git a/assets/js/components/Loadpoint.vue b/assets/js/components/Loadpoint.vue index ab9ef1d02..53dda6178 100644 --- a/assets/js/components/Loadpoint.vue +++ b/assets/js/components/Loadpoint.vue @@ -15,7 +15,7 @@
- +
@@ -98,6 +98,7 @@ import LoadpointSettingsButton from "./LoadpointSettingsButton.vue"; import LoadpointSettingsModal from "./LoadpointSettingsModal.vue"; import VehicleIcon from "./VehicleIcon"; import LoadpointSessionInfo from "./LoadpointSessionInfo.vue"; +import smartCostAvailable from "../utils/smartCostAvailable"; export default { name: "Loadpoint", @@ -189,6 +190,8 @@ export default { tariffCo2: Number, currency: String, multipleLoadpoints: Boolean, + gridConfigured: Boolean, + pvConfigured: Boolean, }, data() { return { @@ -218,6 +221,9 @@ export default { phasesProps: function () { return this.collectProps(Phases); }, + modeProps: function () { + return this.collectProps(Mode); + }, sessionInfoProps: function () { return this.collectProps(LoadpointSessionInfo); }, @@ -251,6 +257,12 @@ export default { socBasedPlanning: function () { return this.socBasedCharging && this.vehicle?.capacity > 0; }, + pvPossible: function () { + return this.pvConfigured || this.gridConfigured; + }, + hasSmartCost: function () { + return smartCostAvailable(this.smartCostType); + }, }, watch: { phaseRemaining() { diff --git a/assets/js/components/Loadpoints.vue b/assets/js/components/Loadpoints.vue index 648f0e87b..6c19dc24e 100644 --- a/assets/js/components/Loadpoints.vue +++ b/assets/js/components/Loadpoints.vue @@ -22,6 +22,8 @@ :tariffCo2="tariffCo2" :currency="currency" :multiple-loadpoints="loadpoints.length > 1" + :grid-configured="gridConfigured" + :pv-configured="pvConfigured" class="h-100" :class="{ 'loadpoint-unselected': !selected(index) }" @click="scrollTo(index)" @@ -67,6 +69,8 @@ export default { tariffGrid: Number, tariffCo2: Number, currency: String, + gridConfigured: Boolean, + pvConfigured: Boolean, }, data() { return { selectedIndex: 0, snapTimeout: null }; diff --git a/assets/js/components/Mode.vue b/assets/js/components/Mode.vue index 86d08e96c..0986782b4 100644 --- a/assets/js/components/Mode.vue +++ b/assets/js/components/Mode.vue @@ -1,5 +1,5 @@ @@ -18,14 +18,31 @@ export default { name: "Mode", props: { mode: String, + pvPossible: Boolean, + hasSmartCost: Boolean, }, emits: ["updated"], - data() { - return { - modes: ["off", "pv", "minpv", "now"], - }; + + computed: { + modes: function () { + if (this.pvPossible) { + return ["off", "pv", "minpv", "now"]; + } + if (this.hasSmartCost) { + return ["off", "pv", "now"]; + } + return ["off", "now"]; + }, }, methods: { + label: function (mode) { + // rename pv mode to smart for non-pv and dynamic tariffs scenarios + // TODO: rollout smart name for everyting later + if (mode === "pv" && !this.pvPossible && this.hasSmartCost) { + return this.$t("main.mode.smart"); + } + return this.$t(`main.mode.${mode}`); + }, isActive: function (mode) { return this.mode === mode; }, diff --git a/assets/js/components/Site.vue b/assets/js/components/Site.vue index 5e6d27dd7..267a6b4aa 100644 --- a/assets/js/components/Site.vue +++ b/assets/js/components/Site.vue @@ -29,6 +29,8 @@ :tariffGrid="tariffGrid" :tariffCo2="tariffCo2" :currency="currency" + :gridConfigured="gridConfigured" + :pvConfigured="pvConfigured" /> diff --git a/assets/js/views/Config.vue b/assets/js/views/Config.vue index 1306c85ea..c33d1b706 100644 --- a/assets/js/views/Config.vue +++ b/assets/js/views/Config.vue @@ -17,7 +17,6 @@

Missing features