diff --git a/teslajsonpy/battery_sensor.py b/teslajsonpy/battery_sensor.py index feb3cfdc..347e81e1 100644 --- a/teslajsonpy/battery_sensor.py +++ b/teslajsonpy/battery_sensor.py @@ -23,7 +23,7 @@ def __init__(self, data: Dict, controller) -> None: """ super().__init__(data, controller) - self.__battery_level: int = 0 + self.__battery_level: int = None self.__charging_state: bool = None self.__charge_port_door_open: bool = None self.type: Text = "battery sensor" @@ -85,9 +85,9 @@ def __init__(self, data: Dict, controller) -> None: """ super().__init__(data, controller) - self.__battery_range = 0 - self.__est_battery_range = 0 - self.__ideal_battery_range = 0 + self.__battery_range = None + self.__est_battery_range = None + self.__ideal_battery_range = None self.type = "range sensor" self.__rated = True self.measurement = "LENGTH_MILES" diff --git a/teslajsonpy/binary_sensor.py b/teslajsonpy/binary_sensor.py index ef8c85e5..b72a3723 100644 --- a/teslajsonpy/binary_sensor.py +++ b/teslajsonpy/binary_sensor.py @@ -33,7 +33,7 @@ def __init__(self, data: Dict, controller): """ super().__init__(data, controller) - self.__state = False + self.__state = None self.type = "parking brake sensor" self.hass_type = "binary_sensor" @@ -90,7 +90,7 @@ def __init__(self, data, controller): """ super().__init__(data, controller) - self.__state = False + self.__state = None self.type = "charger sensor" self.hass_type = "binary_sensor" diff --git a/teslajsonpy/charger.py b/teslajsonpy/charger.py index e8dad333..a684f774 100644 --- a/teslajsonpy/charger.py +++ b/teslajsonpy/charger.py @@ -32,7 +32,7 @@ def __init__(self, data, controller): """ super().__init__(data, controller) self.__manual_update_time = 0 - self.__charger_state = False + self.__charger_state = None self.type = "charger switch" self.hass_type = "switch" self.name = self._name() @@ -87,7 +87,7 @@ def __init__(self, data, controller): """Initialize the charger range switch.""" super().__init__(data, controller) self.__manual_update_time = 0 - self.__maxrange_state = False + self.__maxrange_state = None self.type = "maxrange switch" self.hass_type = "switch" self.name = self._name() @@ -154,12 +154,12 @@ def __init__(self, data: Dict, controller) -> None: self.name: Text = self._name() self.uniq_name: Text = self._uniq_name() self.bin_type: hex = 0xC - self.__added_range = 0 - self.__charging_rate = 0 - self.__time_to_full = 0 - self.__charge_current_request = 0 - self.__charger_actual_current = 0 - self.__charger_voltage = 0 + self.__added_range = None + self.__charging_rate = None + self.__time_to_full = None + self.__charge_current_request = None + self.__charger_actual_current = None + self.__charger_voltage = None async def async_update(self) -> None: """Update the battery state.""" diff --git a/teslajsonpy/climate.py b/teslajsonpy/climate.py index 91abe038..3cc718f3 100644 --- a/teslajsonpy/climate.py +++ b/teslajsonpy/climate.py @@ -36,13 +36,13 @@ def __init__(self, data, controller): """ super().__init__(data, controller) - self.__is_auto_conditioning_on = False - self.__inside_temp = 0 - self.__outside_temp = 0 - self.__driver_temp_setting = 0 - self.__passenger_temp_setting = 0 - self.__is_climate_on = False - self.__fan_status = 0 + self.__is_auto_conditioning_on = None + self.__inside_temp = None + self.__outside_temp = None + self.__driver_temp_setting = None + self.__passenger_temp_setting = None + self.__is_climate_on = None + self.__fan_status = None self.__manual_update_time = 0 self.type = "HVAC (climate) system" @@ -161,8 +161,8 @@ def __init__(self, data, controller): """ super().__init__(data, controller) - self.__inside_temp = 0 - self.__outside_temp = 0 + self.__inside_temp = None + self.__outside_temp = None self.type = "temperature sensor" self.measurement = "C" diff --git a/teslajsonpy/gps.py b/teslajsonpy/gps.py index bfb7d2cc..a1718304 100644 --- a/teslajsonpy/gps.py +++ b/teslajsonpy/gps.py @@ -30,10 +30,10 @@ def __init__(self, data, controller): """ super().__init__(data, controller) - self.__longitude = 0 - self.__latitude = 0 - self.__heading = 0 - self.__speed = 0 + self.__longitude = None + self.__latitude = None + self.__heading = None + self.__speed = None self.__location = {} self.last_seen = 0 @@ -48,6 +48,13 @@ def __init__(self, data, controller): def get_location(self): """Return the current location.""" + if self.__longitude and self.__latitude and self.__heading: + self.__location = { + "longitude": self.__longitude, + "latitude": self.__latitude, + "heading": self.__heading, + "speed": self.__speed, + } return self.__location async def async_update(self): @@ -59,13 +66,6 @@ async def async_update(self): self.__latitude = data["latitude"] self.__heading = data["heading"] self.__speed = data["speed"] if data["speed"] else 0 - if self.__longitude and self.__latitude and self.__heading: - self.__location = { - "longitude": self.__longitude, - "latitude": self.__latitude, - "heading": self.__heading, - "speed": self.__speed, - } @staticmethod def has_battery(): @@ -93,7 +93,7 @@ def __init__(self, data, controller): """ super().__init__(data, controller) - self.__odometer = 0 + self.__odometer = None self.type = "mileage sensor" self.measurement = "LENGTH_MILES" self.hass_type = "sensor" @@ -124,7 +124,7 @@ def has_battery(): def get_value(self): """Return the odometer reading.""" - return round(self.__odometer, 1) + return round(self.__odometer, 1) if self.__odometer else None @property def device_class(self) -> Text: diff --git a/teslajsonpy/lock.py b/teslajsonpy/lock.py index 4421cb99..268594a2 100644 --- a/teslajsonpy/lock.py +++ b/teslajsonpy/lock.py @@ -106,7 +106,7 @@ def __init__(self, data, controller): """ super().__init__(data, controller) self.__manual_update_time = 0 - self.__lock_state = False + self.__lock_state = None self.type = "charger door lock" self.hass_type = "lock"