diff --git a/homeassistant/components/datadog/__init__.py b/homeassistant/components/datadog/__init__.py index b5b7664f8b02944f7ed4d3f779d0b7af35847164..5d3aae3de2034f23ce56b324e1ff104dfa9a2bdf 100644 --- a/homeassistant/components/datadog/__init__.py +++ b/homeassistant/components/datadog/__init__.py @@ -82,6 +82,7 @@ def setup(hass, config): for key, value in states.items(): if isinstance(value, (float, int)): attribute = f"{metric}.{key.replace(' ', '_')}" + value = int(value) if isinstance(value, bool) else value statsd.gauge(attribute, value, sample_rate=sample_rate, tags=tags) _LOGGER.debug("Sent metric %s: %s (tags: %s)", attribute, value, tags) diff --git a/tests/components/datadog/test_init.py b/tests/components/datadog/test_init.py index 9ba64bb43ff3a235995d25a57daba05736de2e13..da4076944d0389c03348e39d5222b1896e43cf6c 100644 --- a/tests/components/datadog/test_init.py +++ b/tests/components/datadog/test_init.py @@ -134,7 +134,7 @@ class TestDatadog(unittest.TestCase): valid = {"1": 1, "1.0": 1.0, STATE_ON: 1, STATE_OFF: 0} - attributes = {"elevation": 3.2, "temperature": 5.0} + attributes = {"elevation": 3.2, "temperature": 5.0, "up": True, "down": False} for in_, out in valid.items(): state = mock.MagicMock( @@ -145,9 +145,10 @@ class TestDatadog(unittest.TestCase): ) handler_method(mock.MagicMock(data={"new_state": state})) - assert mock_client.gauge.call_count == 3 + assert mock_client.gauge.call_count == 5 for attribute, value in attributes.items(): + value = int(value) if isinstance(value, bool) else value mock_client.gauge.assert_has_calls( [ mock.call(