evcc-io/assets/js/components/Vehicles/Status.story.vue
Maschga 040e05b1eb
chore: Typescript: Rewrite Vehicles (#21636)
Co-authored-by: Michael Geers <michael@geers.tv>
2025-06-06 12:57:00 +00:00

229 lines
5.7 KiB
Vue

<script setup lang="ts">
import Status from "./Status.vue";
import { CURRENCY } from "@/types/evcc";
function getFutureTime(hours: number, minutes: number) {
const now = new Date();
now.setHours(now.getHours() + hours);
now.setMinutes(now.getMinutes() + minutes);
return now.toISOString();
}
const planProjectedStart = getFutureTime(3, 21);
const effectivePlanTime = getFutureTime(6, 54);
const planProjectedEnd = getFutureTime(5, 43);
</script>
<template>
<Story title="VehicleStatus" :layout="{ type: 'grid', iframe: false, width: 320 }">
<Variant title="status: disconnected">
<Status />
</Variant>
<Variant title="status: connected">
<Status connected />
</Variant>
<Variant title="status: enabled">
<Status connected enabled />
</Variant>
<Variant title="status: charging">
<Status connected charging />
</Variant>
<Variant title="solar: pv enable">
<Status connected pvAction="enable" :pvRemainingInterpolated="90" />
</Variant>
<Variant title="solar: charging">
<Status connected enabled charging :sessionSolarPercentage="94" />
</Variant>
<Variant title="solar: pv disable">
<Status connected charging pvAction="disable" :pvRemainingInterpolated="90" />
</Variant>
<Variant title="solar: pv reduce phases">
<Status connected charging phaseAction="scale1p" :phaseRemainingInterpolated="181" />
</Variant>
<Variant title="solar: pv increase phases">
<Status connected charging phaseAction="scale3p" :phaseRemainingInterpolated="44" />
</Variant>
<Variant title="min soc">
<Status connected charging :minSoc="20" :vehicleSoc="10" />
</Variant>
<Variant title="plan: start soon">
<Status
connected
:effectivePlanTime="effectivePlanTime"
:planProjectedStart="planProjectedStart"
/>
</Variant>
<Variant title="plan: start soon, charging">
<Status
connected
charging
:effectivePlanTime="effectivePlanTime"
:planProjectedStart="planProjectedStart"
/>
</Variant>
<Variant title="plan: active">
<Status
connected
charging
planActive
:effectivePlanTime="effectivePlanTime"
:planProjectedStart="planProjectedStart"
:planProjectedEnd="planProjectedEnd"
/>
</Variant>
<Variant title="plan: active, not reachable">
<Status
connected
charging
planActive
:effectivePlanTime="effectivePlanTime"
:planProjectedStart="planProjectedStart"
:planProjectedEnd="planProjectedEnd"
:planOverrun="1829"
planTimeUnreachable
/>
</Variant>
<Variant title="vehicle: climating">
<Status connected enabled vehicleClimaterActive />
</Variant>
<Variant title="vehicle: limit">
<Status connected enabled :vehicleSoc="33" :vehicleLimitSoc="70" />
</Variant>
<Variant title="vehicle: limit reached">
<Status connected enabled :vehicleSoc="70" :vehicleLimitSoc="70" />
</Variant>
<Variant title="vehicle: limit unreachable">
<Status
connected
enabled
:vehicleSoc="40"
:vehicleLimitSoc="70"
:effectivePlanSoc="80"
/>
</Variant>
<Variant title="smart cost: clean energy set">
<Status
connected
enabled
charging
:tariffCo2="600"
:smartCostLimit="500"
smartCostType="co2"
/>
</Variant>
<Variant title="smart cost: clean energy next start">
<Status
connected
enabled
:smartCostLimit="500"
smartCostType="co2"
:smartCostNextStart="planProjectedStart"
/>
</Variant>
<Variant title="smart cost: clean energy active">
<Status
connected
enabled
charging
:tariffCo2="400"
:smartCostLimit="500"
smartCostType="co2"
smartCostActive
/>
</Variant>
<Variant title="smart cost: cheap energy set">
<Status
connected
enabled
charging
:currency="CURRENCY.EUR"
:tariffGrid="0.32"
:smartCostLimit="0.12"
smartCostType="price"
/>
</Variant>
<Variant title="smart cost: cheap but not connected">
<Status
:currency="CURRENCY.EUR"
:tariffGrid="0.091"
:smartCostLimit="0.12"
smartCostType="price"
/>
</Variant>
<Variant title="smart cost: cheap energy next start">
<Status
connected
enabled
charging
:currency="CURRENCY.EUR"
:smartCostLimit="0.12"
smartCostType="price"
:smartCostNextStart="planProjectedStart"
/>
</Variant>
<Variant title="smart cost: cheap energy active">
<Status
connected
enabled
charging
:currency="CURRENCY.EUR"
:tariffGrid="0.11"
:smartCostLimit="0.12"
smartCostType="price"
smartCostActive
/>
</Variant>
<Variant title="combination: minsoc, cheap">
<Status
connected
enabled
charging
:currency="CURRENCY.EUR"
:smartCostLimit="0.15"
smartCostType="price"
:minSoc="20"
:vehicleSoc="10"
/>
</Variant>
<Variant title="combination: pv disable, plan">
<Status
connected
charging
pvAction="disable"
:pvRemainingInterpolated="181"
:effectivePlanTime="effectivePlanTime"
:planProjectedStart="planProjectedStart"
/>
</Variant>
<Variant title="combination: vehicle limit, plan">
<Status
connected
charging
:sessionSolarPercentage="94"
:vehicleLimitSoc="80"
:effectiveLimitSoc="90"
:effectivePlanTime="effectivePlanTime"
:planProjectedStart="planProjectedStart"
/>
</Variant>
<Variant title="combination: maximal">
<Status
connected
enabled
:sessionSolarPercentage="94"
:minSoc="20"
:vehicleSoc="10"
:tariffGrid="0.33"
:smartCostLimit="0.2"
smartCostType="price"
:smartCostNextStart="planProjectedStart"
:effectivePlanTime="effectivePlanTime"
:planProjectedStart="planProjectedStart"
vehicleClimaterActive
/>
</Variant>
<Variant title="welcome charge">
<Status connected charging vehicleWelcomeActive />
</Variant>
</Story>
</template>