0.34.0: node_id changed from int to float64 breaking influxdb


after upgrading to 0.34.0 I’m getting InfluxDB related error messages like:

16-12-04 11:53:53 homeassistant.components.influxdb: Error saving event "[{'tags': {'domain': 'sensor', 'entity_id': 'fibaro_system_fgms001_motion_sensor_temperature_8_1'}, 'measurement': '<C2><B0>C', 'time': datetime.datetime(2016, 12, 4, 10, 53, 53, 126923, tzinfo=<UTC>), 'fields': {'node_id': 8.0, 'value': 18.8, 'friendly_name': 'Fib Temperature'}}]" to InfluxDB
Traceback (most recent call last):
  File "/usr/src/app/homeassistant/components/influxdb.py", line 132, in influx_event_listener
  File "/usr/local/lib/python3.5/site-packages/influxdb/client.py", line 402, in write_points
  File "/usr/local/lib/python3.5/site-packages/influxdb/client.py", line 447, in _write_points
  File "/usr/local/lib/python3.5/site-packages/influxdb/client.py", line 289, in write
  File "/usr/local/lib/python3.5/site-packages/influxdb/client.py", line 259, in request
    raise InfluxDBClientError(response.content, response.status_code)
influxdb.exceptions.InfluxDBClientError: 400: {"error":"field type conflict: input field \"node_id\" on measurement \"<C2><B0>C\" is type float64, already exists as type integer"}

I also get this for the luminance sensor.
To me it looks like the attribute data types changed from Integer to Float64.
Before I drop my existing measurement data - is it supposed to be like this and is it going to stay that way?
Or is this a bug that needs to be fixed?

EDIT: sorry, after having another look at the error message, I think it’s not the sensor value that changed but the node_id attribute seems to have changed from 8 to 8.0.
A floating point node_id doesn’t make much sense to me - looks like a bug, doesn’t it?


I don’t know what version you updated from, but there was a zwave node id change in 31 if I remember. it was listed in breaking changes in the release notes for that version.

I’m currently running 0.33.1 since all versions after that have a zwave bug that causes hass to crash (at least for me) pretty often.
The change in v31 was the added “index” number to a zwave entity name, e.g.
fibaro_system_fgms001_motion_sensor_temperature_8 became

That’s not what I’m talking about here.

If you have a look at the error message:

"error":"field type conflict: input field \"node_id\" on measurement \"<C2><B0>C\" is type float64, already exists as type integer"

you’ll notice that at the top it says 'node_id': 8.0 now.
Pre v34 (looking at the dev tools section), it says:

{ "battery_level": 100, "friendly_name": "Fib Temperature", "node_id": 8, "unit_of_measurement": "°C" }

Since there probably won’t ever be a node 8.5, a floating point value doesn’t make much sense to me.


EDIT: Bug report opened:

1 Like

homeassistant.components.media_player: Error while setting up platform kodi