diff --git a/custom_components/bluetti_bt/const.py b/custom_components/bluetti_bt/const.py index 008cc6d..0b66c30 100644 --- a/custom_components/bluetti_bt/const.py +++ b/custom_components/bluetti_bt/const.py @@ -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"}, + ), } diff --git a/custom_components/bluetti_bt/coordinator.py b/custom_components/bluetti_bt/coordinator.py index d90d02e..fd42f86 100644 --- a/custom_components/bluetti_bt/coordinator.py +++ b/custom_components/bluetti_bt/coordinator.py @@ -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