Wow! , my mysql db totally borked after a total of 2635 devices (seriously, I “counted” using grep and pipe to wc -l) was added to known_devices after adding my Google Home and one Home mini just a few days ago.
This is running in docker with separate mariadb on an core i5 so i think it would have failed quicker on my old rpi3 setup.
First sign was that graphs would not update anymore and found that there was problems with the database in the logs:
sqlalchemy.exc.InvalidRequestError: Can't reconnect until invalid transaction is rolled back,
Fine ok, I’ll try dropping the database then I started up again and noticed “device_tracker.” in the new error:
2018-12-11 21:58:13 ERROR (Recorder) [homeassistant.components.recorder.util] Error executing query: (_mysql_exceptions.DataError) (1406, "Data too long for column 'event_data' at row 1") [SQL: 'INSERT INTO events (event_type, event_data, origin, time_fired, created, context_id, context_user_id) VALUES (%s, %s, %s, %s, %s, %s, %s)'] [parameters: ('call_service', '{"domain": "group", "service": "set", "service_data": {"object_id": "all_devices", "visible": false, "name": "all devices", "entities": ["device_trac ... (113414 characters truncated) ... f85c96", "device_tracker.1921687171_544f03bf4da0", "device_tracker.1921687172_544f03bf4da0"]}, "service_call_id": "5fe12f596159453b8527d1b8ab7a46c1"}', 'LOCAL', datetime.datetime(2018, 12, 11, 20, 57, 16, 905916, tzinfo=<UTC>), datetime.datetime(2018, 12, 11, 20, 58, 13, 195335), '0264b3880188460386d6c7391d96663d', None)] (Background on this error at: http://sqlalche.me/e/9h9h),
self.errorhandler(self, exc, value),
File "/usr/local/lib/python3.6/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler,
raise errorvalue,
_mysql_exceptions.DataError: (1406, "Data too long for column 'event_data' at row 1"),
self.errorhandler(self, exc, value),
File "/usr/local/lib/python3.6/site-packages/MySQLdb/connections.py", line 50, in defaulterrorhandler,
raise errorvalue,
sqlalchemy.exc.DataError: (_mysql_exceptions.DataError) (1406, "Data too long for column 'event_data' at row 1") [SQL: 'INSERT INTO events (event_type, event_data, origin, time_fired, created, context_id, context_user_id) VALUES (%s, %s, %s, %s, %s, %s, %s)'] [parameters: ('call_service', '{"domain": "group", "service": "set", "service_data": {"object_id": "all_devices", "visible": false, "name": "all devices", "entities": ["device_trac ... (113414 characters truncated) ... f85c96", "device_tracker.1921687171_544f03bf4da0", "device_tracker.1921687172_544f03bf4da0"]}, "service_call_id": "5fe12f596159453b8527d1b8ab7a46c1"}', 'LOCAL', datetime.datetime(2018, 12, 11, 20, 57, 16, 905916, tzinfo=<UTC>), datetime.datetime(2018, 12, 11, 20, 58, 13, 195335), '0264b3880188460386d6c7391d96663d', None)] (Background on this error at: http://sqlalche.me/e/9h9h)
Woopsie waaaay to many bluetooth devices pass by and no way of disabling adding new to known devices so turned this off until some more options are available to stop it from filling up the known devices.