From 821f5ff4b7632fd323bd5a7cc5b14ece0a96889a Mon Sep 17 00:00:00 2001 From: Tobias Sauerwein Date: Tue, 6 Oct 2020 13:27:01 +0200 Subject: [PATCH] Fix angle when negative --- homeassistant/components/netatmo/sensor.py | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/netatmo/sensor.py b/homeassistant/components/netatmo/sensor.py index af41e01c7dff3..c379a3d007753 100644 --- a/homeassistant/components/netatmo/sensor.py +++ b/homeassistant/components/netatmo/sensor.py @@ -337,15 +337,15 @@ def async_update_callback(self): elif self.type == "max_temp": self._state = data["max_temp"] elif self.type == "windangle_value": - self._state = data["WindAngle"] + self._state = fix_angle(data["WindAngle"]) elif self.type == "windangle": - self._state = process_angle(data["WindAngle"]) + self._state = process_angle(fix_angle(data["WindAngle"])) elif self.type == "windstrength": self._state = data["WindStrength"] elif self.type == "gustangle_value": - self._state = data["GustAngle"] + self._state = fix_angle(data["GustAngle"]) elif self.type == "gustangle": - self._state = process_angle(data["GustAngle"]) + self._state = process_angle(fix_angle(data["GustAngle"])) elif self.type == "guststrength": self._state = data["GustStrength"] elif self.type == "reachable": @@ -367,6 +367,13 @@ def async_update_callback(self): return +def fix_angle(angle: int) -> int: + """Fix angle when value is negative.""" + if angle < 0: + return 360 + angle + return angle + + def process_angle(angle: int) -> str: """Process angle and return string for display.""" if angle >= 330: