From a4aa30fc73a625a5567b68bc6d06733694b8efcd Mon Sep 17 00:00:00 2001 From: Rene Nulsch <33263735+ReneNulschDE@users.noreply.github.com> Date: Tue, 4 Sep 2018 08:46:04 +0200 Subject: [PATCH] Fix SystemMonitor IP address sensor (#16394) --- homeassistant/components/sensor/systemmonitor.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/homeassistant/components/sensor/systemmonitor.py b/homeassistant/components/sensor/systemmonitor.py index aa448ddf56e..de8e9783f92 100644 --- a/homeassistant/components/sensor/systemmonitor.py +++ b/homeassistant/components/sensor/systemmonitor.py @@ -6,6 +6,7 @@ https://home-assistant.io/components/sensor.systemmonitor/ """ import logging import os +import socket import voluptuous as vol @@ -61,9 +62,9 @@ IO_COUNTER = { 'packets_in': 3, } -IF_ADDRS = { - 'ipv4_address': 0, - 'ipv6_address': 1, +IF_ADDRS_FAMILY = { + 'ipv4_address': socket.AF_INET, + 'ipv6_address': socket.AF_INET6, } @@ -165,7 +166,9 @@ class SystemMonitorSensor(Entity): elif self.type == 'ipv4_address' or self.type == 'ipv6_address': addresses = psutil.net_if_addrs() if self.argument in addresses: - self._state = addresses[self.argument][IF_ADDRS[self.type]][1] + for addr in addresses[self.argument]: + if addr.family == IF_ADDRS_FAMILY[self.type]: + self._state = addr.address else: self._state = None elif self.type == 'last_boot':