Oral-B integration entities

There is almost no documentation on the new oral-b integration. What info does it make available in home assistant? Is battery one of them?

2 Likes

I added the integration after it found our two toothbrushes. Recognized them as Smart Series 7000. But other than that, I cannot find anything in Home Assistant related to this integration. No devices, no entities. So, I can’t answer your question, but I’m curious as well how this is intendend to work.

I tried to simply add the integration, but it didn’t work complaining there was no device.
So I tried adding the integration again with the toothbrush on. It worked and prompted to add a device.
I have a few esphome devices with bluetooth proxy in my house already running with no bluetooth on HA server itself. So, it must have worked via the esphome.

My screen doesn’t show battery. There are still some kinks like the sector jumped to 15 then 47 after the first 4.

1 Like

Nevermind. The next day I got the same entities as shown in your screenshot. I too don’t see an entity for battery status, but I don’t really care about that. I just want to use the toothbrushes as triggers for other devices, which should work with the given entities.

So what are some ideas for using this new feature? Most scenario’s I can think of are a bit niche to say the least :slight_smile:

  • A very logical one is to launch the app on your phone when you start using the toothbrush: Can't launch oral-b app from Companion APP
  • In the mornings if you have some smart morning alarm, it can be turned off as soon as you start brushing your teeth.
  • In the evenings it can activate your home security system/turn off the lights downstairs/… when you brush your teeth.
  • It can give you a light/audio warning when you brush your teeth to hard
  • It can warn you that you/your kids forgot to brush their teeth or didn’t brush their teeth long enough.

Lol that was my topic. I got that working BTW(I was not reading the docs thoroughly enough)!

I like the idea of having it trigger the security system. I’ve been trying to find a good way to signal when 'bedtime" is. A time would work, but the weekends tend to throw that off.

My ultimate goal, is to use an in bed sensor and a time window, to see if the toothbrush has been used for x minutes. If not, have some sort of notification or perhaps an RGB light as a gentle reminder to brush. For whatever reason, I can’t remember to do the most mundane tasks, and if my smart house is just the right amount of annoying in the right way, then perhaps I can Pavlov myself into building good habits.

I’m very consistent at brushing so the reminder to brush is a useless automation for me :slight_smile:
Making your toothbrush the trigger to arm your alarm system could perhaps encourage you to maintain a healthy brushing habit? :wink:
Mind sharing the working code for launching the app on your phone when brushing?

It was super easy, once I figured out the right command from this doc.
notification commands
This is the automation I’m using to test.

description: "Launch oral-b app when toothbrush is running"
mode: single
trigger:
  - platform: state
    entity_id:
      - sensor.toothbrush_state
    to: running
action:
  - service: notify.myphone
    data:
      message: command_launch_app
      data:
        package_name: com.pg.oralb.oralbapp

1 Like

There is indeed a very fine line between smart and plain lazy :rofl: :rofl: :rofl:

I bought 4 of the io series 4 for my kids. Battery level is not reported although these are the most basic of the io series. It does report time, mode, status, signal strength, and some sector data that I think are just constants that come from the app. I started with the app and it struggled to reconnect and seemed flaky but I think it’s necessary for firmware updates and changing the color and other preferences. Since these are the basic ones it doesn’t know what sector you are brushing you just tell it the time goal and number of sectors (4 or 6) and then it divides that to vibrate when you should move to a new sector.

The main sensor I wanted was brushing time. I have an automation setup that when the toothbrush runs for more than a minute it changes an led on a homeseer switch in my living room so I can quickly tell who has brushed their teeth. The leds reset at noon and midnight. I’ve only set up two of the toothbrushes for testing so far but it seems to be working.

Come now, it’s not plain lazy. It’s the special kind of lazy where you spend many hours figuring out how to save a second.

3 Likes

I’m using the toothbrushes to trigger my morning and nighttime routines as for me it’s the one consistent daily routine that runs at the start and end of every day.

Getting in and out of bed doesn’t work as a trigger for me as this activity can occur more than twice a day, even within my morning and evening time windows, especially as I have kids that love to jump on our bed! The main challenge I had is that my wife and I both have Oral B toothbrushes so I had to create a daily counter to ensure the morning routine triggers on the “first brush of the morning” while the evening routine triggers on the “second brush of the evening”.

The biggest issue with this setup is the Oral B integration doesn’t report battery status so I have no reminder for a low battery. This results in the toothbrush occasionally going dead which then means that my morning and/or evening routines don’t get triggered at all. (I’m thinking of placing a smart button in my bathroom to trigger the routine for when this situation occurs.)

1 Like

Battery is included in the newest 2023.2 release :slight_smile:

3 Likes

I setup the Oral-B integration and initially it shows the status of the sensors but after a few hours all the sensors go to unavailable. I can get them back if I open up the app and synch it again to the toothbrush but it will again go to unavailable after a few hours. Is there some setting I am missing that needs to change to keep the sensors from going to unavailable? Is anyone else having this issue? (I have the IO 4 series)

Battery still does not show up even after deleting and re-adding the integration.
Update to 2023.2 was successful.
Anyhow, my IO4 is detected as Smart Series 7000. Is that correct?

2 Likes

I was very happy when I read that in the patch notes! Thanks for that!

Unfortunately, I also have problems with my Series 9 to check the battery level.
I have of course updated Home Assistant and re-added Oral-B integration already.
All other entities are recognized without any problems.

@RalfP First as far as your IO4 being detected as a Smart Series 7000, that is not the intended behavior. Smart Series 7000 is the ‘default’ toothbrush. If we don’t recognize a piece of the manufacturer data, then we automatically assign you to Smart Series 7000. Fortunately, this is an easy fix. If you could enable debug logging for the bluetooth integration, turn on your toothbrush, and then go to your logs and find in the logs where it says AdvertisementData(local_name='Oral-B Toothbrush' then a whole bunch of other stuff. If you send me that line, I can get your toothbrush to correct identify. Has this always been the case or did this change in the most recent update? If you get the manufacturer data, you can add it to a github issue, as that will notify me, where as I may be a bit delayed noticing it here, but feel free to post it here if that works best for you.

@Bobcat9212 @RalfP

I’m working with an issue here as well: Oral B Toothbrush not returning battery level · Issue #87125 · home-assistant/core · GitHub
I’ll try to figure out everyone’s issues in relation to battery level there. First thing to check is to make sure you are connecting with a device that can do active connections Bluetooth - Home Assistant

1 Like

That one is easy:
2023-02-02 16:19:25.582 DEBUG (MainThread) [homeassistant.components.bluetooth.manager] hci0 (5C:F3:70:A9:06:5A) [connectable]: 38:5B:44:67:D3:FD AdvertisementData(local_name=‘GX67D3FD’, manufacturer_data={220: b’\x074\x1a\x03:\x00\x00\x00\x01\x00\x08’}, service_uuids=[‘0000fe0d-0000-1000-8000-00805f9b34fb’], tx_power=0, rssi=-89) match: {‘oralb’}

Meanwhile the device DOES show the battery level. Turned up by magic?

Anyhow, all sensors go to unavailable after some time when the toothbrush is being switched off.

It would be really good if at least the battery level would be persistent.

The issue is that when the device gets disconnected, we have no idea what the value is. I talked with the other contributor for this integration a while ago, and he stated going Unavailable is best practice rather than persisting the same value until it turns back on.