Ignore NaN values for influxdb (#14347)
* Ignore NaN values for influxdb * Catch TypeErrorpull/14392/head
parent
01ec4a7afd
commit
2d0e3c1402
|
@ -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)
|
||||
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in New Issue