Ignore NaN values for influxdb (#14347)

* Ignore NaN values for influxdb

* Catch TypeError
pull/14392/head
Anders Melchiorsen 2018-05-09 02:54:38 +02:00 committed by Paulus Schoutsen
parent 01ec4a7afd
commit 2d0e3c1402
2 changed files with 8 additions and 4 deletions

View File

@ -9,6 +9,7 @@ import re
import queue
import threading
import time
import math
import requests.exceptions
import voluptuous as vol
@ -220,9 +221,12 @@ def setup(hass, config):
json['fields'][key] = float(
RE_DECIMAL.sub('', new_value))
# Infinity is not a valid float in InfluxDB
if (key, float("inf")) in json['fields'].items():
del json['fields'][key]
# Infinity and NaN are not valid floats in InfluxDB
try:
if not math.isfinite(json['fields'][key]):
del json['fields'][key]
except (KeyError, TypeError):
pass
json['tags'].update(tags)

View File

@ -217,7 +217,7 @@ class TestInfluxDB(unittest.TestCase):
"""Test the event listener for missing units."""
self._setup()
attrs = {'bignumstring': "9" * 999}
attrs = {'bignumstring': '9' * 999, 'nonumstring': 'nan'}
state = mock.MagicMock(
state=8, domain='fake', entity_id='fake.entity-id',
object_id='entity', attributes=attrs)