Compare commits
10 commits
69074b45a8
...
8d22af9344
Author | SHA1 | Date | |
---|---|---|---|
|
8d22af9344 | ||
|
386bc3b448 | ||
|
c571821bfe | ||
|
4395fb6f13 | ||
|
bdfb6b02ba | ||
|
0275d26daf | ||
|
0812b9bb4d | ||
|
e6d0c5e5c6 | ||
|
3d657ce512 | ||
|
2c2822bcea |
9 changed files with 618 additions and 46 deletions
14
README.md
14
README.md
|
@ -34,16 +34,20 @@ Follow the flow.
|
||||||
|
|
||||||
|
|
||||||
### Sensors
|
### Sensors
|
||||||
Sensors are registered to each device as `sensor.{name}_{serial}_{sensor_name}` with an friendly name of `sensor_name`. Additional attributes are presented on each sensor:
|
Sensors are registered to device as `sensor.{device_name}_{sensor_name}` with an friendly name of `sensor_name`. Additional attributes are presented on each sensor:
|
||||||
- Product Description, Destination Name, Source Name: internal names
|
- Product Description, Destination Name, Source Name: internal names
|
||||||
- Internal Unique ID: `{serial}_{sensor_name}`
|
- Internal Unique ID: `{serial}_{sensor_name}` or `{serial}_{report}_{sensor_name}`
|
||||||
- Device Name: as
|
- Device Name: `{serial}`
|
||||||
- Vendor Product Serial: serial number of the PowerOcean inverter
|
- Vendor Product Serial: serial number of the PowerOcean inverter
|
||||||
- Vendor Firmware Version: 5.1.8
|
- Vendor Firmware Version: 5.1.15
|
||||||
- Vendor Product Build: 13
|
- Vendor Product Build: 6
|
||||||
|
|
||||||
![sensor](documentation/sensor.PNG)
|
![sensor](documentation/sensor.PNG)
|
||||||
|
|
||||||
|
##Neuer Sensor (berechnet aus einzelnen Strings)
|
||||||
|
|
||||||
|
![sensor](documentation/mpptPv_pwrTotal.PNG)
|
||||||
|
|
||||||
|
|
||||||
## Troubleshooting
|
## Troubleshooting
|
||||||
Please set your logging for the this custom component to debug during initial setup phase. If everything works well, you are safe to remove the debug logging:
|
Please set your logging for the this custom component to debug during initial setup phase. If everything works well, you are safe to remove the debug logging:
|
||||||
|
|
|
@ -142,13 +142,11 @@ class ConfigFlow(config_entries.ConfigFlow, domain=DOMAIN):
|
||||||
step_device_options_schema = vol.Schema(
|
step_device_options_schema = vol.Schema(
|
||||||
{
|
{
|
||||||
vol.Required("custom_device_name", default=default_device_name): str,
|
vol.Required("custom_device_name", default=default_device_name): str,
|
||||||
# vol.Required("polling_time", default=60): vol.All(
|
vol.Required("polling_time", default=10): vol.All(
|
||||||
vol.Required("polling_time", default=5): vol.All(
|
vol.Coerce(int), vol.Clamp(min=5)
|
||||||
vol.Coerce(int), vol.Clamp(min=60)
|
|
||||||
),
|
),
|
||||||
vol.Required("group_sensors", default=True): bool,
|
vol.Required("group_sensors", default=True): bool,
|
||||||
#vol.Required("disable_sensors", default=False): bool,
|
vol.Required("disable_sensors", default=False): bool,
|
||||||
vol.Required("disable_sensors", default=True): bool,
|
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
|
@ -3,10 +3,10 @@
|
||||||
import logging
|
import logging
|
||||||
from homeassistant.const import Platform
|
from homeassistant.const import Platform
|
||||||
|
|
||||||
DOMAIN = "powerocean" # Have requested to add logos via https://github.com/home-assistant/brands/pull/4904
|
DOMAIN = "powerocean"
|
||||||
NAME = "Ecoflow PowerOcean"
|
NAME = "Ecoflow PowerOcean"
|
||||||
VERSION = "2024.01.01"
|
VERSION = "2024.08.27"
|
||||||
ISSUE_URL = "https://github.com/evercape/powerocean/issues"
|
ISSUE_URL = "https://github.com/niltrip/powerocean/issues"
|
||||||
ISSUE_URL_ERROR_MESSAGE = " Please log any issues here: " + ISSUE_URL
|
ISSUE_URL_ERROR_MESSAGE = " Please log any issues here: " + ISSUE_URL
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ from .const import _LOGGER, ISSUE_URL_ERROR_MESSAGE
|
||||||
# Better storage of PowerOcean endpoint
|
# Better storage of PowerOcean endpoint
|
||||||
PowerOceanEndPoint = namedtuple(
|
PowerOceanEndPoint = namedtuple(
|
||||||
"PowerOceanEndPoint",
|
"PowerOceanEndPoint",
|
||||||
"internal_unique_id, serial, name, friendly_name, value, unit, description",
|
"internal_unique_id, serial, name, friendly_name, value, unit, description, icon",
|
||||||
)
|
)
|
||||||
|
|
||||||
|
|
||||||
|
@ -43,7 +43,7 @@ class Ecoflow:
|
||||||
"vendor": "Ecoflow",
|
"vendor": "Ecoflow",
|
||||||
"serial": self.sn,
|
"serial": self.sn,
|
||||||
"version": "5.1.15", # TODO: woher bekommt man diese Info?
|
"version": "5.1.15", # TODO: woher bekommt man diese Info?
|
||||||
"build": "13", # TODO: wo finde ich das?
|
"build": "6", # TODO: wo finde ich das?
|
||||||
"name": "PowerOcean",
|
"name": "PowerOcean",
|
||||||
"features": "Photovoltaik",
|
"features": "Photovoltaik",
|
||||||
}
|
}
|
||||||
|
@ -120,7 +120,6 @@ class Ecoflow:
|
||||||
response = self.get_json_response(request)
|
response = self.get_json_response(request)
|
||||||
|
|
||||||
_LOGGER.debug(f"{response}")
|
_LOGGER.debug(f"{response}")
|
||||||
_LOGGER.debug(f"{response['data']}")
|
|
||||||
|
|
||||||
return self._get_sensors(response)
|
return self._get_sensors(response)
|
||||||
|
|
||||||
|
@ -136,7 +135,7 @@ class Ecoflow:
|
||||||
|
|
||||||
def __get_unit(self, key):
|
def __get_unit(self, key):
|
||||||
"""Function get unit from key Name."""
|
"""Function get unit from key Name."""
|
||||||
if key.endswith(("pwr", "Pwr")):
|
if key.endswith(("pwr", "Pwr", "Power")):
|
||||||
unit = "W"
|
unit = "W"
|
||||||
elif key.endswith(("amp", "Amp")):
|
elif key.endswith(("amp", "Amp")):
|
||||||
unit = "A"
|
unit = "A"
|
||||||
|
@ -233,6 +232,9 @@ class Ecoflow:
|
||||||
if not isinstance(value, dict):
|
if not isinstance(value, dict):
|
||||||
# default uid, unit and descript
|
# default uid, unit and descript
|
||||||
unique_id = f"{self.sn}_{key}"
|
unique_id = f"{self.sn}_{key}"
|
||||||
|
special_icon = None
|
||||||
|
if key == "mpptPwr":
|
||||||
|
special_icon = "mdi:solar-power"
|
||||||
|
|
||||||
sensors[unique_id] = PowerOceanEndPoint(
|
sensors[unique_id] = PowerOceanEndPoint(
|
||||||
internal_unique_id=unique_id,
|
internal_unique_id=unique_id,
|
||||||
|
@ -242,6 +244,7 @@ class Ecoflow:
|
||||||
value=value,
|
value=value,
|
||||||
unit=self.__get_unit(key),
|
unit=self.__get_unit(key),
|
||||||
description=self.__get_description(key),
|
description=self.__get_description(key),
|
||||||
|
icon=special_icon,
|
||||||
)
|
)
|
||||||
|
|
||||||
return sensors
|
return sensors
|
||||||
|
@ -270,6 +273,7 @@ class Ecoflow:
|
||||||
# value=value,
|
# value=value,
|
||||||
# unit=self.__get_unit(key),
|
# unit=self.__get_unit(key),
|
||||||
# description=self.__get_description(key),
|
# description=self.__get_description(key),
|
||||||
|
# icon=None,
|
||||||
# )
|
# )
|
||||||
# dict.update(sensors, data)
|
# dict.update(sensors, data)
|
||||||
#
|
#
|
||||||
|
@ -307,6 +311,7 @@ class Ecoflow:
|
||||||
value=value,
|
value=value,
|
||||||
unit=self.__get_unit(key),
|
unit=self.__get_unit(key),
|
||||||
description=self.__get_description(key),
|
description=self.__get_description(key),
|
||||||
|
icon=None,
|
||||||
)
|
)
|
||||||
dict.update(sensors, data)
|
dict.update(sensors, data)
|
||||||
|
|
||||||
|
@ -340,6 +345,9 @@ class Ecoflow:
|
||||||
# default uid, unit and descript
|
# default uid, unit and descript
|
||||||
unique_id = f"{self.sn}_{report}_{bat}_{key}"
|
unique_id = f"{self.sn}_{report}_{bat}_{key}"
|
||||||
description_tmp = f"{name}" + self.__get_description(key)
|
description_tmp = f"{name}" + self.__get_description(key)
|
||||||
|
special_icon = None
|
||||||
|
if key == "bpAmp":
|
||||||
|
special_icon = "mdi:current-dc"
|
||||||
data[unique_id] = PowerOceanEndPoint(
|
data[unique_id] = PowerOceanEndPoint(
|
||||||
internal_unique_id=unique_id,
|
internal_unique_id=unique_id,
|
||||||
serial=self.sn,
|
serial=self.sn,
|
||||||
|
@ -348,6 +356,7 @@ class Ecoflow:
|
||||||
value=value,
|
value=value,
|
||||||
unit=self.__get_unit(key),
|
unit=self.__get_unit(key),
|
||||||
description=description_tmp,
|
description=description_tmp,
|
||||||
|
icon=special_icon,
|
||||||
)
|
)
|
||||||
# compute mean temperature of cells
|
# compute mean temperature of cells
|
||||||
key = "bpTemp"
|
key = "bpTemp"
|
||||||
|
@ -363,6 +372,7 @@ class Ecoflow:
|
||||||
value=value,
|
value=value,
|
||||||
unit=self.__get_unit(key),
|
unit=self.__get_unit(key),
|
||||||
description=description_tmp,
|
description=description_tmp,
|
||||||
|
icon=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
dict.update(sensors, data)
|
dict.update(sensors, data)
|
||||||
|
@ -376,6 +386,10 @@ class Ecoflow:
|
||||||
sens_select = [
|
sens_select = [
|
||||||
"bpRemainWatth",
|
"bpRemainWatth",
|
||||||
"emsBpAliveNum",
|
"emsBpAliveNum",
|
||||||
|
"emsBpPower",
|
||||||
|
"pcsActPwr",
|
||||||
|
"pcsMeterPower",
|
||||||
|
|
||||||
]
|
]
|
||||||
data = {}
|
data = {}
|
||||||
for key, value in d.items():
|
for key, value in d.items():
|
||||||
|
@ -391,6 +405,7 @@ class Ecoflow:
|
||||||
value=value,
|
value=value,
|
||||||
unit=self.__get_unit(key),
|
unit=self.__get_unit(key),
|
||||||
description=description_tmp,
|
description=description_tmp,
|
||||||
|
icon=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
# special for phases
|
# special for phases
|
||||||
|
@ -408,6 +423,7 @@ class Ecoflow:
|
||||||
value=value,
|
value=value,
|
||||||
unit=self.__get_unit(key),
|
unit=self.__get_unit(key),
|
||||||
description=self.__get_description(key),
|
description=self.__get_description(key),
|
||||||
|
icon=None,
|
||||||
)
|
)
|
||||||
|
|
||||||
# special for mpptPv
|
# special for mpptPv
|
||||||
|
@ -419,6 +435,11 @@ class Ecoflow:
|
||||||
for i, mpptpv in enumerate(mpptpvs):
|
for i, mpptpv in enumerate(mpptpvs):
|
||||||
for key, value in d["mpptHeartBeat"][0]["mpptPv"][i].items():
|
for key, value in d["mpptHeartBeat"][0]["mpptPv"][i].items():
|
||||||
unique_id = f"{self.sn}_{report}_mpptHeartBeat_{mpptpv}_{key}"
|
unique_id = f"{self.sn}_{report}_mpptHeartBeat_{mpptpv}_{key}"
|
||||||
|
special_icon = None
|
||||||
|
if key.endswith("amp"):
|
||||||
|
special_icon = "mdi:current-dc"
|
||||||
|
if key.endswith("pwr"):
|
||||||
|
special_icon = "mdi:solar-power"
|
||||||
|
|
||||||
data[unique_id] = PowerOceanEndPoint(
|
data[unique_id] = PowerOceanEndPoint(
|
||||||
internal_unique_id=unique_id,
|
internal_unique_id=unique_id,
|
||||||
|
@ -428,6 +449,7 @@ class Ecoflow:
|
||||||
value=value,
|
value=value,
|
||||||
unit=self.__get_unit(key),
|
unit=self.__get_unit(key),
|
||||||
description=self.__get_description(key),
|
description=self.__get_description(key),
|
||||||
|
icon=special_icon,
|
||||||
)
|
)
|
||||||
# sum power of all strings
|
# sum power of all strings
|
||||||
if key == "pwr":
|
if key == "pwr":
|
||||||
|
@ -445,6 +467,7 @@ class Ecoflow:
|
||||||
value=mpptPv_sum,
|
value=mpptPv_sum,
|
||||||
unit=self.__get_unit(key),
|
unit=self.__get_unit(key),
|
||||||
description="Solarertrag aller Strings",
|
description="Solarertrag aller Strings",
|
||||||
|
icon="mdi:solar-power",
|
||||||
)
|
)
|
||||||
|
|
||||||
dict.update(sensors, data)
|
dict.update(sensors, data)
|
||||||
|
|
|
@ -11,5 +11,5 @@
|
||||||
"homekit": {},
|
"homekit": {},
|
||||||
"iot_class": "cloud_polling",
|
"iot_class": "cloud_polling",
|
||||||
"requirements": [],
|
"requirements": [],
|
||||||
"version": "2024.01.01"
|
"version": "2024.08.27"
|
||||||
}
|
}
|
||||||
|
|
|
@ -144,11 +144,11 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
||||||
# entity is enabled
|
# entity is enabled
|
||||||
if entity and not entity.disabled_by:
|
if entity and not entity.disabled_by:
|
||||||
sensor_data = full_data.get(sensor.unique_id)
|
sensor_data = full_data.get(sensor.unique_id)
|
||||||
_LOGGER.debug(f"{device_id}: Sensor {sensor.name} enabled.")
|
# _LOGGER.debug(f"{device_id}: Sensor {sensor.name} enabled.")
|
||||||
if sensor_data:
|
if sensor_data:
|
||||||
_LOGGER.debug(
|
# _LOGGER.debug(
|
||||||
f"{device_id}: Sensor {sensor.name} has API data to update {sensor_data}"
|
# f"{device_id}: Sensor {sensor.name} has API data to update {sensor_data}"
|
||||||
)
|
# )
|
||||||
|
|
||||||
# Check if current state value differs from new API value,
|
# Check if current state value differs from new API value,
|
||||||
# or current state has not initialized
|
# or current state has not initialized
|
||||||
|
@ -156,19 +156,19 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
||||||
str(sensor._state).strip()
|
str(sensor._state).strip()
|
||||||
!= str(sensor_data.value).strip()
|
!= str(sensor_data.value).strip()
|
||||||
):
|
):
|
||||||
_LOGGER.debug(
|
# _LOGGER.debug(
|
||||||
f"{device_id}: Sensor {sensor.name} marked for update: current state = "
|
# f"{device_id}: Sensor {sensor.name} marked for update: current state = "
|
||||||
f"{sensor._state} with new value = {sensor_data.value}"
|
# f"{sensor._state} with new value = {sensor_data.value}"
|
||||||
)
|
# )
|
||||||
# Now update the sensor with new values
|
# Now update the sensor with new values
|
||||||
# update_status returns 1 for upated, 0 for skipped or error
|
# update_status returns 1 for upated, 0 for skipped or error
|
||||||
update_status = await sensor.async_update(sensor_data)
|
update_status = await sensor.async_update(sensor_data)
|
||||||
counter_updated = counter_updated + update_status
|
counter_updated = counter_updated + update_status
|
||||||
else:
|
else:
|
||||||
_LOGGER.debug(
|
# _LOGGER.debug(
|
||||||
f"{device_id}: Sensor {sensor.name} skipped update! Current value = "
|
# f"{device_id}: Sensor {sensor.name} skipped update! Current value = "
|
||||||
f"{sensor._state}, new value = {sensor_data.value}"
|
# f"{sensor._state}, new value = {sensor_data.value}"
|
||||||
)
|
# )
|
||||||
counter_unchanged = counter_unchanged + 1
|
counter_unchanged = counter_unchanged + 1
|
||||||
else:
|
else:
|
||||||
_LOGGER.warning(
|
_LOGGER.warning(
|
||||||
|
@ -177,9 +177,9 @@ async def async_setup_entry(hass, config_entry, async_add_entities):
|
||||||
)
|
)
|
||||||
counter_error = counter_error + 1
|
counter_error = counter_error + 1
|
||||||
else:
|
else:
|
||||||
_LOGGER.debug(
|
# _LOGGER.debug(
|
||||||
f"{device_id}: Sensor {sensor.name} is disabled, skipping update"
|
# f"{device_id}: Sensor {sensor.name} is disabled, skipping update"
|
||||||
)
|
# )
|
||||||
counter_disabled = counter_disabled + 1
|
counter_disabled = counter_disabled + 1
|
||||||
else:
|
else:
|
||||||
_LOGGER.warning(
|
_LOGGER.warning(
|
||||||
|
@ -231,9 +231,9 @@ class PowerOceanSensor(SensorEntity):
|
||||||
self._unique_id = endpoint.internal_unique_id
|
self._unique_id = endpoint.internal_unique_id
|
||||||
|
|
||||||
# Set the icon for the sensor based on its unit, ensure the icon_mapper is defined
|
# Set the icon for the sensor based on its unit, ensure the icon_mapper is defined
|
||||||
self._icon = PowerOceanSensor.icon_mapper.get(
|
# Default handled in function
|
||||||
endpoint.unit
|
# self._icon = PowerOceanSensor.icon_mapper.get(endpoint.unit)
|
||||||
) # Default handled in function
|
self._icon = endpoint.icon
|
||||||
|
|
||||||
# The initial state/value of the sensor
|
# The initial state/value of the sensor
|
||||||
self._state = endpoint.value
|
self._state = endpoint.value
|
||||||
|
@ -328,16 +328,21 @@ class PowerOceanSensor(SensorEntity):
|
||||||
"manufacturer": "ECOFLOW",
|
"manufacturer": "ECOFLOW",
|
||||||
}
|
}
|
||||||
|
|
||||||
icon_mapper = defaultdict(
|
@property
|
||||||
lambda: "mdi:alert-circle",
|
def icon(self):
|
||||||
{
|
"""Return the icon of the sensor."""
|
||||||
"°C": "mdi:thermometer",
|
return self._icon
|
||||||
"%": "mdi:flash",
|
|
||||||
"s": "mdi:timer",
|
# icon_mapper = defaultdict(
|
||||||
"Wh": "mdi:solar-power-variant-outline",
|
# lambda: "mdi:alert-circle",
|
||||||
"h": "mdi:timer-sand",
|
# {
|
||||||
},
|
# "°C": "mdi:thermometer",
|
||||||
)
|
# "%": "mdi:flash",
|
||||||
|
# "s": "mdi:timer",
|
||||||
|
# "Wh": "mdi:solar-power-variant-outline",
|
||||||
|
# "h": "mdi:timer-sand",
|
||||||
|
# },
|
||||||
|
# )
|
||||||
|
|
||||||
# This is to register the icon settings
|
# This is to register the icon settings
|
||||||
async def async_added_to_hass(self):
|
async def async_added_to_hass(self):
|
||||||
|
|
BIN
documentation/mpptPv_pwrTotal.PNG
Normal file
BIN
documentation/mpptPv_pwrTotal.PNG
Normal file
Binary file not shown.
After Width: | Height: | Size: 58 KiB |
|
@ -37,6 +37,7 @@
|
||||||
"SN_BATTERIEPACK2": "{\n \"bpPwr\": -509.56927,\n \"bpSoc\": 83,\n \"bpSoh\": 100,\n \"bpTemp\": [30.0, 31.0, 30.0, 31.0, 31.0, 29.0, 30.0, 30.0, 31.0],\n \"bpCellMaxVol\": 3311.0,\n \"bpCellMinVol\": 3309.0,\n \"bpRunSta\": \"RUNSTA_RUN\",\n \"bpVol\": 52.957,\n \"bpAmp\": -9.622321,\n \"bpBusVol\": 800.7783,\n \"bpErrCode\": 0,\n \"bpCellVol\": [3311.0, 3311.0, 3310.0, 3310.0, 3310.0, 3311.0, 3310.0, 3311.0, 3310.0, 3309.0, 3310.0, 3310.0, 3311.0, 3310.0, 3310.0, 3311.0],\n \"bpDsrc\": 1,\n \"bpSn\": \"SEozMlpESDRaRjhVMDE2Nw==\",\n \"bpCycles\": 129,\n \"bpBalanceState\": 0,\n \"bpHvMosTemp\": 41.0,\n \"bpLvMosTemp\": 40.0,\n \"bpPtcTemp\": 31.0,\n \"bpHtsTemp\": 36.0,\n \"bpBusNegTemp\": 36.0,\n \"bpBusPosTemp\": 37.0,\n \"bpEnvTemp\": 37.0,\n \"bpAccuChgCap\": 10595094,\n \"bpAccuDsgCap\": 10531372,\n \"bpDesignCap\": 100000,\n \"bpFullCap\": 101681,\n \"bpMaxCellTemp\": 31.0,\n \"bpMinCellTemp\": 29.0,\n \"bpMaxMosTemp\": 41.0,\n \"bpMinMosTemp\": 40.0,\n \"bpBmsFault\": 0,\n \"bpEcloundSoc\": 65535,\n \"bpHeartbeatVer\": 33,\n \"bpTimestamp\": 1723754955,\n \"bpRealSoc\": 82.0,\n \"bpRealSoh\": 101.68145,\n \"bpGlobalProtect\": 0,\n \"bpDownLimitSoc\": 14,\n \"bpUpLimitSoc\": 100,\n \"bpActiveCalReqStat\": 0,\n \"bpActiveCalRunStat\": 0,\n \"moduleProductInfo\": 21251,\n \"moduleProgramSta\": 1,\n \"moduleAplSwVer\": 67176201,\n \"moduleLoaderSwVer\": 67174401,\n \"bmsRunSta\": \"PB_BMS_STATE_NORMAL\",\n \"bmsChgDsgSta\": \"PB_STANDBY_STATE\",\n \"dabModSta\": \"PB_MOD_STA_NORMAL\",\n \"bpChgSop\": 50,\n \"bpDsgSop\": 80,\n \"bpRemainWatth\": 4395.431,\n \"bpTargetSoc\": 83.16742,\n \"bpDiffSoc\": 3.0,\n \"bpMaxSoc\": 83.756485,\n \"bpMinSoc\": 80.75656,\n \"bpLimitSoc\": 0.5,\n \"bpCalendarSoh\": 100.0,\n \"bpCycleSoh\": 100.0,\n \"bpAcRechargeFlag\": false,\n \"bpPtcHeatFlag\": false,\n \"bpPtcExitEvent\": \"PB_PTC_OT_STATE\",\n \"bpAccuChgEnergy\": 539787,\n \"bpAccuDsgEnergy\": 521340,\n \"bpPtcTemp2\": 32.0,\n \"bpSysState\": \"NORMAL_STATE\"\n}"
|
"SN_BATTERIEPACK2": "{\n \"bpPwr\": -509.56927,\n \"bpSoc\": 83,\n \"bpSoh\": 100,\n \"bpTemp\": [30.0, 31.0, 30.0, 31.0, 31.0, 29.0, 30.0, 30.0, 31.0],\n \"bpCellMaxVol\": 3311.0,\n \"bpCellMinVol\": 3309.0,\n \"bpRunSta\": \"RUNSTA_RUN\",\n \"bpVol\": 52.957,\n \"bpAmp\": -9.622321,\n \"bpBusVol\": 800.7783,\n \"bpErrCode\": 0,\n \"bpCellVol\": [3311.0, 3311.0, 3310.0, 3310.0, 3310.0, 3311.0, 3310.0, 3311.0, 3310.0, 3309.0, 3310.0, 3310.0, 3311.0, 3310.0, 3310.0, 3311.0],\n \"bpDsrc\": 1,\n \"bpSn\": \"SEozMlpESDRaRjhVMDE2Nw==\",\n \"bpCycles\": 129,\n \"bpBalanceState\": 0,\n \"bpHvMosTemp\": 41.0,\n \"bpLvMosTemp\": 40.0,\n \"bpPtcTemp\": 31.0,\n \"bpHtsTemp\": 36.0,\n \"bpBusNegTemp\": 36.0,\n \"bpBusPosTemp\": 37.0,\n \"bpEnvTemp\": 37.0,\n \"bpAccuChgCap\": 10595094,\n \"bpAccuDsgCap\": 10531372,\n \"bpDesignCap\": 100000,\n \"bpFullCap\": 101681,\n \"bpMaxCellTemp\": 31.0,\n \"bpMinCellTemp\": 29.0,\n \"bpMaxMosTemp\": 41.0,\n \"bpMinMosTemp\": 40.0,\n \"bpBmsFault\": 0,\n \"bpEcloundSoc\": 65535,\n \"bpHeartbeatVer\": 33,\n \"bpTimestamp\": 1723754955,\n \"bpRealSoc\": 82.0,\n \"bpRealSoh\": 101.68145,\n \"bpGlobalProtect\": 0,\n \"bpDownLimitSoc\": 14,\n \"bpUpLimitSoc\": 100,\n \"bpActiveCalReqStat\": 0,\n \"bpActiveCalRunStat\": 0,\n \"moduleProductInfo\": 21251,\n \"moduleProgramSta\": 1,\n \"moduleAplSwVer\": 67176201,\n \"moduleLoaderSwVer\": 67174401,\n \"bmsRunSta\": \"PB_BMS_STATE_NORMAL\",\n \"bmsChgDsgSta\": \"PB_STANDBY_STATE\",\n \"dabModSta\": \"PB_MOD_STA_NORMAL\",\n \"bpChgSop\": 50,\n \"bpDsgSop\": 80,\n \"bpRemainWatth\": 4395.431,\n \"bpTargetSoc\": 83.16742,\n \"bpDiffSoc\": 3.0,\n \"bpMaxSoc\": 83.756485,\n \"bpMinSoc\": 80.75656,\n \"bpLimitSoc\": 0.5,\n \"bpCalendarSoh\": 100.0,\n \"bpCycleSoh\": 100.0,\n \"bpAcRechargeFlag\": false,\n \"bpPtcHeatFlag\": false,\n \"bpPtcExitEvent\": \"PB_PTC_OT_STATE\",\n \"bpAccuChgEnergy\": 539787,\n \"bpAccuDsgEnergy\": 521340,\n \"bpPtcTemp2\": 32.0,\n \"bpSysState\": \"NORMAL_STATE\"\n}"
|
||||||
},
|
},
|
||||||
"JTS1_EMS_HEARTBEAT": {
|
"JTS1_EMS_HEARTBEAT": {
|
||||||
|
"pcsBpPower": -512.94556,
|
||||||
"pcsCPhase": {
|
"pcsCPhase": {
|
||||||
"vol": 238.08665,
|
"vol": 238.08665,
|
||||||
"amp": 1.032396,
|
"amp": 1.032396,
|
||||||
|
@ -78,6 +79,8 @@
|
||||||
"mpptInsResist": 679.71265
|
"mpptInsResist": 679.71265
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
|
"emsBpPower": -503.5379,
|
||||||
|
"pcsActPwr": 95.37367,
|
||||||
"pcsAPhase": {
|
"pcsAPhase": {
|
||||||
"vol": 230.28967,
|
"vol": 230.28967,
|
||||||
"amp": 1.1428562,
|
"amp": 1.1428562,
|
||||||
|
|
539
documentation/response_modified_5_1_16_11.json
Normal file
539
documentation/response_modified_5_1_16_11.json
Normal file
|
@ -0,0 +1,539 @@
|
||||||
|
{
|
||||||
|
"code": "0",
|
||||||
|
"message": "Success",
|
||||||
|
"data": {
|
||||||
|
"sysLoadPwr": 1730.0,
|
||||||
|
"sysGridPwr": 0.0,
|
||||||
|
"mpptPwr": 1770.0,
|
||||||
|
"bpPwr": 40.0,
|
||||||
|
"bpSoc": 55,
|
||||||
|
"sysBatChgUpLimit": 0,
|
||||||
|
"sysBatDsgDownLimit": 0,
|
||||||
|
"sysGridSta": 0,
|
||||||
|
"sysOnOffMachineStat": 0,
|
||||||
|
"online": 1,
|
||||||
|
"todayElectricityGeneration": "1.79",
|
||||||
|
"monthElectricityGeneration": "770.80",
|
||||||
|
"yearElectricityGeneration": "4781.03",
|
||||||
|
"totalElectricityGeneration": "4883.49",
|
||||||
|
"systemName": "systemName",
|
||||||
|
"createTime": "createTime",
|
||||||
|
"location": "location",
|
||||||
|
"timezone": "timezone",
|
||||||
|
"quota": {
|
||||||
|
"JTS1_ENERGY_STREAM_REPORT": {
|
||||||
|
"bpSoc": 55,
|
||||||
|
"mpptPwr": 1770.0,
|
||||||
|
"updateTime": "2024-08-29 16:14:09",
|
||||||
|
"bpPwr": 40.0,
|
||||||
|
"sysLoadPwr": 1730.0,
|
||||||
|
"sysGridPwr": 0.0
|
||||||
|
},
|
||||||
|
"JTS1_EMS_CHANGE_REPORT": {
|
||||||
|
"pcsUnderFreqIncrementEndDelay": 0.0,
|
||||||
|
"pcsQuQ1": 0.6,
|
||||||
|
"pcsQuQ2": 0.0,
|
||||||
|
"pcsQuQ3": 0.0,
|
||||||
|
"pcsQuQ4": -0.6,
|
||||||
|
"afciEn": 0,
|
||||||
|
"ethWanStat": 0,
|
||||||
|
"pcsDcErrCode": 0,
|
||||||
|
"evBindList": {
|
||||||
|
"evSn": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"pcsFaultRecoverHighFreqOnGrid": 50.1,
|
||||||
|
"afciProtectValueCh1": 0.0,
|
||||||
|
"pcsLowVolRecover": 195.5,
|
||||||
|
"batRealyStatus": 2,
|
||||||
|
"mppt1WarningCode": 0,
|
||||||
|
"afciProtectValueCh2": 20000.0,
|
||||||
|
"afciFaultCntCh2": 0,
|
||||||
|
"afciFaultCntCh1": 0,
|
||||||
|
"pcsOverVolDeratingSwitch": 0,
|
||||||
|
"pcsOverFreq1": 51.5,
|
||||||
|
"pcsOverFreq2": 51.5,
|
||||||
|
"sysHeatStat": 0,
|
||||||
|
"pcsHighVolRideThroughRecover": 253.0,
|
||||||
|
"pcsAutoTestFlag": 0,
|
||||||
|
"pcsSafetyCountryCodeSelection": 4,
|
||||||
|
"bpLineOffFlag": 0,
|
||||||
|
"batSoftRelayStatus": 0,
|
||||||
|
"pcsUnderFreqIncrementEnd": 49.8,
|
||||||
|
"emsWorkState": 0,
|
||||||
|
"iot4gErr": 7,
|
||||||
|
"bpOnlineSum": 2,
|
||||||
|
"pcsOverFreqDeratingSwitch": 0,
|
||||||
|
"afciFaultMaxValueCh1": 0.0,
|
||||||
|
"afciFaultMaxValueCh2": 0.0,
|
||||||
|
"sysWorkSta": 0,
|
||||||
|
"pcsOverVolRideThroughStart1": 265.65,
|
||||||
|
"batRelayCloseFailFlag": 0,
|
||||||
|
"rateCtrlSwtich": false,
|
||||||
|
"pcsFastCheck": 0,
|
||||||
|
"pcsOverVolRideThroughStart2": 287.5,
|
||||||
|
"pcsLowFreqTime2": 100,
|
||||||
|
"emsSysSelfCheckStat": 9,
|
||||||
|
"pcsLowFreqTime1": 100,
|
||||||
|
"pcsLowVolRideThroughRecover": 195.5,
|
||||||
|
"pcsReactPwrCompensation": 0.0049,
|
||||||
|
"wireless4gIccid": "",
|
||||||
|
"pcsQuLockoutPower": 0.0,
|
||||||
|
"pcsActivePowerSoftstartSwitch": 1,
|
||||||
|
"pcsCospP1": 0.1,
|
||||||
|
"pcsCospP2": 0.5,
|
||||||
|
"pcsOvpProtectCnt": 0,
|
||||||
|
"pcsUnderFreqIncrementSlope": 0.4,
|
||||||
|
"pcsCospP3": 1.0,
|
||||||
|
"parallelType": 0,
|
||||||
|
"pcsCospP4": 0.0,
|
||||||
|
"sysMulPeakTime": 1200,
|
||||||
|
"emsWordMode": "WORKMODE_SELFUSE",
|
||||||
|
"pcsOverVolRideThroughProtectTime1": 5500,
|
||||||
|
"pcsOverFreqDeratingRecoverSlope": 0.09,
|
||||||
|
"pcsOfpProtectCnt": 0,
|
||||||
|
"pcsUvp2ProtectCnt": 0,
|
||||||
|
"pcsOverVolRideThroughProtectTime2": 1000,
|
||||||
|
"pcsUnderFreqIncrementRecoverSlope": 0.09,
|
||||||
|
"pcsFaultRecoverHighVolOnGrid": 253.0,
|
||||||
|
"chgDsgPwr": 0.0,
|
||||||
|
"pcsRunSta": "RUNSTA_RUN",
|
||||||
|
"mppt2WarningCode": 0,
|
||||||
|
"pcsOfpProtectValue": 0.0,
|
||||||
|
"pcsQuV1": 213.90001,
|
||||||
|
"wifiStaStat": 0,
|
||||||
|
"pcsAutoTestState": 0,
|
||||||
|
"pcsOverVolDeratingEnd": 257.6,
|
||||||
|
"pcsFaultRecoverLowFreqOnGrid": 47.53,
|
||||||
|
"emsFeedRatio": 100,
|
||||||
|
"pcsLowVolRideThroughProtectTime1": 5200,
|
||||||
|
"pcsFreqLocalCommand": 1,
|
||||||
|
"pcsLowVolRideThroughProtectTime3": 1000,
|
||||||
|
"pcsLowVolRideThroughProtectTime2": 3000,
|
||||||
|
"pcsOverFreqDeratingStart": 50.2,
|
||||||
|
"pcs10minOverVolTime": 100,
|
||||||
|
"sysGridSta": 0,
|
||||||
|
"pcsUnderFreqIncrementStart": 49.8,
|
||||||
|
"sysRateCtrlTime": 60,
|
||||||
|
"pcsAvgOvpProtectCnt": 0,
|
||||||
|
"pcsUvp2ProtectValue": 0.0,
|
||||||
|
"pcsLowVolTime2": 300,
|
||||||
|
"pcsLowVolTime3": 240,
|
||||||
|
"pcsFaultRecoverLowVolOnGrid": 195.5,
|
||||||
|
"mppt2FaultCode": 0,
|
||||||
|
"pcsLowVolTime1": 3000,
|
||||||
|
"pcsSendEnd": 0,
|
||||||
|
"sysBatBackupRatio": 0,
|
||||||
|
"emsFeedPwr": 10000,
|
||||||
|
"afciSelfTestCmdState": 0,
|
||||||
|
"pcsOvpProtectValue": 0.0,
|
||||||
|
"sysMulPeakSwitch": true,
|
||||||
|
"emsSgRunStat": 0,
|
||||||
|
"pcsOverFreqDeratingEnd": 50.2,
|
||||||
|
"pcs10minOverVolSwitch": 0,
|
||||||
|
"pcsUnderFreqIncrementFrozeSwitch": 0,
|
||||||
|
"pcsAcWarningCode": 0,
|
||||||
|
"sysTypeCfg": 0,
|
||||||
|
"pcsPowerDeratingFlag": 9,
|
||||||
|
"pcsQuV2": 223.1,
|
||||||
|
"pcsQuV3": 236.9,
|
||||||
|
"pcsQuV4": 246.1,
|
||||||
|
"emsFeedMode": 3,
|
||||||
|
"pcsAcErrCode": 0,
|
||||||
|
"pcsOngridReconnectFlag": 0,
|
||||||
|
"pcsUvp1ProtectCnt": 0,
|
||||||
|
"pcsOverVolDeratingDaleyTime": 0.0,
|
||||||
|
"sysCalStat": 0,
|
||||||
|
"emsSgReadyEn": false,
|
||||||
|
"pcsOverFreqTime2": 100,
|
||||||
|
"pcsOverFreqTime1": 100,
|
||||||
|
"pcsOverVolDeratingTimeConst": 10.0,
|
||||||
|
"pcsPowerDeratingSet": 200,
|
||||||
|
"userRole": 0,
|
||||||
|
"pcsAvgOvpProtectValue": 0.0,
|
||||||
|
"pcsFunctionEnable": 0,
|
||||||
|
"pcsOverVolTime1": 100,
|
||||||
|
"pcsOverVolTime2": 100,
|
||||||
|
"pcsOverVolTime3": 0,
|
||||||
|
"pcsActivePowerNormalRampUpRate": 60.0,
|
||||||
|
"pcsUfpProtectValue": 0.0,
|
||||||
|
"pcsLowVolRideThroughStart1": 184.0,
|
||||||
|
"pcsAntiBackFlowSwitch": 1,
|
||||||
|
"pcsLowVolRideThroughStart3": 57.5,
|
||||||
|
"pcsLowVol1": 184.0,
|
||||||
|
"pcsLowVolRideThroughStart2": 103.5,
|
||||||
|
"pcsLowVol2": 103.5,
|
||||||
|
"pcsLowVol3": 57.5,
|
||||||
|
"pcsOverFreqDeratingEndDelay": 0.0,
|
||||||
|
"pcsOverVolDeratingEndPower": 0.0,
|
||||||
|
"sysOnOffMachineStat": 0,
|
||||||
|
"afciFaultClearState": 0,
|
||||||
|
"parallelTypeCur": 0,
|
||||||
|
"mppt1FaultCode": 0,
|
||||||
|
"pcsOverVolRecover": 253.0,
|
||||||
|
"emsCtrlLedType": 1,
|
||||||
|
"pcsActivePowerDeratingPercent": 1.0,
|
||||||
|
"sysBatChgUpLimit": 100,
|
||||||
|
"pcsOverVol3": 0.0,
|
||||||
|
"pcsOverVol2": 287.5,
|
||||||
|
"pcsOverVol1": 287.5,
|
||||||
|
"pcs10minOverVol": 253.0,
|
||||||
|
"pcsAutoTestPercent": 0,
|
||||||
|
"iot4gSta": 2,
|
||||||
|
"afciFaultValueCh2": 0.0,
|
||||||
|
"afciFaultValueCh1": 0.0,
|
||||||
|
"emsSgReady": {
|
||||||
|
"emsSgParam": [
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"pcsOverFreqDeratingStartDelay": 0.0,
|
||||||
|
"sysBatDsgDownLimit": 10,
|
||||||
|
"pcsLowFreqRecover": 47.53,
|
||||||
|
"parallelTypeSet": 0,
|
||||||
|
"pcsActivePowerSoftStartRate": 0.1,
|
||||||
|
"pcsOverFreqDeratingCutoffPower": 0.0,
|
||||||
|
"pcsActivePowerSoftstartTime": 1143373824,
|
||||||
|
"pcsQuMinimumCosphi": 0.4,
|
||||||
|
"pcsHighFreqOnGrid": 50.1,
|
||||||
|
"pcsQuTimeConst": 10.0,
|
||||||
|
"pcsReactPwrModeSelect": 0,
|
||||||
|
"iot4gOn": 1,
|
||||||
|
"bpTotalChgEnergy": 1214338,
|
||||||
|
"pcsLowFreqOnGrid": 47.53,
|
||||||
|
"pcsRunFsmState": 58861634,
|
||||||
|
"afciFaultFlagCh1": 0,
|
||||||
|
"pcsOverFreqDeratingFrozeSwitch": 0,
|
||||||
|
"afciFaultFlagCh2": 0,
|
||||||
|
"updateTime": "2024-08-29 16:37:32",
|
||||||
|
"pcsHighVolOnGrid": 253.0,
|
||||||
|
"pcsOverVolDeratingStart": 253.0,
|
||||||
|
"pcsUfpProtectCnt": 0,
|
||||||
|
"pcsOverFreqRecover": 50.1,
|
||||||
|
"pcsUnderFreqIncrementRecoverSlopeSwitch": 1,
|
||||||
|
"chgDsgMode": 0,
|
||||||
|
"sysMeterCfg": 0,
|
||||||
|
"pcsCospPf2": -1.0,
|
||||||
|
"pcsOverFreqDeratingRecoverSlopeSwitch": 0,
|
||||||
|
"pcsCospPf1": -1.0,
|
||||||
|
"pcsCospPf4": 0.0,
|
||||||
|
"pcsCospPf3": -0.9,
|
||||||
|
"afciIsExist": 0,
|
||||||
|
"pcsActivePowerGradient": 0.0033,
|
||||||
|
"afciSellfTestResult": 0,
|
||||||
|
"pcsHvrtLvrtSwitch": 1,
|
||||||
|
"pcsQuLockinPower": 0.0,
|
||||||
|
"pcsActivePowerDeratingSwitch": 0,
|
||||||
|
"bpChgDsgSta": 1,
|
||||||
|
"pcsFreqRecoverTime": 1000,
|
||||||
|
"emsKeepSoc": 0,
|
||||||
|
"pcsFaultRecoverOnGridWaitTime": 60000,
|
||||||
|
"pcsPfValue": 1.0,
|
||||||
|
"bpReverseFlag": 0,
|
||||||
|
"afciEnSet": 0,
|
||||||
|
"pcsVolRecoverTime": 1000,
|
||||||
|
"pcsOnGridWaitTime": 60000,
|
||||||
|
"bpSoc": 60,
|
||||||
|
"pcsReconnectGridDetectSwitch": 1,
|
||||||
|
"pcsLowFreq1": 47.5,
|
||||||
|
"pcsLowFreq2": 47.5,
|
||||||
|
"bpRestartFlag": 1,
|
||||||
|
"pcsUvp1ProtectValue": 0.0,
|
||||||
|
"emsCtrlLedBright": 10,
|
||||||
|
"pcsOverVolDeratingStartingPower": 1.0,
|
||||||
|
"pcsOverFreqDeratingSlope": 0.4,
|
||||||
|
"pcsUnderFreqIncrementSwitch": 0,
|
||||||
|
"virtualHardEdition": 1,
|
||||||
|
"parallelAllowState": false,
|
||||||
|
"pcsReactPwrPercent": 0.0,
|
||||||
|
"afciSwitchFreqCh2": 20000,
|
||||||
|
"iot4gPdp": -1,
|
||||||
|
"pcsRelaySelfCheckSta": 9,
|
||||||
|
"afciSwitchFreqCh1": 0,
|
||||||
|
"pcsOverFreqDeratingPowerBased": 2.0,
|
||||||
|
"emsStopAll": 0,
|
||||||
|
"pcsUnderFreqIncrementStartDelay": 0.0,
|
||||||
|
"pcsFreqExternalSignal": 0,
|
||||||
|
"pcsRelayStateShow": 609324111,
|
||||||
|
"bpTotalDsgEnergy": 1147539,
|
||||||
|
"pcsLowVolOnGrid": 195.5,
|
||||||
|
"afciEnableCmdState": 0,
|
||||||
|
"pcsIslandDetectSwitch": 1,
|
||||||
|
"emsBackupEvent": 0
|
||||||
|
},
|
||||||
|
"JTS1_HP_TIMER_TASK_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_BP_STA_REPORT": {
|
||||||
|
"SN_BATTERIEPACK1": "{\n \"bpPwr\": 1561.5443,\n \"bpSoc\": 61,\n \"bpSoh\": 100,\n \"bpTemp\": [29.0, 31.0, 29.0, 29.0, 31.0, 28.0, 28.0, 29.0, 30.0],\n \"bpCellMaxVol\": 3381.0,\n \"bpCellMinVol\": 3374.0,\n \"bpRunSta\": \"RUNSTA_RUN\",\n \"bpVol\": 54.021,\n \"bpAmp\": 28.906246,\n \"bpBusVol\": 807.8273,\n \"bpErrCode\": 0,\n \"bpCellVol\": [3376.0, 3378.0, 3377.0, 3379.0, 3378.0, 3379.0, 3377.0, 3378.0, 3381.0, 3379.0, 3377.0, 3379.0, 3379.0, 3380.0, 3375.0, 3374.0],\n \"bpDsrc\": 2,\n \"bpSn\": \"SEozMlpESDRaRjhVMDEyNg==\",\n \"bpCycles\": 132,\n \"bpBalanceState\": 0,\n \"bpHvMosTemp\": 38.0,\n \"bpLvMosTemp\": 37.0,\n \"bpPtcTemp\": 30.0,\n \"bpHtsTemp\": 34.0,\n \"bpBusNegTemp\": 36.0,\n \"bpBusPosTemp\": 36.0,\n \"bpEnvTemp\": 35.0,\n \"bpAccuChgCap\": 11190702,\n \"bpAccuDsgCap\": 11171727,\n \"bpDesignCap\": 100000,\n \"bpFullCap\": 101937,\n \"bpMaxCellTemp\": 31.0,\n \"bpMinCellTemp\": 28.0,\n \"bpMaxMosTemp\": 38.0,\n \"bpMinMosTemp\": 37.0,\n \"bpBmsFault\": 0,\n \"bpEcloundSoc\": 65535,\n \"bpHeartbeatVer\": 33,\n \"bpTimestamp\": 1724920557,\n \"bpRealSoc\": 61.0,\n \"bpRealSoh\": 101.93712,\n \"bpGlobalProtect\": 0,\n \"bpDownLimitSoc\": 14,\n \"bpUpLimitSoc\": 100,\n \"bpActiveCalReqStat\": 0,\n \"bpActiveCalRunStat\": 0,\n \"moduleProductInfo\": 21251,\n \"moduleProgramSta\": 1,\n \"moduleAplSwVer\": 67176454,\n \"moduleLoaderSwVer\": 67174401,\n \"bmsRunSta\": \"PB_BMS_STATE_NORMAL\",\n \"bmsChgDsgSta\": \"PB_DSG_STATE\",\n \"dabModSta\": \"PB_MOD_STA_NORMAL\",\n \"bpChgSop\": 50,\n \"bpDsgSop\": 80,\n \"bpRemainWatth\": 3123.2,\n \"bpTargetSoc\": 61.346497,\n \"bpDiffSoc\": 2.333374,\n \"bpMaxSoc\": 62.444008,\n \"bpMinSoc\": 60.108322,\n \"bpLimitSoc\": 0.5,\n \"bpCalendarSoh\": 100.0,\n \"bpCycleSoh\": 100.0,\n \"bpAcRechargeFlag\": false,\n \"bpPtcHeatFlag\": false,\n \"bpPtcExitEvent\": \"PB_PTC_OT_STATE\",\n \"bpAccuChgEnergy\": 574233,\n \"bpAccuDsgEnergy\": 555830,\n \"bpPtcTemp2\": 31.0,\n \"bpSysState\": \"NORMAL_STATE\"\n}",
|
||||||
|
"": "{\n \"bpTemp\": [],\n \"bpCellVol\": []\n}",
|
||||||
|
"updateTime": "2024-08-29 16:36:02",
|
||||||
|
"SN_BATTERIEPACK2": "{\n \"bpPwr\": -0.26787513,\n \"bpSoc\": 61,\n \"bpSoh\": 100,\n \"bpTemp\": [29.0, 31.0, 29.0, 30.0, 31.0, 29.0, 30.0, 30.0, 31.0],\n \"bpCellMaxVol\": 3338.0,\n \"bpCellMinVol\": 3326.0,\n \"bpRunSta\": \"RUNSTA_RUN\",\n \"bpVol\": 53.277,\n \"bpAmp\": -0.0050279694,\n \"bpBusVol\": 808.02185,\n \"bpErrCode\": 0,\n \"bpCellVol\": [3328.0, 3330.0, 3329.0, 3335.0, 3329.0, 3331.0, 3331.0, 3328.0, 3338.0, 3326.0, 3333.0, 3328.0, 3334.0, 3333.0, 3330.0, 3335.0],\n \"bpDsrc\": 1,\n \"bpSn\": \"SEozMlpESDRaRjhVMDE2Nw==\",\n \"bpCycles\": 138,\n \"bpBalanceState\": 0,\n \"bpHvMosTemp\": 39.0,\n \"bpLvMosTemp\": 37.0,\n \"bpPtcTemp\": 31.0,\n \"bpHtsTemp\": 36.0,\n \"bpBusNegTemp\": 35.0,\n \"bpBusPosTemp\": 36.0,\n \"bpEnvTemp\": 35.0,\n \"bpAccuChgCap\": 11294418,\n \"bpAccuDsgCap\": 11253368,\n \"bpDesignCap\": 100000,\n \"bpFullCap\": 101681,\n \"bpMaxCellTemp\": 31.0,\n \"bpMinCellTemp\": 29.0,\n \"bpMaxMosTemp\": 39.0,\n \"bpMinMosTemp\": 37.0,\n \"bpBmsFault\": 0,\n \"bpEcloundSoc\": 65535,\n \"bpHeartbeatVer\": 33,\n \"bpTimestamp\": 1724920556,\n \"bpRealSoc\": 61.0,\n \"bpRealSoh\": 101.68145,\n \"bpGlobalProtect\": 0,\n \"bpDownLimitSoc\": 14,\n \"bpUpLimitSoc\": 100,\n \"bpActiveCalReqStat\": 0,\n \"bpActiveCalRunStat\": 0,\n \"moduleProductInfo\": 21251,\n \"moduleProgramSta\": 1,\n \"moduleAplSwVer\": 67176454,\n \"moduleLoaderSwVer\": 67174401,\n \"bmsRunSta\": \"PB_BMS_STATE_NORMAL\",\n \"bmsChgDsgSta\": \"PB_STANDBY_STATE\",\n \"dabModSta\": \"PB_MOD_STA_NORMAL\",\n \"bpChgSop\": 50,\n \"bpDsgSop\": 80,\n \"bpRemainWatth\": 3123.2,\n \"bpTargetSoc\": 61.015976,\n \"bpDiffSoc\": 3.0,\n \"bpMaxSoc\": 62.38619,\n \"bpMinSoc\": 59.380417,\n \"bpLimitSoc\": 0.5,\n \"bpCalendarSoh\": 100.0,\n \"bpCycleSoh\": 100.0,\n \"bpAcRechargeFlag\": false,\n \"bpPtcHeatFlag\": false,\n \"bpPtcExitEvent\": \"PB_PTC_OT_STATE\",\n \"bpAccuChgEnergy\": 577577,\n \"bpAccuDsgEnergy\": 559331,\n \"bpPtcTemp2\": 31.0,\n \"bpSysState\": \"NORMAL_STATE\"\n}"
|
||||||
|
},
|
||||||
|
"JTS1_LOGY_DEV_REPORT": {
|
||||||
|
"HPReport": {
|
||||||
|
"devSn": "",
|
||||||
|
"online": 0,
|
||||||
|
"errorCode": ""
|
||||||
|
},
|
||||||
|
"updateTime": "2024-08-29 16:27:34"
|
||||||
|
},
|
||||||
|
"JTS1_EMS_PARAM_CHANGE_REPORT": {
|
||||||
|
"smartCtrl": false,
|
||||||
|
"breakerCapacityMax": 400,
|
||||||
|
"energyEfficientEnable": true,
|
||||||
|
"breakerEnableState": true,
|
||||||
|
"bpBurst": false,
|
||||||
|
"updateTime": "2024-08-29 16:27:34",
|
||||||
|
"lowerPowerStat": false,
|
||||||
|
"sysZone": 8,
|
||||||
|
"sysTimeTab": 19662120
|
||||||
|
},
|
||||||
|
"JTS1_HP_UI_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_PARALLEL_ENERGY_STREAM_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_EMS_ALL_TIMER_TASK_REPORT": {
|
||||||
|
"timeTaskCfg": [
|
||||||
|
],
|
||||||
|
"updateTime": "2024-08-29 13:21:07"
|
||||||
|
},
|
||||||
|
"JTS1_HEATING_ROD_TIMER_TASK_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_LOGY_DEV_ENERGY_STREAM_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_APP_REQUEST_BP_EU_LAW_DATA_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_EMS_PV_INV_ENERGY_STREAM_REPORT": {
|
||||||
|
"pvInvPwr": 0.0,
|
||||||
|
"updateTime": "2024-08-29 16:14:09"
|
||||||
|
},
|
||||||
|
"JTS1_EMS_PARALLEL_DEVICE_LIST": {
|
||||||
|
},
|
||||||
|
"JT303_EDEV_PRIORITY_LIST_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_ERROR_CHANGE_REPORT": {
|
||||||
|
"updateTime": "2024-08-29 16:27:36",
|
||||||
|
"emsErrCode": {
|
||||||
|
"errCode": [
|
||||||
|
],
|
||||||
|
"moduleSn": "codierte sn"
|
||||||
|
},
|
||||||
|
"pcsErrCode": {
|
||||||
|
"errCode": [
|
||||||
|
],
|
||||||
|
"moduleSn": "codierte sn"
|
||||||
|
},
|
||||||
|
"bpErrCode": [
|
||||||
|
{
|
||||||
|
"errCode": [
|
||||||
|
],
|
||||||
|
"moduleSn": "codierte sn"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"errCode": [
|
||||||
|
],
|
||||||
|
"moduleSn": "codierte sn"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"JTS1_EV_CHARGING_ENERGY_STREAM_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_ERROR_CODE_MASK_REPORT": {
|
||||||
|
"errorCode": [
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0,
|
||||||
|
0
|
||||||
|
],
|
||||||
|
"updateTime": "2024-08-29 13:21:07"
|
||||||
|
},
|
||||||
|
"JTS1_EMS_HEARTBEAT": {
|
||||||
|
"emsPcsStartupState": 1,
|
||||||
|
"pcsBpPower": 1232.3423,
|
||||||
|
"pcsPfcCurRef": 0.0,
|
||||||
|
"pcsCPhase": {
|
||||||
|
"vol": 239.47925,
|
||||||
|
"amp": 1.0047227,
|
||||||
|
"actPwr": -149.27367,
|
||||||
|
"reactPwr": 188.70789,
|
||||||
|
"apparentPwr": 240.61024
|
||||||
|
},
|
||||||
|
"pcsActivePowerRef": 713.7766,
|
||||||
|
"pcsReactivePowerRef": 0.0,
|
||||||
|
"bpRemainWatth": 6666.0,
|
||||||
|
"emsMpptModStat": 0,
|
||||||
|
"pcsAverageVoltage": 0.0,
|
||||||
|
"emsBpAliveNum": 2,
|
||||||
|
"pcsDci": 0.0035001037,
|
||||||
|
"emsBpDsg": -6601.1196,
|
||||||
|
"emsSelfUsedCnt": 14701148,
|
||||||
|
"pcsActivePowerLimitUp": 713.7766,
|
||||||
|
"pcsBPhase": {
|
||||||
|
"vol": 241.53192,
|
||||||
|
"amp": 0.6367133,
|
||||||
|
"actPwr": -123.93383,
|
||||||
|
"reactPwr": 91.0534,
|
||||||
|
"apparentPwr": 153.78659
|
||||||
|
},
|
||||||
|
"pcsDcv": 0.0,
|
||||||
|
"pcsVbusRef": 770.0,
|
||||||
|
"emsStartFsmState": 1078644260,
|
||||||
|
"emsBusVolt": 806.4418,
|
||||||
|
"emsBpChg": 5000.848,
|
||||||
|
"emsAcMakeupTriggleSoc": 12,
|
||||||
|
"bpDsgTime": 600000,
|
||||||
|
"pcsLeakAmp": -6.364746,
|
||||||
|
"emsLpStateFlag": 0,
|
||||||
|
"emsMpptStartupState": 1,
|
||||||
|
"pcsActivePowerLimitDn": -10000.0,
|
||||||
|
"pcsBusVolt": 806.153,
|
||||||
|
"pcsGridSafetyStateRecord": 9490524,
|
||||||
|
"pcsCommInterfaceState": 17120,
|
||||||
|
"emsLpState": 0,
|
||||||
|
"pcsMeterPower": -5.2220154,
|
||||||
|
"emsStopCmd": 34,
|
||||||
|
"emsPcsSelfcheckState": 1,
|
||||||
|
"emsAcMakeupExitSoc": 14,
|
||||||
|
"emsBusVoltErrSlidFilter": 0.85184544,
|
||||||
|
"emsPvInvPwr": 0.0,
|
||||||
|
"emsMpptHbState": 17,
|
||||||
|
"emsBpChgRequest": 0,
|
||||||
|
"pcsLoadInfo": [
|
||||||
|
{
|
||||||
|
"vol": 235.78484,
|
||||||
|
"amp": 0.0,
|
||||||
|
"freq": 50.019608,
|
||||||
|
"pwr": 0.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": 241.53192,
|
||||||
|
"amp": 0.0,
|
||||||
|
"freq": 50.019608,
|
||||||
|
"pwr": 0.0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": 239.47925,
|
||||||
|
"amp": 0.0,
|
||||||
|
"freq": 50.019608,
|
||||||
|
"pwr": 0.0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mpptHeartBeat": [
|
||||||
|
{
|
||||||
|
"mpptPv": [
|
||||||
|
{
|
||||||
|
"vol": 345.86108,
|
||||||
|
"amp": 5.05552,
|
||||||
|
"lightSta": true,
|
||||||
|
"pwr": 1748.5077
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"vol": 254.73224,
|
||||||
|
"amp": 1.5166792,
|
||||||
|
"lightSta": true,
|
||||||
|
"pwr": 386.34708
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"mpptTempVal": [
|
||||||
|
41.100002,
|
||||||
|
42.3,
|
||||||
|
42.0
|
||||||
|
],
|
||||||
|
"mpptInsResist": 611.47766
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"emsBusVoltRipple": 1.2493286,
|
||||||
|
"emsLpType": 0,
|
||||||
|
"pcsBpPowerChgLimit": 5000.848,
|
||||||
|
"pcsAcFreq": 50.01,
|
||||||
|
"emsSocCalibRequest": 0,
|
||||||
|
"emsBpStartupState": 1,
|
||||||
|
"emsSysCfg": 7,
|
||||||
|
"emsAcMakeupMinSoc": 0,
|
||||||
|
"emsLpMpptCnt": 0,
|
||||||
|
"emsBpSelfcheckState": 1,
|
||||||
|
"emsBpPower": 1234.7299,
|
||||||
|
"emsActiveOffGridCmd": 0,
|
||||||
|
"pcsActPwr": 109.46263,
|
||||||
|
"emsLpBpCnt": 0,
|
||||||
|
"emsNtcTempMax": 42.3,
|
||||||
|
"emsAcMakeupCnt": 0,
|
||||||
|
"emsSocCalibState": 0,
|
||||||
|
"pcsRelayStateShow": 609324111,
|
||||||
|
"updateTime": "2024-08-29 16:40:24",
|
||||||
|
"emsMpptRunState": 1,
|
||||||
|
"pcsVgridThd": 8.080436E-05,
|
||||||
|
"pcsInterruptOccupancyRate": 90.0,
|
||||||
|
"pcsAPhase": {
|
||||||
|
"vol": 235.78484,
|
||||||
|
"amp": 1.8547661,
|
||||||
|
"actPwr": 382.67014,
|
||||||
|
"reactPwr": 211.70108,
|
||||||
|
"apparentPwr": 437.3257
|
||||||
|
},
|
||||||
|
"emsMpptSelfcheckState": 1,
|
||||||
|
"pcsPfcCurReal": 0.0,
|
||||||
|
"pcsGridSafetyFuncRecord": 100687970,
|
||||||
|
"pcsGridInvErrorRms": 10.824885,
|
||||||
|
"meterHeartBeat": [
|
||||||
|
{
|
||||||
|
"meterAddr": 106,
|
||||||
|
"meterType": 11,
|
||||||
|
"meterData": [
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
0.0,
|
||||||
|
5.4385986
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"JT303_EDEV_PRIORITY_SET_ACK": {
|
||||||
|
},
|
||||||
|
"JTS1_HEATING_ROD_ENERGY_STREAM_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_EVCHARGING_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_HEATING_ROD_PARAM_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_ECOLOGY_DEV_BIND_LIST_REPORT": {
|
||||||
|
"devItem": [
|
||||||
|
],
|
||||||
|
"updateTime": "2024-08-29 16:27:34"
|
||||||
|
},
|
||||||
|
"JTS1_MPPT_STA_REPORT": {
|
||||||
|
},
|
||||||
|
"JTS1_EV_CHARGING_TIMER_TASK_REPORT": {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"eagleEyeTraceId": "lange id",
|
||||||
|
"tid": ""
|
||||||
|
}
|
Loading…
Reference in a new issue