From dcf0f9d3f320ea279066ccbfacc8f06d560a492c Mon Sep 17 00:00:00 2001 From: cgtobi Date: Tue, 6 Oct 2020 14:43:30 +0200 Subject: [PATCH] Fix Netatmo wind angle (#41324) --- 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 d4fe642810d..af2c1756ab2 100644 --- a/homeassistant/components/netatmo/sensor.py +++ b/homeassistant/components/netatmo/sensor.py @@ -337,15 +337,15 @@ class NetatmoSensor(NetatmoBase): 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 @@ class NetatmoSensor(NetatmoBase): 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: