Oral-B Genius 10000N identified as Smart Series 9000
The problem
The Oral-B integration identified my Oral-B Genius 10000N (Black Edition) as Smart Series 9000 4E5F.

When connecting the toothbrush for the first time, the values are available and changing. Afterwards the values disappear and I need to reinstall the integration and connect once again, to get valid values. There is also no battery state available, which is described in the documentation.

What version of Home Assistant Core has the issue?
2023.1.5
What was the last working version of Home Assistant Core?
No response
What type of installation are you running?
Home Assistant OS
Integration causing the issue
Oral-B
Link to integration documentation on our website
https://next.home-assistant.io/integrations/oralb
Diagnostics information
No response
Example YAML snippet
No response
Anything in the logs that might be useful for us?
2023-01-19 17:44:36.532 DEBUG (MainThread) [homeassistant.components.bluetooth.manager] hci0 (E4:5F:01:2B:2E:C5) [connectable]: 6C:C3:74:CA:4E:5F AdvertisementData(local_name='Oral-B Toothbrush', manufacturer_data={220: b'\x03!\x0c\x030\x002\x02\x02\xc2\x04'}, tx_power=0, rssi=-79) match: {'oralb'}
2023-01-19 17:44:36.532 DEBUG (MainThread) [oralb_ble.parser] Parsing OralB BLE advertisement data: <home_assistant_bluetooth.models.BluetoothServiceInfoBleak object at 0x7f5cbdc2c0>
2023-01-19 17:44:36.534 DEBUG (MainThread) [oralb_ble.parser] Parsing Oral-B sensor: b'\x03!\x0c\x030\x002\x02\x02\xc2\x04'
2023-01-19 17:44:36.542 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_time, old_state=<state sensor.smart_series_9000_4e5f_time=unavailable; restored=True, state_class=total_increasing, device_class=duration, friendly_name=Time, supported_features=0, unit_of_measurement=s @ 2023-01-19T17:41:53.379501+01:00>, new_state=<state sensor.smart_series_9000_4e5f_time=50; state_class=total_increasing, unit_of_measurement=s, device_class=duration, friendly_name=Smart Series 9000 4E5F Time @ 2023-01-19T17:44:36.542117+01:00>>
2023-01-19 17:44:36.543 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_sector, old_state=<state sensor.smart_series_9000_4e5f_sector=unavailable; restored=True, friendly_name=Sector, supported_features=0 @ 2023-01-19T17:41:53.379849+01:00>, new_state=<state sensor.smart_series_9000_4e5f_sector=sector 2; friendly_name=Smart Series 9000 4E5F Sector @ 2023-01-19T17:44:36.543601+01:00>>
2023-01-19 17:44:36.544 DEBUG (Recorder) [homeassistant.components.recorder.core] Processing task: EventTask(event=<Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_time, old_state=<state sensor.smart_series_9000_4e5f_time=unavailable; restored=True, state_class=total_increasing, device_class=duration, friendly_name=Time, supported_features=0, unit_of_measurement=s @ 2023-01-19T17:41:53.379501+01:00>, new_state=<state sensor.smart_series_9000_4e5f_time=50; state_class=total_increasing, unit_of_measurement=s, device_class=duration, friendly_name=Smart Series 9000 4E5F Time @ 2023-01-19T17:44:36.542117+01:00>>)
2023-01-19 17:44:36.547 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_number_of_sectors, old_state=<state sensor.smart_series_9000_4e5f_number_of_sectors=unavailable; restored=True, friendly_name=Number of sectors, supported_features=0 @ 2023-01-19T17:41:53.380130+01:00>, new_state=<state sensor.smart_series_9000_4e5f_number_of_sectors=4; friendly_name=Smart Series 9000 4E5F Number of sectors @ 2023-01-19T17:44:36.547361+01:00>>
2023-01-19 17:44:36.548 DEBUG (MainThread) [homeassistant.components.sensor] Not adding entity Sector Timer because it's disabled
2023-01-19 17:44:36.549 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_toothbrush_state, old_state=<state sensor.smart_series_9000_4e5f_toothbrush_state=unavailable; restored=True, friendly_name=Toothbrush State, supported_features=0 @ 2023-01-19T17:41:53.380408+01:00>, new_state=<state sensor.smart_series_9000_4e5f_toothbrush_state=running; friendly_name=Smart Series 9000 4E5F Toothbrush State @ 2023-01-19T17:44:36.548940+01:00>>
2023-01-19 17:44:36.550 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_pressure, old_state=<state sensor.smart_series_9000_4e5f_pressure=unavailable; restored=True, friendly_name=Pressure, supported_features=0 @ 2023-01-19T17:41:53.380682+01:00>, new_state=<state sensor.smart_series_9000_4e5f_pressure=normal; friendly_name=Smart Series 9000 4E5F Pressure @ 2023-01-19T17:44:36.549904+01:00>>
2023-01-19 17:44:36.551 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_mode, old_state=<state sensor.smart_series_9000_4e5f_mode=unavailable; restored=True, friendly_name=Mode, supported_features=0 @ 2023-01-19T17:41:53.380953+01:00>, new_state=<state sensor.smart_series_9000_4e5f_mode=sensitive; friendly_name=Smart Series 9000 4E5F Mode @ 2023-01-19T17:44:36.550844+01:00>>
2023-01-19 17:44:46.995 DEBUG (MainThread) [homeassistant.components.bluetooth.manager] hci0 (E4:5F:01:2B:2E:C5) [connectable]: 6C:C3:74:CA:4E:5F AdvertisementData(local_name='Oral-B Toothbrush', manufacturer_data={220: b'\x03!\x0c\x030\x01\x01\x04\x03\x83\x04'}, tx_power=0, rssi=-68) match: set()
2023-01-19 17:44:46.995 DEBUG (MainThread) [oralb_ble.parser] Parsing OralB BLE advertisement data: <home_assistant_bluetooth.models.BluetoothServiceInfoBleak object at 0x7f5f2b9940>
2023-01-19 17:44:46.996 DEBUG (MainThread) [oralb_ble.parser] Parsing Oral-B sensor: b'\x03!\x0c\x030\x01\x01\x04\x03\x83\x04'
2023-01-19 17:44:46.998 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_time, old_state=<state sensor.smart_series_9000_4e5f_time=50; state_class=total_increasing, unit_of_measurement=s, device_class=duration, friendly_name=Smart Series 9000 4E5F Time @ 2023-01-19T17:44:36.542117+01:00>, new_state=<state sensor.smart_series_9000_4e5f_time=61; state_class=total_increasing, unit_of_measurement=s, device_class=duration, friendly_name=Smart Series 9000 4E5F Time @ 2023-01-19T17:44:46.998033+01:00>>
2023-01-19 17:44:47.002 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_sector, old_state=<state sensor.smart_series_9000_4e5f_sector=sector 2; friendly_name=Smart Series 9000 4E5F Sector @ 2023-01-19T17:44:36.543601+01:00>, new_state=<state sensor.smart_series_9000_4e5f_sector=sector 3; friendly_name=Smart Series 9000 4E5F Sector @ 2023-01-19T17:44:47.002665+01:00>>
2023-01-19 17:44:47.004 DEBUG (MainThread) [homeassistant.core] Bus:Handling <Event state_changed[L]: entity_id=sensor.smart_series_9000_4e5f_mode, old_state=<state sensor.smart_series_9000_4e5f_mode=sensitive; friendly_name=Smart Series 9000 4E5F Mode @ 2023-01-19T17:44:36.550844+01:00>, new_state=<state sensor.smart_series_9000_4e5f_mode=whitening; friendly_name=Smart Series 9000 4E5F Mode @ 2023-01-19T17:44:47.004098+01:00>>
2023-01-19 17:44:47.005 DEBUG (MainThread) [bleak.backends.bluezdbus.manager] received D-Bus signal: org.freedesktop.DBus.Properties.PropertiesChanged (/org/bluez/hci0/dev_7C_1D_D3_34_9F_5A): ['org.bluez.Device1', {'RSSI': <dbus_fast.signature.Variant ('n', -71)>}, []]
2023-01-19 17:44:47.005 DEBUG (MainThread) [custom_components.ble_monitor.binary_sensor] Data binary sensor received: {'firmware': 'Oral-B', 'toothbrush': 1, 'toothbrush state': 'running', 'pressure': 'unknown pressure 48', 'counter': 257, 'mode': 'whitening', 'sector': 'sector 3', 'sector timer': 131, 'number of sectors': 4, 'rssi': -69, 'mac': '6CC374CA4E5F', 'type': 'SmartSeries 7000', 'packet': 'no packet id', 'data': True}
2023-01-19 17:44:47.006 DEBUG (MainThread) [custom_components.ble_monitor.sensor] Data measuring sensor received: {'firmware': 'Oral-B', 'toothbrush': 1, 'toothbrush state': 'running', 'pressure': 'unknown pressure 48', 'counter': 257, 'mode': 'whitening', 'sector': 'sector 3', 'sector timer': 131, 'number of sectors': 4, 'rssi': -69, 'mac': '6CC374CA4E5F', 'type': 'SmartSeries 7000', 'packet': 'no packet id', 'data': True}
Additional information
No response
Hey there @bdraco, @conway20, mind taking a look at this issue as it has been labeled with an integration (oralb) you are listed as a code owner for? Thanks!
Code owner commands
Code owners of oralb can trigger bot actions by commenting:
-
@home-assistant closeCloses the issue. -
@home-assistant rename Awesome new titleChange the title of the issue. -
@home-assistant reopenReopen the issue. -
@home-assistant unassign oralbRemoves the current integration label and assignees on the issue, add the integration domain after the command.
(message by CodeOwnersMention)
oralb documentation oralb source (message by IssueLinks)
Hey @daowa89 - I changed my username so I didn't get notified of this coming in, sorry about that.
For the misidentification of your toothbrush, There is not much I can do, except for add /1000 to the end of the title. The bytes that we used to identify the model are identical for the 9000 series and the 10000 series it seems. Do any of your modes not show up when you cycle through?
As far as battery goes - that was not released until yesterdays update. Try again and if you are still having issues, go here https://github.com/home-assistant/core/issues/87125
As far as the sensors looking like that - the sensor values go 'unavailable' when it cannot connect to your device. They should show up again as soon as it connects to the bluetooth in your toothbrush. If you are having to reinstall, that is an issue. Try leaving it installed, use the toothbrush, wait for the sensors to go unavailable, and then use the toothbrush again, let me know if it still doesn't even stop being unavailable.
Hey @Lash-L , thank you for your response. I tested with the update 2023.2.0. The toothbrush is detected as 9000 and the values are available. Also changing the modes delivers the expected values. The only issue is the battery state, its always 50%. For me its looking like the value is limited, because before recharging i got values <50%. Should I create another issue for this or do you already know about this problem?
I recommend at least a note in the documentation, that a 10000 is detected as 9000, to avoid future issues.
@daowa89 I'm not sure why that would be the case with the battery, do the levels appear to be accurate once it is under 50%?
@Lash-L below 50% its looking good. Over 50% its limited, the oralb app shows the right level for example 89%.
@daowa89 Create a new issue for that. I'm not sure why that would be the case, but I can try looking into it. I am going to close this issue with my next Pr.
@Lash-L I updated to 2023.2.3 and for the moment its looking good, I get a value of 53%.