Jump to content

How to make Insteon 6-Button Ctrl status match Fan speed set with Alexa?


kzboray

Recommended Posts

So in the past I've created programs for each fan speed to set the proper status on the 6-Button keypad, but I'm wondering if there is a better way? The downside to doing it this way is that if someone uses the keypad to quickly change fan speeds it can get itself into a loop where the cloud speed and the local button speed selection are different, so it starts bouncing from one to the other. The only way to stop this is to log into the AC and disable the program momentarily.

How do all you experts accomplish making the Alexa set fan speed correctly and update the local 6-button status as well?

Edited by kzboray
Link to comment

@MrBill That is exactly how I have the FanLinc configured; 5x configuration. The problem is that when I tell "Alexa" to set the fan speed to say high, the fan indeed goes to speed setting high, but the 6-Button keypad status does not change to mirror the current fan speed.

Using an IoP 5.4.3.

Link to comment

i don't use programs but do use keypads - and a scene for each setting - on, off, low, medium, high

i would - off the top of my head - set up a variable for each setting and pass them to alexa - then program for each - when variable on, set scene on - then reset the variable value

not super graceful but i do it with blinds 

 

  • Like 1
Link to comment

@RPerrault & @MrBill First let me thank both of you for your input.

RPerrault, your described method is very similar to what I've done in the past. I was really hoping there is some kind of trick I don't know to allow the scene to work with all attributes between Alexa and the IoP. Half the job is getting done; the fan works, but the buttons not being set bugs me.

Link to comment

I would base the whole thing around a single state variable. 0,1,2,3 value for Off, Low, Med, High.

Then I would write four programs to set the variable to 0,1,2,3 Fan High, Fan Med....Fan Off

Then I would write four programs to run scenes for the KPL lamps (with a Wait 2 sec)  and fan speeds to the appropriate speed to match the variable 0,1,2,3

With Alexa I would use the four programs to control it...
...Alexa turn on medium fan.

Now you can control the fan sped from almost any program by setting the variable to the desired speed and programs can never lock each other out, or get confused. KPL lamps will change automatically, no matter where you set the fan speed variable from.

With this technique if you need to "borrow" the fan for something temporarily, like exhaust a fume or some reason to make the fan speed on high for ten minutes, then just save the fan speed variable somewhere else, set whatever you want and then restore the fan speed to what it was before the "borrow", when you are done The existing speed might be Off. It always works.

Edited by larryllix
  • Like 2
Link to comment

@kzboray the linked wiki has actually been updated to use a single scene with controllers set differently.   I use 4 different scenes for the fan and then have Alexa setup to turn on or off the correct scene.   It's expensive to eat 4 scenes per fan or fan group, and if all my fans had fanlincs i would feel that pain but reality is I don't have fanlincs everywhere, nor do I need them.

  • Like 1
Link to comment

@larryllix & @MrBill Yes that is how I have always done it. Four programs and variables, but I wanted to try the single scene method described in the wiki for 5.x as recommended by @Javi. Unfortunately it seems the single scene method while it works for setting fan speeds, does not fully work with Alexa integration. ? It controls the fan speed, but not the local buttons to show the selected fan speed based upon voice control. Manual control works perfectly. But then I've never had an issue with a bigger hammer working every time. ?

Thank you all for your comments and suggestions!

Edited by kzboray
Link to comment
2 minutes ago, kzboray said:

Unfortunately it seems the single scene method while it works for setting fan speeds, dose not full work with Alexa integration.

correct. 

The 4 scene method (shown in the wiki as the method for V4 firmware works without variables. 

To have alexa be able to control to specific speeds tho, you need the 4 scene method.

Not sure how you are using variables in conjunction with this.

Link to comment
12 minutes ago, tibbar said:

It seems sad. Year 2022 we can travel to Moon but to turn lights on and get feedback we need to almost be programmers.?

 

You need to experience VR for a while...then you will believe.

Besides,...we are not programmers, we are just script writers. :)

Edited by larryllix
Link to comment

I solved this with Home Assistant and their template feature. I used the template to create a virtual fan for each of my fans. Its status is pulled from the fan linc but each action to set the speed calls one of 4 Insteon scenes which include the KPL buttons. That way I have a single device I can control that sets everything the way I want. I then expose that virtual fan to Alexa.

Link to comment

I don't think there is a better way. I use four programs triggered by the on level of the fan and four scenes... each one will set the scene appropriately on or off.

It doesn't matter then where you turn on/off the fan from the LEDs will stay in sync...

 

Here is one of mine for Med setting as example and calls a scene which set the fan med and all the other keypad buttons off.

 

Master Bedroom Fan Med - [ID 003C][Parent 0033]

If
        'Master Bedroom / Master Bedroom Fan' Status is Medium
 
Then
        Set 'MBedroom Fanlinc Scenes / Master Bedroom KPL Fan Med' On
 
Else
        Set 'MBedroom Fanlinc Scenes / Master Bedroom KPL Fan Med' Off
 

 

 

Edited by brians
Link to comment

You can do this with 3 scene's and No programs.

3 scenes"
High
Med
Low

Set all the 3 buttons for High, Med, Low to Non-Toggle ON
Set the off button to Non_toggle OFF

make each button a controller for the respective scene.
Make the off button a second controller for any of the scenes.
Make sure to add the other buttons as a responder (if it's not the controller)

Make the appropriate Fan node a responder for scenes.

You can use Multiple keypads for the fan or fan group.
You can use Multiple IOlincs (fan groups).

No programs needed.

Have alexa turn on the appropriate scene.  Pick any scene to use for off.

  • Like 1
Link to comment

Have alexa turn on the appropriate scene.  Pick any scene to use for off.


The problem with this is then you can’t tell Alexa to set the fan to a level or have the right level displayed. You end up with 3-4 different devices as you need one for each scene.
Link to comment
1 minute ago, apnar said:

The problem with this is then you can’t tell Alexa to set the fan to a level or have the right level displayed. You end up with 3-4 different devices as you need one for each scene.

 

Yes you can. Use multiple scenes.  I'm using 4 not 3 but it can actually be done in 3.

image.thumb.png.29a14db5b8b3831282a30b95aceb1f73.png

 

image.thumb.png.ee1fdf162fe79aaafc91f7246ee684ed.png

image.thumb.png.07f233f4280398083503d12cab2077af.png

image.thumb.png.5bba210dec85e7c469cad7b4bcf649e9.png

 

Alexa will keep the keypad button in sync with this method.

Link to comment
Yes you can. Use multiple scenes.  I'm using 4 not 3 but it can actually be done in 3.
 
Alexa will keep the keypad button in sync with this method.


What are exposing to Alexa though? Wouldn’t you need to expose all 4 scenes, each as their own device for this to work. I’d think on the Alexa side it’d look like 4 on/off switches.
Link to comment

In case anyone is interested this is an example of the config I use in HA for one of my fans (with HA talking to my ISY).  In this case the real fanlinc is "fan.guest_room_fan" and I'm creating a new virtual fan called "v_guest_room_fan".  I also have 4 scenes guest_room_fan_med (and off, high, low) which do what you expect and include the KPL buttons.  I have it set so a "on" turns it on at medium:

fan:
  - platform: template
    fans:
      v_guest_room_fan:
        unique_id: v_guest_room_fan_id
        friendly_name: "Guest Room Fan"
        value_template: "{{ states('fan.guest_room_fan') }}"
        percentage_template: "{{ states.fan.guest_room_fan.attributes.percentage | float }}"
        turn_on:
          service: switch.turn_on
          entity_id: switch.guest_room_fan_med
        turn_off:
          service: switch.turn_on
          entity_id: switch.guest_room_fan_off
        set_percentage:
          service: switch.turn_on
          data_template:
            entity_id: >
              {% if percentage > 90 %}
                switch.guest_room_fan_high
              {% elif percentage > 50 %}
                switch.guest_room_fan_med
              {% elif percentage > 10 %}
                switch.guest_room_fan_low
              {% else %}
                switch.guest_room_fan_off
              {% endif %}
        speed_count: 3

I do this for every fan in my house, then I expose just the virtual fan to Alexa (via HA instead of ISY).

It'd be cool if this sort of thing was built into ISY Portal.  It might be possible to do something like this with a Node server as well, but I don't know of any today that'd do it.

  • Like 1
Link to comment
It seems sad. Year 2022 we can travel to Moon but to turn lights on and get feedback we need to almost be programmers.
 

Seems sad that light people went to the moon with rockets and computers probably less powerful than the ISY but you can’t figure out your fans.


Sent from my iPhone using Tapatalk
Link to comment

Microprocessors did not exist in the public until 1970-71.

Apollo 11 was 1969.

Quote

Not that the Apollo Guidance Computer was much to look at. At first glance, it appeared like a brass suitcase in two parts, measuring a total of 24 × 12.5 × 6.5 in (61 × 32 × 17 cm) and weighing in at 70 lb (32 kg). Inside, it isn't even very impressive by modern computer standards, having about as much oomph as a smart bulb with a total of about 72 K of memory and a 12-microsecond clock speed.

https://newatlas.com/apollo-11-guidance-computer/59766/

 

Edited by larryllix
Link to comment
10 hours ago, TrojanHorse said:


Seems sad that light people went to the moon with rockets and computers probably less powerful than the ISY but you can’t figure out your fans.


Sent from my iPhone using Tapatalk

First of all I did not attack anyone or try to put anyone down (and didn't say I or we can not figure it out)so don't be an a..hole.

Link to comment

I actually opened a ticket with UDI, just to verify I was doing things correctly. Michel pointed me to the wiki, which I should have read more carefully. Here it is.

"NOTE: If using portal connections (i.e. Alexa or Google Home) the user may wish to choose the 4 Scene method (indicated below) for version 4.x. The multi-controller, single scene scheme used in the version 5.x examples, do not allow for speed control and keypad button to match when the speed is adjusted via the portal.

 

In short, You need 4 different scenes one for each speed and backlight combination. Each scene is in charge of ensuring that the fan speed follows the button. And, the scene itself (the circular multi color icon) is what you should use for Alexa. Not the device.

 

The reason this is the case is because, although you can control the backlight for KPLs, but you cannot make them send a command as if you were clicking on them (no command by proxy). So, you will need to send the command to the parent scene. And, thus, you will need 4 scenes if you want to use Alexa."

Link to comment
23 hours ago, kzboray said:

@larryllix & @MrBill Yes that is how I have always done it. Four programs and variables, but I wanted to try the single scene method described in the wiki for 5.x as recommended by @Javi. Unfortunately it seems the single scene method while it works for setting fan speeds, does not fully work with Alexa integration. ? It controls the fan speed, but not the local buttons to show the selected fan speed based upon voice control. Manual control works perfectly. But then I've never had an issue with a bigger hammer working every time. ?

Thank you all for your comments and suggestions!

Due to how KPLs and insteon communicates, this does require a work around.  The first issue is KPL buttons are only controllable by a scene. Second is we need to keep buttons in sync, and finally the limitations of Alexa.  

If using the V.5 method with one scene for physical control, then  do the following.  This method is tested with rapid button presses so things will not get out of sync ?

Create 3 additional scenes, one for high/med/low with all kpl buttons as responders in each scene, ISY should only allow responders if the V.5 method was setup correctly. For each scene set the the corrisponding high/med/low kpl button to action ON (default) and the other buttons to OFF.  This will keep things in sync. DO NOT add the fan motor to the scenes.

Create 4 programs one for high/med/low/off.  For the high/med/low In the IF condition monitor Motor Status and a single KPL button status, i.e if fan is low and KPL button corresponding to low is OFF, set the low scene ON.  For the off program monitor motor status off and (kpl high is on OR kpl med is on OR kpl low is On). Then set any one of the scenes created above to off.

  • Thanks 1
Link to comment
15 minutes ago, Javi said:

Due to how KPLs and insteon communicates, this does require a work around.  The first issue is KPL buttons are only controllable by a scene. Second is we need to keep buttons in sync, and finally the limitations of Alexa.  

If using the V.5 method with one scene for physical control, then  do the following.  This method is tested with rapid button presses so things will not get out of sync ?

Create 3 additional scenes, one for high/med/low with all kpl buttons as responders in each scene, ISY should only allow responders if the V.5 method was setup correctly. For each scene set the the corrisponding high/med/low kpl button to action ON (default) and the other buttons to OFF.  This will keep things in sync. DO NOT add the fan motor to the scenes.

Create 4 programs one for high/med/low/off.  For the high/med/low In the IF condition monitor Motor Status and a single KPL button status, i.e if fan is low and KPL button corresponding to low is OFF, set the low scene ON.  For the off program monitor motor status off and (kpl high is on OR kpl med is on OR kpl low is On). Then set any one of the scenes created above to off.

That sounds exactly how I do it.

Regarding Alexa I just have a simple in off spoken that sets it to med I think because I had issues with Alexa differentiating spokens that were close to one another - didn’t seem to know the difference between fan high fan medium etc. maybe it’s better now.

Link to comment
Guest
This topic is now closed to further replies.

×
×
  • Create New...