Modifying BLE sensor transmitting power for Galaxy Watch 6

Hello all,

This is my first time with Home Assistant and I’m having my first difficulties. I hope I am in the right section and you can help me. My problem is the following:

I would like to control the BLE sensor of my Galaxy Watch 6 via Home Assistant and the Companion App. Switching the sensor on and off and setting the advertise mode works without any problems. However, changing the transmit power does not work. No matter what I have tried so far, the transmit power always stays at ultra low. To change the transmit power, I enter the following command in automation.yaml:

alias: Change Transmit Power BLE transmitter
trigger:

  • platform: homeassistant
    event: start
    action:
    • service: notify.mobile_app_galaxy_watch6_seb
      data:
      message: “command_ble_transmitter”
      data:
      command: “ble_set_transmit_power”
      ble_advertise: “ble_transmit_high”

After that, I restart the Home Assistant. The log shows no errors, but the power setting does not change. I hope you can help me.

Many greetings
Utze!

1 Like
- service: notify.mobile_app_galaxy_watch6_seb
  data:
    message: “command_ble_transmitter”
    data:
      command: “ble_set_transmit_power”
      ble_advertise: “ble_transmit_high”
      ttl: 0
      priority: high

Looks like your spacing is off, also you do not have the critical format entered so the notification will be delayed until the device is woken up. Try this format with the critical parameters added.

For reference on the 2 commands:

https://companion.home-assistant.io/docs/notifications/notification-commands#ble-beacon-transmitter

https://companion.home-assistant.io/docs/notifications/critical-notifications#android

Thank you for your help, unfortunately the following input also does not lead to success:

alias: Turn off BLE transmitter
trigger:
- platform: homeassistant
  event: start
action:
  - service: notify.mobile_app_galaxy_watch6_seb
    data:
      message: “command_ble_transmitter”
      data:
        command: “ble_set_transmit_power”
        ble_advertise: “ble_transmit_high”
        ttl: 0
        priority: high

Furthermore, the transmitter can no longer be switched on and off. So even that does not really work reliably. For this I have used the following input:

alias: Turn off BLE transmitter
trigger:
- platform: homeassistant
  event: start
action:
  - service: notify.mobile_app_galaxy_watch6_seb
    data:
      message: “command_ble_transmitter”
      data:
        command: “tun_off”
        ttl: 0
        priority: high

I have already looked at the two references for the commands but I just can’t find the error. What exactly do you mean by my spacing looks incorrect? I’m pretty much at the beginning with Home Assistant. Maybe I’m overlooking something very fundamental.

are you sure that the notification service call is correct and the watch can receive notifications sent directly to it? Can you try sending a test message?

also my bad we didnt follow the docs properly we should be using ble_transmit instead of ble_advertise I assume you were getting the notification posted like normal?

alias: Turn off BLE transmitter
trigger:
- platform: homeassistant
  event: start
action:
  - service: notify.mobile_app_galaxy_watch6_seb
    data:
      message: “command_ble_transmitter”
      data:
        command: “ble_set_transmit_power”
        ble_transmit: “ble_transmit_high”
        ttl: 0
        priority: high

one other thing to keep in mind, your trigger only occurs when HA starts up, why dont you try a different trigger or try to run the service call directly.

your spacing in this recent post looks correct now

Thank you for the advice. Sending a message with title and content worked successfully. In the meantime, I have found a few more settings that I would like to test. I would also like to vary the trigger a little. I will get back to you over the course of the weekend. Either with a finished solution or with further questions. Thank you very much already!

1 Like

Okay, I managed to set my BLE power. Two problems had overlapped:

  1. I must have accidentally deleted the mobile_app: entry in configuration.yaml.
  2. you were right. We should be using ble_transmit instead of ble_advertise. The correct command is:
alias: change transmit power BLE transmitter
trigger:
- platform: homeassistant
  event: start
action:
  - service: notify.mobile_app_galaxy_watch6_seb
    data:
      message: "command_ble_transmitter"
      data:
        command: "ble_set_transmit_power"
        ble_transmit: "ble_transmit_high"

Unfortunately, I still have the problem that even with the different settings for “ble_set_advertise_mode” and “ble_set_transmit_power”, the beacon of my Galaxy Watch 6 is not found by my ESP32. I am not sure whether further settings / sensors / approvals are necessary so that the beacon transmits correctly. Do you have any other ideas?

1 Like

you should first confirm that the beacon is being transmitted, try enabled teh beacon monitor app on your phone to see if the beacon from the watch shows up. If you can see the beacon then that means you may need to tweak your ESP device settings to pick up the signal.

I am not sure if the Beacon transmits correctly. I can find a beacon with the help of a beacon monitor app. However, it is displayed as Galaxy Watch 6. Most users on the Internet report that a beacon with the notation “ibeacon:XXXXXXXX-100-1” is generated. I cannot find this beacon. So I am not sure if the signal is sent with the correct settings. Is it correct that I should see a beacon of the notation “ibeacon:XXXXXXXX-100-1” if everything is set correctly?

I will have a look at the settings of the ESP32 again. As a system I use Tasmota BLE solo. Do you have experience or can you give me help?

Google brought me here with a similar problem, eventually managed to get it all working right. Here’s something that may be of help to others:

alias: Galaxy watch ble controller enable
description: Galaxy watch ble controller when my phone is within home zone
trigger:
  - platform: zone
    entity_id: device_tracker.d23
    zone: zone.home
    event: enter
condition: []
action:
  - service: notify.mobile_app_galaxy_watch6_classic_arft
    data:
      message: command_ble_transmitter
      data:
        command: turn_on
        ttl: 0
        priority: high
  - service: notify.mobile_app_galaxy_watch6_classic_arft
    data:
      message: command_ble_transmitter
      data:
        command: ble_set_transmit_power
        ble_transmit: ble_transmit_low
        ttl: 0
        priority: high
mode: single

alias: Galaxy watch ble controller disable
description: Galaxy watch ble controller
trigger:
  - platform: zone
    entity_id: device_tracker.d23
    zone: zone.home
    event: leave
condition: []
action:
  - service: notify.mobile_app_galaxy_watch6_classic_arft
    data:
      message: command_ble_transmitter
      data:
        command: turn_off
        ttl: 0
        priority: high
mode: single

This will turn on my galaxy watch BLE transmitter to Low (this works for me) when my phone enters home zone (my phone and watch are always on me) and turns off the BLE transmitter when I’m away from home.
While at home I leave the phone in one place but my watch is with me so I can trigger actions based on which room I’m at by monitoring the BLE signal that is of low enough power to just trigger the Espresense sensor in each room.