Add evcc widget (#1473)

* added all evcc related files

* changed units

* bugfix changed first value to pvPower insted of homePower

* deleted proxy.js

* delted battary label and german translation

* Code style changes to evcc widget

---------

Co-authored-by: shamoon <4887959+shamoon@users.noreply.github.com>
This commit is contained in:
emre-54 2023-05-17 19:39:15 +02:00 committed by GitHub
parent a0665c17b8
commit 03eb1b1112
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 61 additions and 0 deletions

View file

@ -0,0 +1,36 @@
import { useTranslation } from "next-i18next";
import Container from "components/services/widget/container";
import Block from "components/services/widget/block";
import useWidgetAPI from "utils/proxy/use-widget-api";
export default function Component({ service }) {
const { t } = useTranslation();
const { widget } = service;
const { data: stateData, error: stateError } = useWidgetAPI(widget, "state");
if (stateError) {
return <Container service={service} error={stateError} />;
}
if (!stateData) {
return (
<Container service={service}>,
<Block label="evcc.pv_power" />
<Block label="evcc.grid_power" />
<Block label="evcc.home_power" />
<Block label="evcc.charge_power"/>
</Container>
);
}
return (
<Container service={service}>
<Block label="evcc.pv_power" value={`${t("common.number", { value: stateData.result.pvPower })} ${t("evcc.watt_hour")}`} />
<Block label="evcc.grid_power" value={`${t("common.number", { value: stateData.result.gridPower })} ${t("evcc.watt_hour")}`} />
<Block label="evcc.home_power" value={`${t("common.number", { value: stateData.result.homePower })} ${t("evcc.watt_hour")}`} />
<Block label="evcc.charge_power" value={`${t("common.number", { value: stateData.result.loadpoints[0].chargePower })} ${t("evcc.watt_hour")}`} />
</Container>
);
}

View file

@ -0,0 +1,14 @@
import genericProxyHandler from "utils/proxy/handlers/generic";
const widget = {
api: "{url}/api/{endpoint}",
proxyHandler: genericProxyHandler,
mappings: {
state: {
endpoint: "state",
}
},
};
export default widget;