Merge pull request #3 from Patrick762/device-support

Added more fields for ep600
This commit is contained in:
Patrick762 authored and GitHub committed 2023-08-02 21:23:00 +02:00
commit 924eaa90b6
2 files changed
+52 -6

No files matched your search

+43
View File
@@ -8,11 +8,48 @@ MANUFACTURER = "Bluetti"
CONF_OPTIONS = "options"
DIAGNOSTIC_FIELDS = [
"max_ac_input_power",
"max_ac_input_current",
"max_ac_output_power",
"max_ac_output_current",
"bcu_version",
"safety_module_version",
"high_voltage_module_version",
]
ADDITIONAL_DEVICE_FIELDS = {
"max_ac_input_power": MqttFieldConfig(
type=MqttFieldType.NUMERIC,
setter=False,
advanced=False,
home_assistant_extra={
"name": "Max AC Input Power per Phase",
},
),
"max_ac_input_current": MqttFieldConfig(
type=MqttFieldType.NUMERIC,
setter=False,
advanced=False,
home_assistant_extra={
"name": "Max AC Input Current per Phase",
},
),
"max_ac_output_power": MqttFieldConfig(
type=MqttFieldType.NUMERIC,
setter=False,
advanced=False,
home_assistant_extra={
"name": "Max AC Output Power per Phase",
},
),
"max_ac_output_current": MqttFieldConfig(
type=MqttFieldType.NUMERIC,
setter=False,
advanced=False,
home_assistant_extra={
"name": "Max AC Output Current per Phase",
},
),
"bcu_version": MqttFieldConfig(
type=MqttFieldType.NUMERIC,
setter=False,
@@ -25,4 +62,10 @@ ADDITIONAL_DEVICE_FIELDS = {
advanced=False,
home_assistant_extra={"name": "Safety Module Version"},
),
"high_voltage_module_version": MqttFieldConfig(
type=MqttFieldType.NUMERIC,
setter=False,
advanced=False,
home_assistant_extra={"name": "High Voltage Safety Module Version"},
),
}
+9 -6
View File
@@ -49,9 +49,10 @@ class DummyDevice(BluettiDevice):
return [
ReadHoldingRegisters(100, 62),
ReadHoldingRegisters(2022, 6),
ReadHoldingRegisters(2213, 4),
# Battery
ReadHoldingRegisters(6101, 7),
ReadHoldingRegisters(6175, 2),
ReadHoldingRegisters(6181, 2),
ReadHoldingRegisters(6175, 11),
]
return self._parent.polling_commands
@@ -148,7 +149,7 @@ class PollingCoordinator(DataUpdateCoordinator):
command.starting_address, body
)
self.logger.error("Parsed data: %s", parsed)
self.logger.error("[NO ERROR] Parsed data: %s", parsed)
parsed_data.update(parsed)
except TimeoutError:
@@ -156,15 +157,17 @@ class PollingCoordinator(DataUpdateCoordinator):
"Polling timed out (address: %s)", self._address
)
except ParseError:
self.logger.debug("Got a parse exception...")
self.logger.warning("Got a parse exception...")
except ModbusError as err:
self.logger.debug(
self.logger.warning(
"Got an invalid request error for %s: %s",
command,
err,
)
except (BadConnectionError, BleakError) as err:
self.logger.debug("Needed to disconnect due to error: %s", err)
self.logger.warning(
"Needed to disconnect due to error: %s", err
)
except TimeoutError:
self.logger.error("Polling timed out for device %s", self._address)
return None