Jump to content

Potential methods to update remaining scene members on discrete status changes to single member


ncoig

Recommended Posts

Hey All,

 

So we all know that when you have multiple switches, KPL buttons, etc., as members of a scene, and you press any of the members' buttons (assuming all are CONTROLLERS) of the scene, that the remaining members will update with the correct status, whether that be the rocker switches' status bars, or a KPL button light, etc.  

We also know that if you use the ISY, or Agave, or REST or what have you, to control the load-bearing DEVICE versus the SCENE, the remaining members of the scene will NOT update, and thus not reflect the true/current status of the load being called upon.

The solution, of course, is to control the SCENE in the ISY versus the load-controlling switch, which is all well and good, however there are some instances where things like a Lamplinc or other non-updating module can cause issues if controlled locally, or, particularly in my instance, if controlled by Google Home - causing the device to respond appropriately, but the remaining members to not reflect the correct and current status, as outlined above.

Yes, you can have Google Home control the SCENE versus the DEVICE, but then the device won't show up on your Google Home Hubs or in the Assistant app as a device at all - just a phantom that you can control by voice, but no other way. (at least in my experience)

 

Real world example and current problem:  Among others, I have a Living Room string of 8 can lights on a 5-way circuit, with 4 KPLs all having a single button set to control the load.  If I configure in the portal for Google Home to control the SCENE, versus the load-controlling DEVICE, voice commands are fine and all works correctly, but there is no visual presence in the Google Home app or in display devices like the Google Home Hub (now Nest Hub?) that show the device so you can touch versus speak commands.

Conversely, if I add it as a singular DEVICE in the portal, it shows (annoyingly in all lower case in abject defiance of my grammatically correct entry, but that's another matter) up in the list, but manipulation of the device doesn't update the scene, so 3 of the four KPLs show the incorrect status.

 

In years past, I simply had an updating program that would watch for status changes and update the KPL every so often, which worked well enough, but in this installation, there are far too many of these instances to be practical, and I feel doing so would be too taxing on the ISY to continually scan for changes, and likely cause sluggishness elsewhere.

 

So has anyone come up with a clever way around this?  I can just monitor the status of the switch in a program, and when the status changes from OFF to ON, or vice versa, I can activate the scene or deactivate it, but that kills any dimming control, because activating the scene goes to the pre-determined on rate, which results in, for example, the light turning on to 20% as I ask, then ramping the rest of the way to the scene's set 70%.

I can manually program a watch program for each scene, but I was hoping for something that was simpler - and simply querying the scene doesn't update the members as I'd hoped.

 

Any ideas?  I searched for this but found nothing on point -- if it's there, kindly point me that way.

 

 

Regards,

 

-N

Link to comment

...and I should have added that I have come up with this solution, I just don't think it's very elegant... but it does seem to work without adverse effects...

 

Scene UD-Den Fan - [ID 0xxx][Parent 0xxx]

If
        Status  'Den / Den Fan*' is Off
 
Then
        Set Scene 'Den / Den Fan (MW)' Off
 
Else
        Set Scene 'Den / Den Fan (MW)' Fade Up
        Set Scene 'Den / Den Fan (MW)' Fade Down
 

HOWEVER --- this method does not work on lighting that is dimmable, so it's useless for the problem originally posted...

 

-N

 

Link to comment

I don't think I'm directly responding to your question, so I apologize if this isn't any help.

I use the "adjust scene" functionality in a program to achieve something like what you describe.  I have a 4-way in a dark hallway that I want to turn on at different levels depending on sunrise/sunset.  This scene is kicked off by a motion sensor, but you could easily have a state variable kick it off, or just run it from Agave if you like.  The beauty is that the lights (and all the switches in the scene) turn on at the proper level at the proper time.

When this program is run, it takes a few seconds to write the changes to the switches, so it's not instantly effective. 

West Hall On-Level - [ID 00B7][Parent 000A]

If
        From    Sunset  +  1 hour 
        To      Sunrise (next day)
 
Then
        In 'Devices / dirWestHall / msWestHallNorth-Sensor' Set 'Devices / dirWestHall / sldWestHallEntrance' To 25% in 0.5 seconds, 1 retry
        In 'Devices / dirWestHall / msWestHallNorth-Sensor' Set 'Devices / dirWestHall / sldWestHallLaundry' To 25% in 0.5 seconds, 1 retry
        In 'Devices / dirWestHall / msWestHallNorth-Sensor' Set 'Devices / dirWestHall / sldWestHallOffice' To 25% in 0.5 seconds, 1 retry
 
Else
        In 'Devices / dirWestHall / msWestHallNorth-Sensor' Set 'Devices / dirWestHall / sldWestHallLaundry' To 50% in 0.5 seconds, 1 retry
        In 'Devices / dirWestHall / msWestHallNorth-Sensor' Set 'Devices / dirWestHall / sldWestHallEntrance' To 50% in 0.5 seconds, 1 retry
        In 'Devices / dirWestHall / msWestHallNorth-Sensor' Set 'Devices / dirWestHall / sldWestHallOffice' To 50% in 0.5 seconds, 1 retry
 

 

Link to comment

I don't have/use google home, so this may or may not help you.

I have a number of single device loads controlled by n-way switching (mostly keypad link buttons and mini remotes).  When we added Alexa I went thru this same issue.  Keeping the scene in sequence (on or off) and being able to DIM via Alexa seemed at first like it was impossible.  I finally settled on a series of helper programs, they are detailed in this post:

The first set is the hardest to set up, once you've got the concept working, you can COPY FOLDER in the ISY programming interface and then more quickly edit the copy for the next location.  When I started down this road I had planned to set it up for every multi-switch dimmable scene possible. Along the way tho I realized there were only certain places (mostly all of which are table lamps or similar) that I really cared about Alexa being able to set the level, as a result there's only about 10 or 12 scenes total that I've set up for this.  The rest Alexa can control as normal via the scene and there is no granular dimming via alexa... I can still walk to the wall of course and do it for a special occasion tho.

Recently I set up Home Assistant as a front end to the ISY, the programs in the linked thread above got a few tweaks to extend the functionality, now for example I can control the table lamp from the keypad link buttons, Alexa or Home Assistant and the keypad link buttons stay on sync regardless of which platform controlled the lamp last. 

Link to comment
On 2/22/2021 at 8:05 AM, Bumbershoot said:

I don't think I'm directly responding to your question, so I apologize if this isn't any help.

I use the "adjust scene" functionality in a program to achieve something like what you describe.  I have a 4-way in a dark hallway that I want to turn on at different levels depending on sunrise/sunset.  This scene is kicked off by a motion sensor, but you could easily have a state variable kick it off, or just run it from Agave if you like.  The beauty is that the lights (and all the switches in the scene) turn on at the proper level at the proper time.

 

 

Thank you for the idea - regrettably, this isn't the primary concern -- rather I need to be able to control the load-bearing switch directly, but have it respond as the scene to keep the other indicators on KPL's in sync.  

 

Thanks, though!

 

-N

Link to comment
On 2/21/2021 at 8:56 PM, ncoig said:

In years past, I simply had an updating program that would watch for status changes and update the KPL every so often, which worked well enough, but in this installation, there are far too many of these instances to be practical, and I feel doing so would be too taxing on the ISY to continually scan for changes, and likely cause sluggishness elsewhere.

I'm far from an expert, so consider this as much a question and not so much a statement; my understanding is the number of programs isn't going to be such a problem but rather the number of programs running at the same time could be problematic.  Unless you have a 7 year old running around the house hitting every button they can reach and yelling at Google to turn lights on/off at the same time (which I live with as a very real life scenario), I don't see your program to keep things in sync as actually being much load on ISY.  The programs only get triggered when a light (device) status changes, ISY doesn't scan for changes.  It would take a bit of administrative work to get it all setup, but as Bill points out copying the program/folder would speed the process up. I think I remember there being an upper limit on the number of programs allowed, but that was in the thousands.

I can't think of any more elegant solution.

@MrBill You could do similar with Google like you do with Alexa, using a variable to control the light/scene.  However, don't call it a scene but instead use "light" as the category.   As @ncoigmentioned, scenes in Google work for voice but don't show in the UI (weird!).  But, calling it a light makes it show as a dimmer.  And, you could say "Hey Google, set test light to 55%" and it would set the variable to 55.

Test.png.1ea1f083e4fc05ea52318c251225bc64.png

test2.thumb.png.cb20f606ec2a40f9967df6455d4a697a.png
 

test-var.thumb.png.0139a8046daef0624a5d67762dac25ae.png

Link to comment
33 minutes ago, Screw Loose Dan said:

@MrBill You could do similar with Google like you do with Alexa, using a variable to control the light/scene.  However, don't call it a scene but instead use "light" as the category.   As @ncoigmentioned, scenes in Google work for voice but don't show in the UI (weird!).  But, calling it a light makes it show as a dimmer.  And, you could say "Hey Google, set test light to 55%" and it would set the variable to 55.

Thanks for checking it out in the google ecosystem, I thought the same approach would likely work.

Link to comment
  • 2 weeks later...

Yes, what Screw Loose Dan said... it's is much simpler and does not require any programming at all... just to add your scene to the portal, but have the portal tell Google to treat the scene as as a light. This is what I do, and it works perfectly. The only additional thing you need to do is that for your non-load controllers/responders, like the A B C D buttons on a KPL that may be part of the scene... you have to explicitly configure the scene to turn those On using the INSTEON menu pick in the scene member configuration panel. The load/controlling device can usually be left at Default in the menu pick. This is all with the 5.3 firmware, btw.

Link to comment

Archived

This topic is now archived and is closed to further replies.


  • Recently Browsing

    • No registered users viewing this page.
  • Who's Online (See full list)

  • Forum Statistics

    • Total Topics
      36.9k
    • Total Posts
      370.2k
×
×
  • Create New...