Subscription to double tapped buttons

and it worked like a charm.

i tried setting button 1 double tap to set the room to engaged by using the virtual button driver which has double tap functionality as @mike.maxwell pointed out.

virtual double tap of button 1 changed the room to engaged.

@doug please give the same a try?

meanwhile i am checking all the button subscriptions in the code to make sure i didnt make a copy pasta error any where.

Tested again. Virtual button still doesn't work either.
Was there an update I missed? Checking your github...

No, I have the latest. Very weird that it works for you but not me.
Doesn't show the event subscription either.

Source Event Handler Filter
Wind Song (Location) mode modeEventHandler false
Foyer Motion Sensor motion.active motionActiveEventHandler true
Foyer Motion Sensor motion.inactive motionInactiveEventHandler true
Foyer Chandelier pushed.1 buttonPushedEventHandler true
Back Porch Multi Sensor illuminance luxEventHandler true
Wind Song (Location) sunrise scheduleFromToTimes false
Wind Song (Location) sunset scheduleFromToTimes false
Wind Song (Location) webCoRE.pistonList webCoRE_handler false

dont see any obvious copy pasta error.

try the button in engaged settings ... just to be sure.

the device subscription shows up for me … think why that is missing is part of the key to get to:

I don't follow what you're asking. I do have it in Engaged. And I have button 2 doubleTap in asleep.
Neither are being 'heard'

  1. create a virtual button using the virtual button driver.
  2. in engaged settings for the room set the button as double tap / virtual button / button one
  3. from devices go to the virtual button device
  4. double tap button 1 there using the commands listed

does the room get set to engaged?
does the subscription show now?

Ya that's how I'm doing it.

I add a comment in the child app, and saved (just to get a refresh going).
I removed the doubleTap configuration from the Engaged setting and click done all the way out.
I then went back into the room Engaged setting and setup the Virtual Button for doubleTap.1.

It did not subscribe and does not work.

ok. let me try with the code off github … was using local.

just tried with the code off github still subscribes fine:

i am puzzled.

which version of HE are you on?

1.1.2.121

the test app … does it show any subscriptions to this virtual button?

I'll get a look at that, but I think I should point out an oddity of how room manager is working, versus what you have said.

I'm thinking, that whatever has happened, room manager is not running a proper update()
I can clearly see the code you have implemented. There is nothing wrong with it. What I can't see, is the code inside the Hubitat engine. My thoughts are, that my installation may have been wrapped around the axel, so to speak.

In my experience, sometimes frameworks freak out. And I consider Hubitat a framework as much as a firmware.

I'm considering, deleting everything and starting from scratch. At the least it will eliminate that as a consideration. At the most vindication for you. :grinning:

i hear you … thank you … but dont need vindication. need HE and then rooms manager to work right for you.

I am guessing from what we have seen so far … when you try using the virtual device with the rooms test app you will not see any subscription.

at that point i am going to post the following and tag mike.maxwell for help. πŸ˜€

please see @doug post above. even when using a virtual button device this test app is showing no subscriptions to the virtual button for @doug.

for me it always shows the subscriptions in the app info details.

something doesnt seem right here.

thank you.

definition	(
    name: "rooms test app",
    namespace: "bangali",
    author: "bangali",
    description: "rooms test app",
    category: "My Apps",
    iconUrl: "https://cdn.rawgit.com/adey/bangali/master/resources/icons/roomOccupancy.png",
    iconX2Url: "https://cdn.rawgit.com/adey/bangali/master/resources/icons/roomOccupancy@2x.png",
    iconX3Url: "https://cdn.rawgit.com/adey/bangali/master/resources/icons/roomOccupancy@3x.png"
)

preferences {
	page(name: "roomsTest", title: "Rooms Test")
}

def roomsTest()     {
	dynamicPage(name: "roomsTest", title: "Rooms Test", install: true, uninstall: true)      {
        section("")      {
            input "roomButton", "capability.doubleTapableButton", title: "Button?", required: true, multiple: false
        }
    }
}

def installed()     { 
	log.debug "installed"    
    initialize() 
}

def updated()       {
    log.debug "updated"
    initialize()
    subscribe(roomButton, "doubleTapped", buttonEvent)
	subscribe(roomButton, "doubleTapped.1", buttonOnlyEvent)
}

def	initialize()    {
    log.debug "intialized"
    unsubscribe()
    unschedule()
}

def buttonEvent(evt)        {
    log.debug "buttonEvent $evt.name:$evt.value"
}

def buttonOnlyEvent(evt)    {
    log.debug "buttonOnlyEvent $evt.name:$evt.value"
}

If you are trying to figure out if this some sort of platform issue, do the following prior to starting over.
Wire up the virtual button to an instance of button controller and some other actuator, if that doesn't work and doesn't subscribe then we have an issue.

that test app should show a subscription. if it does not we have an issue … yes?

Please follow my instructions first using built in components, then move on to other testing.

HE supports loading user apps. if it does not work with an user app its an issue … yes?

this user app is about as simple as it gets. if it does not work with this … does it really matter if it only works with built in components?

thank you.

definition	(
    name: "rooms test app",
    namespace: "bangali",
    author: "bangali",
    description: "rooms test app",
    category: "My Apps",
    iconUrl: "https://cdn.rawgit.com/adey/bangali/master/resources/icons/roomOccupancy.png",
    iconX2Url: "https://cdn.rawgit.com/adey/bangali/master/resources/icons/roomOccupancy@2x.png",
    iconX3Url: "https://cdn.rawgit.com/adey/bangali/master/resources/icons/roomOccupancy@3x.png"
)

preferences {
	page(name: "roomsTest", title: "Rooms Test")
}

def roomsTest()     {
	dynamicPage(name: "roomsTest", title: "Rooms Test", install: true, uninstall: true)      {
        section("")      {
            input "roomButton", "capability.doubleTapableButton", title: "Button?", required: true, multiple: false
        }
    }
}

def installed()     { 
	log.debug "installed"    
    initialize() 
}

def updated()       {
    log.debug "updated"
    initialize()
    subscribe(roomButton, "doubleTapped", buttonEvent)
	subscribe(roomButton, "doubleTapped.1", buttonOnlyEvent)
}

def	initialize()    {
    log.debug "intialized"
    unsubscribe()
    unschedule()
}

def buttonEvent(evt)        {
    log.debug "buttonEvent $evt.name:$evt.value"
}

def buttonOnlyEvent(evt)    {
    log.debug "buttonOnlyEvent $evt.name:$evt.value"
}

The vindication thing, was really just a joke.
I sincerely appreciate your's and the Hubitat staff’s work. It’s all very exceptional.

1 Like

I did as you suggested. Using the Button Controller app, I assigned the Virtual Button doubleTap.1 to turn on a light.

The doubleTapped event shows in the logs, the light does not come on and nothing for the Button Controller application shows in the logs.

The event subscription exists in the Button Controller app as expected, however.

Event Subscriptions

Source Event Handler Filter
TestVirtualButton pushed.1 buttonHandler true
TestVirtualButton doubleTapped.1 buttonHandler true

From a subscription pov there's no difference between a user app and a system one.