mirror of
https://github.com/openhab/openhab-addons.git
synced 2025-01-25 14:55:55 +01:00
[evcc] Adjust to evcc 0.125.0 API changes (#16660)
* avoid deprecated parameters evcc rest API parameters 'batteryConfigured' and 'pvConfigured' Signed-off-by: Michael Weger <weger.michael@gmx.net> Signed-off-by: Ciprian Pascu <contact@ciprianpascu.ro>
This commit is contained in:
parent
627cc9d590
commit
173e124278
@ -1,7 +1,7 @@
|
||||
# evcc Binding
|
||||
|
||||
This binding integrates [evcc - electric vehicle charging control](https://evcc.io), a project that provides a control center for electric vehicle charging.
|
||||
The binding requires evcc [version 0.123.1](https://github.com/evcc-io/evcc/releases/tag/0.123.1) or newer and is tested with this version.
|
||||
This binding integrates [evcc](https://evcc.io), an extensible **E**lectric **V**ehicle **C**harge **C**ontroller and home energy management system.
|
||||
The binding is compatible to evcc [version 0.123.1](https://github.com/evcc-io/evcc/releases/tag/0.123.1) or newer and was tested with [version 0.125.0](https://github.com/evcc-io/evcc/releases/tag/0.125.0).
|
||||
|
||||
You can easily install and upgrade evcc on openHABian using `sudo openhabian-config`.
|
||||
|
||||
|
@ -27,7 +27,9 @@ import org.eclipse.jdt.annotation.NonNullByDefault;
|
||||
import org.eclipse.jdt.annotation.Nullable;
|
||||
import org.openhab.binding.evcc.internal.api.EvccAPI;
|
||||
import org.openhab.binding.evcc.internal.api.EvccApiException;
|
||||
import org.openhab.binding.evcc.internal.api.dto.Battery;
|
||||
import org.openhab.binding.evcc.internal.api.dto.Loadpoint;
|
||||
import org.openhab.binding.evcc.internal.api.dto.PV;
|
||||
import org.openhab.binding.evcc.internal.api.dto.Plan;
|
||||
import org.openhab.binding.evcc.internal.api.dto.Result;
|
||||
import org.openhab.binding.evcc.internal.api.dto.Vehicle;
|
||||
@ -216,7 +218,6 @@ public class EvccHandler extends BaseThingHandler {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
} else if (groupId.startsWith(CHANNEL_GROUP_ID_VEHICLE) || groupId.startsWith(CHANNEL_GROUP_ID_HEATING)
|
||||
|| (groupId.startsWith(CHANNEL_GROUP_ID_LOADPOINT)
|
||||
&& groupId.endsWith(CHANNEL_GROUP_ID_CURRENT))) {
|
||||
@ -412,9 +413,11 @@ public class EvccHandler extends BaseThingHandler {
|
||||
Map<String, Vehicle> vehicles = result.getVehicles();
|
||||
logger.debug("Found {} vehicles on site {}.", vehicles.size(), sitename);
|
||||
updateStatus(ThingStatus.ONLINE);
|
||||
batteryConfigured = result.getBatteryConfigured();
|
||||
gridConfigured = result.getGridConfigured();
|
||||
pvConfigured = result.getPvConfigured();
|
||||
Battery[] batteries = result.getBattery();
|
||||
batteryConfigured = ((batteries != null) && (batteries.length > 0));
|
||||
gridConfigured = (result.getGridPower() != null);
|
||||
PV[] pvs = result.getPV();
|
||||
pvConfigured = ((pvs != null) && (pvs.length > 0));
|
||||
createChannelsGeneral();
|
||||
updateChannelsGeneral();
|
||||
for (int i = 0; i < numberOfLoadpoints; i++) {
|
||||
@ -704,7 +707,7 @@ public class EvccHandler extends BaseThingHandler {
|
||||
}
|
||||
boolean gridConfigured = this.gridConfigured;
|
||||
if (gridConfigured) {
|
||||
float gridPower = result.getGridPower();
|
||||
float gridPower = ((result.getGridPower() == null) ? 0.0f : result.getGridPower());
|
||||
channel = new ChannelUID(uid, CHANNEL_GROUP_ID_GENERAL, CHANNEL_GRID_POWER);
|
||||
updateState(channel, new QuantityType<>(gridPower, Units.WATT));
|
||||
}
|
||||
|
@ -0,0 +1,69 @@
|
||||
/**
|
||||
* Copyright (c) 2010-2024 Contributors to the openHAB project
|
||||
*
|
||||
* See the NOTICE file(s) distributed with this work for additional
|
||||
* information.
|
||||
*
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the Eclipse Public License 2.0 which is available at
|
||||
* http://www.eclipse.org/legal/epl-2.0
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*/
|
||||
package org.openhab.binding.evcc.internal.api.dto;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
/**
|
||||
* This class represents a battery object of the status response (/api/state).
|
||||
* This DTO was written for evcc version 0.123.1
|
||||
*
|
||||
* @author MikeTheTux - Initial contribution
|
||||
*/
|
||||
public class Battery {
|
||||
// Data types from https://github.com/evcc-io/evcc/blob/master/api/api.go
|
||||
// and from https://docs.evcc.io/docs/reference/configuration/messaging/#msg
|
||||
|
||||
@SerializedName("power")
|
||||
private float power;
|
||||
|
||||
@SerializedName("energy")
|
||||
private float energy;
|
||||
|
||||
@SerializedName("soc")
|
||||
private float soc;
|
||||
|
||||
@SerializedName("capacity")
|
||||
private float capacity;
|
||||
|
||||
@SerializedName("controllable")
|
||||
private boolean controllable;
|
||||
|
||||
/**
|
||||
* @return battery's capacity
|
||||
*/
|
||||
public float getCapacity() {
|
||||
return capacity;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return battery's power
|
||||
*/
|
||||
public float getPower() {
|
||||
return power;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return battery's state of charge
|
||||
*/
|
||||
public float getSoC() {
|
||||
return soc;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return battery discharge controlable
|
||||
*/
|
||||
public boolean getControllable() {
|
||||
return controllable;
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
/**
|
||||
* Copyright (c) 2010-2024 Contributors to the openHAB project
|
||||
*
|
||||
* See the NOTICE file(s) distributed with this work for additional
|
||||
* information.
|
||||
*
|
||||
* This program and the accompanying materials are made available under the
|
||||
* terms of the Eclipse Public License 2.0 which is available at
|
||||
* http://www.eclipse.org/legal/epl-2.0
|
||||
*
|
||||
* SPDX-License-Identifier: EPL-2.0
|
||||
*/
|
||||
package org.openhab.binding.evcc.internal.api.dto;
|
||||
|
||||
import com.google.gson.annotations.SerializedName;
|
||||
|
||||
/**
|
||||
* This class represents a PV object of the status response (/api/state).
|
||||
* This DTO was written for evcc version 0.123.1
|
||||
*
|
||||
* @author MikeTheTux - Initial contribution
|
||||
*/
|
||||
public class PV {
|
||||
// Data types from https://github.com/evcc-io/evcc/blob/master/api/api.go
|
||||
// and from https://docs.evcc.io/docs/reference/configuration/messaging/#msg
|
||||
|
||||
@SerializedName("power")
|
||||
private float power;
|
||||
|
||||
/**
|
||||
* @return PV power
|
||||
*/
|
||||
public float getPower() {
|
||||
return power;
|
||||
}
|
||||
}
|
@ -32,8 +32,8 @@ public class Result {
|
||||
@SerializedName("batteryCapacity")
|
||||
private float batteryCapacity;
|
||||
|
||||
@SerializedName("batteryConfigured")
|
||||
private boolean batteryConfigured;
|
||||
@SerializedName("battery")
|
||||
private Battery[] battery;
|
||||
|
||||
@SerializedName("batteryPower")
|
||||
private float batteryPower;
|
||||
@ -47,11 +47,14 @@ public class Result {
|
||||
@SerializedName("batteryMode")
|
||||
private String batteryMode;
|
||||
|
||||
@SerializedName("gridConfigured")
|
||||
private boolean gridConfigured;
|
||||
@SerializedName("gridCurrents")
|
||||
private float[] gridCurrents;
|
||||
|
||||
@SerializedName("gridEnergy")
|
||||
private float gridEnergy;
|
||||
|
||||
@SerializedName("gridPower")
|
||||
private float gridPower;
|
||||
private Float gridPower;
|
||||
|
||||
@SerializedName("homePower")
|
||||
private float homePower;
|
||||
@ -71,8 +74,8 @@ public class Result {
|
||||
@SerializedName("residualPower")
|
||||
private float residualPower;
|
||||
|
||||
@SerializedName("pvConfigured")
|
||||
private boolean pvConfigured;
|
||||
@SerializedName("pv")
|
||||
private PV[] pv;
|
||||
|
||||
@SerializedName("pvPower")
|
||||
private float pvPower;
|
||||
@ -89,6 +92,13 @@ public class Result {
|
||||
@SerializedName("availableVersion")
|
||||
private String availableVersion;
|
||||
|
||||
/**
|
||||
* @return all configured batteries
|
||||
*/
|
||||
public Battery[] getBattery() {
|
||||
return battery;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return battery's capacity
|
||||
*/
|
||||
@ -96,13 +106,6 @@ public class Result {
|
||||
return batteryCapacity;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return whether battery is configured
|
||||
*/
|
||||
public boolean getBatteryConfigured() {
|
||||
return batteryConfigured;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return battery's power
|
||||
*/
|
||||
@ -160,16 +163,23 @@ public class Result {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return whether grid is configured
|
||||
* @return grid's currents
|
||||
*/
|
||||
public boolean getGridConfigured() {
|
||||
return gridConfigured;
|
||||
public float[] getGridCurrents() {
|
||||
return gridCurrents;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return grid's power
|
||||
* @return grid's energy
|
||||
*/
|
||||
public float getGridPower() {
|
||||
public float getGridEnergy() {
|
||||
return gridEnergy;
|
||||
}
|
||||
|
||||
/**
|
||||
* @return grid's power or {@code null} if not available
|
||||
*/
|
||||
public Float getGridPower() {
|
||||
return gridPower;
|
||||
}
|
||||
|
||||
@ -188,10 +198,10 @@ public class Result {
|
||||
}
|
||||
|
||||
/**
|
||||
* @return whether pv is configured
|
||||
* @return all configured PVs
|
||||
*/
|
||||
public boolean getPvConfigured() {
|
||||
return pvConfigured;
|
||||
public PV[] getPV() {
|
||||
return pv;
|
||||
}
|
||||
|
||||
/**
|
||||
|
Loading…
Reference in New Issue
Block a user