Working example of sending command_broadcast_intent to Tasker on Android

I am looking for more fine grained control on when notifications are sent to my phone. For example, I am playing with the function to send a reminder of the things I need to bring with me on my way to work and dropping my son off “Badge, snacks, backpack, etc…” on weekdays in the morning, and other days a simple “Please have a safe drive, see you soon!”

However, I have a remote start automation that turns the car on when It’s cold outside. So I’ll be getting breakfast and my phone will say “Do you have your Badge and backpack etc…”, or I’ll get a “please drive safe!” while I’m several feet from the car. Currently this is all done using the bluetooth connected sensor of the companion app, which does not report signal strength.

I figure that I can get closer to what I want to achieve by sending a broadcast intent to tasker, but I can’t quite figure out how to get the “received intent” to trigger. Can someone please provide an example of the HA notify config used and a task/trigger setup in tasker? I can work from there.

Also, is there any two way communication I can use for this? I would like to be able to trigger a helper object from tasker when my phone has greater than -20dBm signal on the car bluetooth. I’m assuming the answer is using an HTTP post or autoremote. Just wondering if there’s a native silent way tasker can push to the companion app.

you’ll need to play around with how to get tasker to recognize it…try to look at the examples in this post to see what you need to do for it to work as you desire

I’ve looked and searched through that thread several times. There’s not a good example of the intent and notify formats required

This is how I launch DroidCamOBS with a notification:

sequence:
  - service: notify.mobile_app_sm_g930f
    data:
      message: command_activity
      data:
        channel: com.dev47apps.droidcamx
        intent_class_name: com.dev47apps.droidcamx.DroidCamX
        tag: android.intent.action.MAIN

Channel is the actual package.
intent_class is the activity
tag is something I don’t fully understand myself.

The example of broadcasting intents in the docs:

automation:
  - alias: Send broadcast intent with extras
    trigger:
      ...
    action:
      - service: notify.mobile_app_<your_device_id_here>
        data:
          message: "command_broadcast_intent"
          title: "com.urbandroid.sleep.alarmclock.ALARM_STATE_CHANGE"
          data:
            channel: "com.urbandroid.sleep"
            group: "alarm_label:work,alarm_enabled:false"

seems pretty straightforward, the part you need to figure out - is what intents Tasker is listening for. To do that, you need to look at it’s Manifest file.

Perhaps look at this - [PROJECT] Intents Broadcast Monitor v1.0 ~ Tasker Profile Center and see if the right intents are being broadcast?

1 Like

they are actually user defined in tasker so can be anything :slight_smile:

1 Like

Thanks, this provided some more context so I could figure out what’s needed in tasker (with user defined action)

I also see there’s an intent listener in the native companion app for bidirectional communication, so I can be more fine grained when actions trigger from the phone’s perspective, not only from what HA can detect.

This is great.

2 Likes

How did you manage to receive the intent in Tasker? Since tasker can only receive broadcasts, and not intents directed at a specific package, I can’t seem to figure this out.

That doesnt make any sense, you define tasker to listen for an intent and you send that intent to tasker using the app. All you are doing is passing a string of text to each other. The intent is broadcasted from the HA app to the android system and Tasker will find that. The string of text for the intent action needs to match.

Sorry for jumping in (and tagging you directly), but can you @dshokouhi, as the go-to guy here in the forum for the companion app, say, if it is possible to switch on the flight mode on the phone via app (Tasker, automate, HA companion app)?

I want to have an automation, where I start my “bed_mode” in HA (via voice or button) and then enable the flight mode automatically. :slight_smile:

Thanks! :slight_smile:

For posterity: I had a typo in the package name. For anyone wondering: The correct name for tasker is net.dinglisch.android.taskerm.

1 Like

how do you expect the app to take the phone out of airplane mode once it is on?

probably better to use tasker for something like that directly.

Thanks for your answer. :slight_smile: I was a little unclear, sorry. I have an input_boolean.bed_mode that I turn on when I go to bed. This triggers an automation that switches the TV off, turns the alarm on and all that stuff.

And as I tend to forget to enable flight mode on my phone (with the typical advertising email coming in at 5am in the morning with a bing), I’d want to have the automation sent “something” to the phone, that then enables flight mode. In the morning I’d turn the flight mode off manually, when I wake up. :slight_smile:

Thanks!

why not use DND to silence things that are not important? You can take it a step further and use sleep as android for sleep tracking to control DND and when you turn off sleep tracking you can turn DND back off.

looking online doesn’t seem possible programmatically turn airplane mode on/off. Tasker may have a workaround but not sure if that still works.

1 Like

Yeah, that’s exactly my problem, I can’t find anything, that enables flight mode. I thought there could be a chance you might know something. :slight_smile: :upside_down_face:

Thanks anyway, I’ll try my luck with DND, as a temp solution. I can’t believe I’m the only one who enables or wants to enable flight mode at night :joy: :rofl:

When I search tasker actions (or Tasky? Apparently it had a name change?) I see an action for toggling ariplane mode:

Do you not see that option?

1 Like

:rofl: Thanks, that tipped me in the right direction. The solution is simple, I’m an idiot. :rofl: I did a search in Tasker, but I didn’t use the german word “Flug”, but rather the english translation “Airplane” or “Flight”. :rofl: :rofl:

I’ve now what I wanted, my bed_mode turns on the airplane mode on the phone, when I go to bed! :slight_smile:

Thanks guys!

1 Like

Hi guys, sorry for necroposting this, but I keep bumping in this discussion when I search for “tasker intent”, and no real, complete solution has been posted anywhere… so let me fill the gap!

Background: I bought a cheap Bluetooth 2.1 amplifier that I connected to my TV via audio cable; When I turn on the amplifier it always switches to the bluetooth connection even if there is no sound from my phone and the TV is on, so I have to manually disconnect the phone.
I have a “Movie Time” scene that turns on the TV and the stereo (they are hooked up to a meross smart strip) and sets the mood, the only thing missing is to disconnect the damn phone from the stereo!

This is the MVP for the home assistant part

  - service: notify.mobile_app_<MY_PHONE>
    data:
      message: command_broadcast_intent
      data:
        intent_package_name: net.dinglisch.android.taskerm
        intent_action: net.dinglisch.android.taskerm.SET_BT_CONNECTION
        intent_extras: device:<BT-DEVICE-NAME>,connect:false

and then in tasker I added an “Intent Received” event with action net.dinglisch.android.taskerm.SET_BT_CONNECTION;
I can access the extras via the %device and %connected variables.

Of course you can use variables/fields/templating in the script to make this universal, but I just need it for one phone-stereo combination, so why bother :sweat_smile:

Cheers!

4 Likes

Hi guys, How can I send comma on sensor state?

Unable to send broadcast intent please check command format

I have a sensor that sends the state in the format “A, B, D”
If I change the comma to a space or hyphen it works, but not with a comma.

I tried without quotes:

alias: Intent Tasker S20
service: notify.mobile_app_sm_g985f
data:
  message: command_broadcast_intent
  data:
    intent_package_name: net.dinglisch.android.taskerm
    intent_action: io.homeassistant.companion.android.intent.ENTITY_STATE_CHANGED
    intent_extras: >-
      entity:{{trigger.event.data.entity_id}},state:{{trigger.event.data.new_state.state}}

and with quotation marks

alias: Intent Tasker S20
service: notify.mobile_app_sm_g985f
data:
  message: command_broadcast_intent
  data:
    intent_package_name: net.dinglisch.android.taskerm
    intent_action: io.homeassistant.companion.android.intent.ENTITY_STATE_CHANGED
    intent_extras: >-
      entity:{{trigger.event.data.entity_id}},state:"{{trigger.event.data.new_state.state}}"

Log:


10-07 11:38:03.069 32538 26020 W FirebaseMessaging: Unable to log event: analytics library is missing
10-07 11:38:03.070 32538 26020 D FCMService: From: 331041709873
10-07 11:38:03.075 32538 32538 D MessagingService: Processing device command
10-07 11:38:03.076 32538 32538 E MessagingService: Unable to send broadcast intent please check command format
10-07 11:38:03.076 32538 32538 E MessagingService: java.lang.IndexOutOfBoundsException: Index: 1, Size: 1
10-07 11:38:03.076 32538 32538 E MessagingService: 	at java.util.Collections$SingletonList.get(Collections.java:4872)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at io.homeassistant.companion.android.notifications.MessagingManager.addExtrasToIntent(MessagingManager.kt:797)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at io.homeassistant.companion.android.notifications.MessagingManager.handleDeviceCommands(MessagingManager.kt:616)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at io.homeassistant.companion.android.notifications.MessagingManager.access$handleDeviceCommands(MessagingManager.kt:101)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at io.homeassistant.companion.android.notifications.MessagingManager$handleMessage$4.invokeSuspend(MessagingManager.kt:359)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at kotlin.coroutines.jvm.internal.BaseContinuationImpl.resumeWith(ContinuationImpl.kt:33)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at kotlinx.coroutines.DispatchedTask.run(DispatchedTask.kt:108)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at android.os.Handler.handleCallback(Handler.java:942)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at android.os.Handler.dispatchMessage(Handler.java:99)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at android.os.Looper.loopOnce(Looper.java:226)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at android.os.Looper.loop(Looper.java:313)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at android.app.ActivityThread.main(ActivityThread.java:8757)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at java.lang.reflect.Method.invoke(Native Method)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:571)
10-07 11:38:03.076 32538 32538 E MessagingService: 	at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1067)
10-07 11:38:03.080 32538 32538 V Toast   : show: caller = io.homeassistant.companion.android.notifications.MessagingManager.handleDeviceCommands$lambda$4:631 
10-07 11:38:03.081 32538 32538 V Toast   : show: isFocusInDesktop = false mCustomDisplayId = -1 isDexDualMode = false isActivityContext = false
10-07 11:38:04.621 32538 32538 D SmartClipDataCropperImpl: doExtractSmartClipData : Extraction start! reqId = 0  Cropped area = Rect(1200, 540 - 1201, 541)  Package = io.homeassistant.companion.android
10-07 11:38:04.623 32538 32538 D SmartClipDataCropperImpl: getChildViewsByZOrder : Z order detected
10-07 11:38:04.623 32538 32538 D SmartClipDataCropperImpl: getChildViewsByZOrder : Parent=android.widget.LinearLayout{67e2e8a V.E...... ........ 0,0-2327,999} / View=android.widget.FrameLayout{6f2f6b8 V.E...... ........ 0,189-2327,999 #7f0a0097 app:id/content} / Z=0.0
10-07 11:38:04.623 32538 32538 D SmartClipDataCropperImpl: getChildViewsByZOrder : Parent=android.widget.LinearLayout{67e2e8a V.E...... ........ 0,0-2327,999} / View=androidx.appcompat.widget.Toolbar{eb2b0f5 V.E...... ........ 0,0-2327,189 #7f0a026e app:id/toolbar} / Z=13.5
10-07 11:38:04.625 32538 32538 D SmartClipDataCropperImpl: traverseView : Contains meta data : Rect(0, 270, 2327, 1080)	MaterialTextView/logTextView	plain_text	
10-07 11:38:04.625 32538 32538 D SmartClipDataCropperImpl: getOpaqueBackgroundRect : opaqueRect=null  element=com.samsung.android.content.smartclip.SmartClipDataElementImpl@959273b
10-07 11:38:04.625 32538 32538 D SmartClipDataCropperImpl: getOpaqueBackgroundRect : opaqueRect=null  element=com.samsung.android.content.smartclip.SmartClipDataElementImpl@78bde58
10-07 11:38:04.625 32538 32538 D SmartClipDataCropperImpl: getOpaqueBackgroundRect : opaqueRect=null  element=com.samsung.android.content.smartclip.SmartClipDataElementImpl@45cabb1
10-07 11:38:04.625 32538 32538 D SmartClipDataCropperImpl: getOpaqueBackgroundRect : opaqueRect=null  element=com.samsung.android.content.smartclip.SmartClipDataElementImpl@3ab3896
10-07 11:38:04.625 32538 32538 D SmartClipDataCropperImpl: getOpaqueBackgroundRect : opaqueRect=null  element=com.samsung.android.content.smartclip.SmartClipDataElementImpl@528fc17
10-07 11:38:04.626 32538 32538 D SmartClipDataCropperImpl: getOpaqueBackgroundRect : opaqueRect=null  element=com.samsung.android.content.smartclip.SmartClipDataElementImpl@c8804
10-07 11:38:04.626 32538 32538 D SmartClipDataCropperImpl: getOpaqueBackgroundRect : opaqueRect=null  element=com.samsung.android.content.smartclip.SmartClipDataElementImpl@ddf51ed
10-07 11:38:04.626 32538 32538 D SmartClipDataCropperImpl: getOpaqueBackgroundRect : opaqueRect=null  element=com.samsung.android.content.smartclip.SmartClipDataElementImpl@d5a4822
10-07 11:38:04.626 32538 32538 D SmartClipDataCropperImpl: addAppMetaTag : package name is io.homeassistant.companion.android
10-07 11:38:04.627 32538 32538 D SmartClipDataCropperImpl: sendExtractionResultToSmartClipService : -- Extracted SmartClip data information --
10-07 11:38:04.627 32538 32538 D SmartClipDataCropperImpl: sendExtractionResultToSmartClipService : Request Id : 0
10-07 11:38:04.627 32538 32538 D SmartClipDataCropperImpl: sendExtractionResultToSmartClipService : Extraction mode : 1
10-07 11:38:04.627 32538 32538 D SemSmartClipDataRepository: ----- Start of SmartClip repository informations -----
10-07 11:38:04.627 32538 32538 D SemSmartClipDataRepository: ** Content type : image
10-07 11:38:04.627 32538 32538 D SemSmartClipDataRepository: ** Meta area rect : Rect(0, 270 - 2327, 1080)
10-07 11:38:04.627 32538 32538 D SemSmartClipDataRepository: ** Captured image file path : null
10-07 11:38:04.628 32538 32538 D SemSmartClipDataRepository: ----- End of SmartClip repository informations -----
10-07 11:38:04.640 32538 32538 W BpBinder: Large outgoing transaction of 328280 bytes, interface descriptor <uncached descriptor>, code 2
10-07 11:38:04.641 32538 32538 D SmartClipDataCropperImpl: sendExtractionResultToSmartClipService : Elapsed = 20
10-07 11:38:05.211 32538 32538 I ViewRootImpl@312d73d[SettingsActivity]: MSG_WINDOW_FOCUS_CHANGED 0 0
10-07 11:38:05.318 32538 32538 D SmartClipRemoteRequestDispatcher: dispatchScrollableAreaInfo : windowRect = Rect(0, 0 - 2327, 1080)
10-07 11:38:05.322 32538 32538 D SmartClipRemoteRequestDispatcher: dispatchScrollableAreaInfo : Scrollable view count = 3
10-07 11:38:05.322 32538 32538 D SmartClipRemoteRequestDispatcher: dispatchScrollableAreaInfo : Unscrollable view count = 0
10-07 11:38:05.322 32538 32538 D SmartClipRemoteRequestDispatcher: dispatchScrollableAreaInfo : Pkg=io.homeassistant.companion.android Activity=null
10-07 11:38:08.397 32538 32538 I ViewRootImpl@312d73d[SettingsActivity]: MSG_WINDOW_FOCUS_CHANGED 1 0
10-07 11:38:08.398 32538 32538 I ViewRootImpl@312d73d[SettingsActivity]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0x78d71deed0}
10-07 11:38:08.398 32538 32538 D IntegrationRepository: isAppLocked(): false. (LockEnabled: false, appActive: true, expireMillis: 1696689409206, currentMillis: 1696689488398)
10-07 11:38:08.398 32538 32538 D IntegrationRepository: setAppActive(): true
10-07 11:38:08.399 32538 32538 D InputMethodManager: startInputInner - Id : 0
10-07 11:38:08.399 32538 32538 I InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
10-07 11:38:08.650 32538 32538 I ViewRootImpl@312d73d[SettingsActivity]: ViewPostIme pointer 0
10-07 11:38:08.724 32538 32538 I ViewRootImpl@312d73d[SettingsActivity]: ViewPostIme pointer 1
10-07 11:38:08.738 32538 11149 D NativeCustomFrequencyManager: [NativeCFMS] BpCustomFrequencyManager::BpCustomFrequencyManager()
10-07 11:38:08.745 32538 32538 D InsetsController: onStateChanged: InsetsState: {mDisplayFrame=Rect(0, 0 - 2400, 1080), mDisplayCutout=DisplayCutout{insets=Rect(0, 0 - 73, 0) waterfall=Insets{left=0, top=0, right=0, bottom=0} boundingRect={Bounds=[Rect(0, 0 - 0, 0), Rect(0, 0 - 0, 0), Rect(2327, 692 - 2400, 748), Rect(0, 0 - 0, 0)]} cutoutPathParserInfo={CutoutPathParserInfo{displayWidth=1080 displayHeight=2400 physicalDisplayWidth=1440 physicalDisplayHeight=3200 density={2.8125} cutoutSpec={M 0,0 H -9.866666666666667 V 25.86666666666667 H 9.866666666666667 V 0 H 0 Z @dp} rotation={3} scale={1.0} physicalPixelDisplaySizeRatio={1.0}}}}, mRoundedCorners=RoundedCorners{[RoundedCorner{position=TopLeft, radius=81, center=Point(81, 81)}, RoundedCorner{position=TopRight, radius=81, center=Point(2319, 81)}, RoundedCorner{position=BottomRight, radius=81, center=Point(2319, 999)}, RoundedCorner{position=BottomLeft, radius=81, center=Point(81, 999)}]}  mRoundedCornerFrame=Rect(0, 0 - 2400, 1080), mPrivacyIndicatorBounds=PrivacyIndicatorBounds {static bounds=Rect(2178, 0 - 2327, 81) rotation=3}, mSources= { InsetsSource: {mType=ITYPE_STATUS_BAR, mFrame=[0,0][2400,81], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_NAVIGATION_BAR, mFrame=[0,1080][2400,1080], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_GESTURES, mFrame=[0,0][60,1080], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_GESTURES, mFrame=[2267,0][2400,1080], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_MANDATORY_GESTURES, mFrame=[0,0][2400,81], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_MANDATORY_GESTURES, mFrame=[0,1026][2400,1080], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_LEFT_DISPLAY_CUTOUT, mFrame=[0,0][-100000,1080], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_DISPLAY_CUTOUT, mFrame=[0,0][2400,-100000], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_RIGHT_DISPLAY_CUTOUT, mFrame=[2327,0][2400,1080], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_DISPLAY_CUTOUT, mFrame=[0,100000][2400,1080], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_TOP_TAPPABLE_ELEMENT, mFrame=[0,0][2400,81], mVisible=true, mInsetsRoundedCornerFrame=false}, InsetsSource: {mType=ITYPE_BOTTOM_TAPPABLE_ELEMENT, mFrame=[0,0][0,0], mVisible=true, mInsetsRoundedCornerFrame=false} } host=PopupWindow:df0b97a from=android.view.ViewRootImpl.setView:1732
10-07 11:38:08.749 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: setView = android.widget.PopupWindow$PopupDecorView@440f346 TM=true
10-07 11:38:08.754 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: performTraversals params={(1606,95)(708x378) gr=TOP START CENTER DISPLAY_CLIP_VERTICAL sim={state=unchanged adjust=resize} ty=APPLICATION_SUB_PANEL fmt=TRANSLUCENT surfaceInsets=Rect(54, 54 - 54, 54) (manual)
10-07 11:38:08.754 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   fl=41860200
10-07 11:38:08.754 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   pfl=2018000
10-07 11:38:08.754 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   bhv=DEFAULT
10-07 11:38:08.754 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR naviIconColor=0
10-07 11:38:08.754 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   sfl=20000}
10-07 11:38:08.755 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: performTraversals mFirst=true windowShouldResize=true viewVisibilityChanged=false mForceNextWindowRelayout=false params={(1606,95)(708x378) gr=TOP START CENTER DISPLAY_CLIP_VERTICAL sim={state=unchanged adjust=resize} ty=APPLICATION_SUB_PANEL fmt=TRANSLUCENT surfaceInsets=Rect(54, 54 - 54, 54) (manual)
10-07 11:38:08.755 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   fl=41860200
10-07 11:38:08.755 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   pfl=2018000
10-07 11:38:08.755 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   bhv=DEFAULT
10-07 11:38:08.755 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR IME naviIconColor=0
10-07 11:38:08.755 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   sfl=20000}
10-07 11:38:08.758 32538 12260 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Resizing android.view.ViewRootImpl@7eb1907: frame = [1606,95][2314,473] reportDraw = true forceLayout = false syncSeqId = 0
10-07 11:38:08.760 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: updateBlastSurfaceIfNeeded mBlastBufferQueue=null isSameSurfaceControl=false
10-07 11:38:08.762 32538 32538 I BLASTBufferQueue: new BLASTBufferQueue, mName= ViewRootImpl@65e552b[PopupWindow:df0b97a] mNativeObject= 0x784715ffb0 sc.mNativeObject= 0x77d71da630 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2909 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309 android.view.Choreographer.doCallbacks:923 android.view.Choreographer.doFrame:852 android.view.Choreographer$FrameDisplayEventReceiver.run:1283 
10-07 11:38:08.762 32538 32538 I BLASTBufferQueue: update, w= 816 h= 486 mName = ViewRootImpl@65e552b[PopupWindow:df0b97a] mNativeObject= 0x784715ffb0 sc.mNativeObject= 0x77d71da630 format= -3 caller= android.graphics.BLASTBufferQueue.<init>:84 android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2909 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 
10-07 11:38:08.762 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Relayout returned: old=(1606,95,2314,95) new=(1606,95,2314,473) req=(708,378)0 dur=5 res=0x3 s={true 0x78d710e4b0} ch=true seqId=0
10-07 11:38:08.763 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: mThreadedRenderer.initialize() mSurface={isValid=true 0x78d710e4b0} hwInitialized=true
10-07 11:38:08.763 32538 11149 D OpenGLRenderer: eglCreateWindowSurface
10-07 11:38:08.771 32538 32538 D AbsListView:  in onLayout changed 
10-07 11:38:08.771 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: reportNextDraw android.view.ViewRootImpl.performTraversals:4438 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301 android.view.Choreographer$CallbackRecord.run:1309 
10-07 11:38:08.772 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Setup new sync id=0
10-07 11:38:08.772 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Setting syncFrameCallback
10-07 11:38:08.772 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: registerCallbacksForSync syncBuffer=false
10-07 11:38:08.774 32538 11164 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Received frameDrawingCallback syncResult=0 frameNum=1.
10-07 11:38:08.774 32538 11164 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Setting up sync and frameCommitCallback
10-07 11:38:08.778 32538 11149 I BLASTBufferQueue: [ViewRootImpl@65e552b[PopupWindow:df0b97a]#9](f:0,a:0) onFrameAvailable the first frame is available
10-07 11:38:08.779 32538 11149 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Received frameCommittedCallback lastAttemptedDrawFrameNum=1 didProduceBuffer=true
10-07 11:38:08.779 32538 11149 D OpenGLRenderer: CFMS:: SetUp Pid : 32538    Tid : 11149
10-07 11:38:08.780 32538 11149 W Parcel  : Expecting binder but got null!
10-07 11:38:08.780 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: onSyncComplete
10-07 11:38:08.781 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: setupSync seqId=0 mSyncId=0 fn=1 caller=android.view.ViewRootImpl$$ExternalSyntheticLambda11.accept:6 android.window.SurfaceSyncer.lambda$setupSync$1$android-window-SurfaceSyncer:128 android.window.SurfaceSyncer$$ExternalSyntheticLambda1.accept:8 android.window.SurfaceSyncer$SyncSet.checkIfSyncIsComplete:382 android.window.SurfaceSyncer$SyncSet.markSyncReady:359 android.window.SurfaceSyncer.markSyncReady:151 android.view.ViewRootImpl.performTraversals:4503 
10-07 11:38:08.781 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: reportDrawFinished seqId=0 mSyncId=-1 fn=1 mSurfaceChangedTransaction=0x780717a8d0
10-07 11:38:08.782 32538 32538 V ViewRootImpl@65e552b[PopupWindow:df0b97a]: updateAppliedLetterboxDirection, direction=2, Caller=android.view.ViewRootImpl.handleDispatchLetterboxDirectionChanged:13665
10-07 11:38:08.782 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: handleResized, msg = 5 frames=ClientWindowFrames{frame=[1606,95][2314,473] display=[-100000,-100000][100000,100000] parentFrame=[0,0][0,0] parentClippedByDisplayCutout=false} forceNextWindowRelayout=false displayId=0 resizeMode=-1 frameChanged=false displayFrameChanged=false configChanged=false displayChanged=false
10-07 11:38:08.782 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: handleResized mSyncSeqId = 0
10-07 11:38:08.782 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: reportNextDraw android.view.ViewRootImpl.handleResized:2450 android.view.ViewRootImpl.-$$Nest$mhandleResized:0 android.view.ViewRootImpl$ViewRootHandler.handleMessageImpl:6728 android.view.ViewRootImpl$ViewRootHandler.handleMessage:6697 android.os.Handler.dispatchMessage:106 
10-07 11:38:08.782 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Setup new sync id=1
10-07 11:38:08.782 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Setting syncFrameCallback
10-07 11:38:08.782 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: registerCallbacksForSync syncBuffer=false
10-07 11:38:08.786 32538 11165 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Received frameDrawingCallback syncResult=0 frameNum=2.
10-07 11:38:08.786 32538 11165 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Setting up sync and frameCommitCallback
10-07 11:38:08.788 32538 11149 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Received frameCommittedCallback lastAttemptedDrawFrameNum=2 didProduceBuffer=true
10-07 11:38:08.789 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: onSyncComplete
10-07 11:38:08.789 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: setupSync seqId=0 mSyncId=1 fn=2 caller=android.view.ViewRootImpl$$ExternalSyntheticLambda11.accept:6 android.window.SurfaceSyncer.lambda$setupSync$1$android-window-SurfaceSyncer:128 android.window.SurfaceSyncer$$ExternalSyntheticLambda1.accept:8 android.window.SurfaceSyncer$SyncSet.checkIfSyncIsComplete:382 android.window.SurfaceSyncer$SyncSet.markSyncReady:359 android.window.SurfaceSyncer.markSyncReady:151 android.view.ViewRootImpl.performTraversals:4503 
10-07 11:38:08.789 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: reportDrawFinished seqId=0 mSyncId=-1 fn=2 mSurfaceChangedTransaction=0x780717a8d0
10-07 11:38:08.789 32538 32538 I ViewRootImpl@312d73d[SettingsActivity]: MSG_WINDOW_FOCUS_CHANGED 0 0
10-07 11:38:08.802 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: MSG_WINDOW_FOCUS_CHANGED 1 0
10-07 11:38:08.802 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0x78d710e4b0}
10-07 11:38:09.488 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: ViewPostIme pointer 0
10-07 11:38:09.572 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: ViewPostIme pointer 1
10-07 11:38:09.572 32538 32538 D AbsListView: onTouchUp() mTouchMode : 0
10-07 11:38:09.642 32538 32570 D LogcatReader: Read logcat for pid 32538
10-07 11:38:09.649 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: performTraversals params={(1606,95)(708x378) gr=TOP START CENTER DISPLAY_CLIP_VERTICAL sim={state=unchanged adjust=pan} ty=APPLICATION_SUB_PANEL fmt=TRANSLUCENT surfaceInsets=Rect(54, 54 - 54, 54) (manual)
10-07 11:38:09.649 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   fl=41840218
10-07 11:38:09.649 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   pfl=2018000
10-07 11:38:09.649 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   bhv=DEFAULT
10-07 11:38:09.649 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR naviIconColor=0
10-07 11:38:09.649 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   sfl=20000}
10-07 11:38:09.650 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: performTraversals mFirst=false windowShouldResize=false viewVisibilityChanged=false mForceNextWindowRelayout=false params={(1606,95)(708x378) gr=TOP START CENTER DISPLAY_CLIP_VERTICAL sim={state=unchanged adjust=pan} ty=APPLICATION_SUB_PANEL fmt=TRANSLUCENT surfaceInsets=Rect(54, 54 - 54, 54) (manual)
10-07 11:38:09.650 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   fl=41840218
10-07 11:38:09.650 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   pfl=42018000
10-07 11:38:09.650 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   bhv=DEFAULT
10-07 11:38:09.650 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   fitTypes=STATUS_BARS NAVIGATION_BARS CAPTION_BAR naviIconColor=0
10-07 11:38:09.650 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]:   sfl=20000}
10-07 11:38:09.661 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: updateBlastSurfaceIfNeeded mBlastBufferQueue=0x784715ffb0 isSameSurfaceControl=true
10-07 11:38:09.662 32538 32538 I BLASTBufferQueue: update, w= 816 h= 486 mName = ViewRootImpl@65e552b[PopupWindow:df0b97a] mNativeObject= 0x784715ffb0 sc.mNativeObject= 0x77d7250b90 format= -3 caller= android.view.ViewRootImpl.updateBlastSurfaceIfNeeded:2898 android.view.ViewRootImpl.relayoutWindow:9847 android.view.ViewRootImpl.performTraversals:3884 android.view.ViewRootImpl.doTraversal:3116 android.view.ViewRootImpl$TraversalRunnable.run:10885 android.view.Choreographer$CallbackRecord.run:1301 
10-07 11:38:09.662 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: Relayout returned: old=(1606,95,2314,473) new=(1606,95,2314,473) req=(708,378)0 dur=11 res=0x0 s={true 0x78d710e4b0} ch=false seqId=0
10-07 11:38:09.696 32538 32538 I ViewRootImpl@65e552b[PopupWindow:df0b97a]: MSG_WINDOW_FOCUS_CHANGED 0 0
10-07 11:38:09.696 32538 32538 I ViewRootImpl@312d73d[SettingsActivity]: MSG_WINDOW_FOCUS_CHANGED 1 0
10-07 11:38:09.697 32538 32538 I ViewRootImpl@312d73d[SettingsActivity]: mThreadedRenderer.initializeIfNeeded()#2 mSurface={isValid=true 0x78d71deed0}
10-07 11:38:09.697 32538 32538 D IntegrationRepository: isAppLocked(): false. (LockEnabled: false, appActive: true, expireMillis: 1696689409206, currentMillis: 1696689489697)
10-07 11:38:09.698 32538 32538 D IntegrationRepository: setAppActive(): true
10-07 11:38:09.698 32538 32538 D InputMethodManager: startInputInner - Id : 0
10-07 11:38:09.698 32538 32538 I InputMethodManager: startInputInner - mService.startInputOrWindowGainedFocus
10-07 11:38:09.791 32538 32547 D InputTransport: Input channel destroyed: 'ClientS', fd=113
10-07 11:38:09.791 32538 32547 D InputTransport: Input channel destroyed: 'ClientS', fd=301
10-07 11:38:09.791 32538 11149 D OpenGLRenderer: setSurface called with nullptr
10-07 11:38:09.792 32538 32547 D InputTransport: Input channel destroyed: 'ClientS', fd=125

TO sent a call from home assistant to tasker on your mobile phone to run a tasker task do the following.

create an Intent Recieved Event in tasker.
give it an action name. e.g: foobar.

Hook it up to your task.

In home assistant

service: notify.mobile_app_androidphone
data:
  message: "command_broadcast_intent"
  data:
       intent_package_name: "net.dinglisch.android.taskerm"
       intent_action: "foobar"

that should do the trick.

1 Like

Just saw your question today; have you tried escaping the commas with \?
Something like

entity:{{trigger.event.data.entity_id}},state:{{trigger.event.data.new_state.state | replace(',', '\,')}}

I didn’t test it so it could be totally wrong…

Another thing to try could be enclosing the quoted version with single quotes:

'entity:{{trigger.event.data.entity_id}},state:"{{trigger.event.data.new_state.state}}"'