Jump to content

Program for Total Ceiling Fan Control without FanLinc


Recommended Posts

Posted

I need to set some background information.  Previously I have been controlling each of my ceiling fans with an Insteon FanLinc and 8 Button KPL.  I created 3 scenes, one each for High, Medium, and Low of the Fan.  For this discussion the light control is not an issue so I will stay away from that.  I use B for low, C for Medium, and D for High.  Each scene has 4 devices in it, the fan motor, and the 3 KPL buttons.  I set the High scene to turn the fan motor on High, the D button ON, and the B and C buttons to Off.  For each of the 2 other scenes I adjust the fan motor speed and and appropriate button configuration for that speed.

This configuration works nicely for two things.  First, if the fan is running on High with the D button lit and I press the C button, the motor drops down the medium speed, the C button lights up On and the D LED goes Off.  The same with B and so on.  Secondly I have all 3 scenes tied to Alexa voice as three different switches.  If I give the voice command for High, Medium, or Low the appropriate KPL buttons go On and Off.  So no matter if I press a KPL button on the wall or issue a voice command one and only one of the 3 buttons is lit if the motor is on.  If the motor is off all 3 of those button LEDs are Off.  This is all possible because all the devices in the scene are Insteon devices.

That was the background/history.  FanLinc is dead to me for a few reasons.  1.  Newer ceiling fans seem to be moving to DC motors instead of AC motors and FanLinc can not be installed in a DC fan.  2. FanLinc has always had an issue by burning itself out over time if you don't religiously start it on High and step it down to a lower speed from there if you are starting it from a dead stop.  If you start from a dead stop and the first speed is low all the time the device won't last long.  3.  I don't see Insteon putting engineering time/dollars into building a new FanLinc that doesn't fix these two problems.  There are two many other companies already doing that.

I finally found a nice replacement for FanLinc.  The Bond Bridge Pro.  I can add almost any non smart/RF fan remote control to the Bond Bridge Pro and thanks to PG3 and Goose66's Node Server I now have my non-Insteon fans in the Admin Console as a native devices.  Since the fans are not Insteon I cannot create a scene that has the buttons and the fans in a scene.  But I can accomplish almost the same thing as before with scenes and programs.  Everything works perfectly as before except one thing.  Since I now use the program instead of a scene for Alexa the fan speed changes correctly but I can't trigger the corresponding KPL button light changes to happen like I did before.  There's no programming option to turn the button light On or Off.  I tried some things with turning the scenes On or Off but I just kept running into program looping issues.

Does anyone have any solutions that gets this last small piece over the finish line?

Posted

KPL buttons can only be controlled by scenes. So you are on the right track. Proper programming can easily overcome your challenge. Will need a bit more information on the programs you have and so that we can see the loop you are creating and overcome it. 

I use Alexa to change the fan motor speed and then four programs that adjust the scene. Here is an example:

Mbed Fan High - [ID 0360][Parent 0293]

If
        'MBed Fanlinc Fan' Status is High
 
Then
        Set 'Ceiling Fans / Master Bedroom / MBed Fan on High' On

Here is the Alexa setting for a great room fan. Master is the same. 
image.jpeg.e335ac7a86e358ce8c2f613cbe078223.jpeg

Posted (edited)

Pretty simple, here's one of the 3...

Lounge Fan High (Program) < In Alexa as a Switch>

If

'Lounge / Lounge Keypad-D' Status is On

Then

Run Program 'Lounge Fan Low' (Else Path)

Wait 2 Seconds

Run Program 'Lounge Fan Medium' (Else Path)

Wait 2 Seconds

Set 'Node Servers / Bond / Bond Bridge / Lounge Fan' Set Speed 5

Else

Set 'Node Servers / Bond / Bond Bridge / Lounge Fan' Set Off

Wait 1 Second

Run Program 'Lounge Fan Low' (Else Path)

Wait 1 Second

Run Program 'Lounge Fan Medium' (Else Path)

Lounge Button Group D (Scene)

Lounge Keypad-B (Off) Responder

Lounge Keypad-C (Off) Responder

Lounge Keypad-D (On) Controller

Notes

The extra Run Program (Else Path) lines are for making sure the the other 2 programs end properly and change the program icon status color to match it's condition in the AC.  (Clean Housekeeping)

If I try to turn the scene on or off in the program for the purpose of activating the proper button light it loops and I can see why.  I can't even break/stop the program loop without rebooting my Eisy.

This config works very well except if the program is triggered with something other than pressing a button a.k.a Alexa, I can't set the proper light status on the KPL buttons.

 

 

Edited by theitprofessor
Posted

Several things come to mind. If you get into a loop and have the AC open, you can sometimes right click on the programs and stop them or disable them to get the ISY to stop looping w/o rebooting. 

1) you really dont need all those Run else's . That is where your loops are coming from.  For example if this program runs the low else path and in the low else path, it runs the high else path, you begin the loop. I would remove them. You also dont want the other programs to run their else's, as they will also turn off the bond bridge when in fact you want the Bond Bridge on high.

2) Depending on how you have Alexa set up, you may not need any programs at all. Start by adding the Bond bridge to each of the scenes. This is my Scene with the FanLinc motor in it: (my fan high button on the KPL is the controller of the scene). In this manner, each button press will keep all the button lights and the bond bridge in sync with each other

image.thumb.jpeg.e9cd5ee0100428d88d7f3ee5fd136e0d.jpeg

For Alexa, there are two things. How will Alexa trigger the ISY... For a long time, I simply tied a custom voice command (routine) in Alexa to the scenes and did not use any programs at all. However, I found that she often got confused so I added my Fanlinc motor to Alexa under the category of FAN, and added 4 simple programs.

Alexa voice command now turns the fanlinc motor to low, med or high. (Alex turn great room fan to low)

Once the fan linc motor changes, it triggers a very simple program that runs the corresponding scene to sync the buttons. Yes, these programs will run redundantly when I push a KPL button which triggers a scene that turns on the motor, but it does not cause a loop because once the status of the fanlinc is recognized as high, it wont re-trigger it if it gets set to high again. But at the same time all the other programs will turn false, which is your housekeeping concern. 

GR Fan High - [ID 0368][Parent 0367]

If
        'GR Fanlinc Fan' Status is High
 
Then
        Set 'Ceiling Fans / Great Room / GR Fan on High' On
 
Else
   - No Actions - (To add one, press 'Action')

 

Hope this helps. If not, try reaching out again... good luck. 

Posted

I really appreciate you are trying to help but you really need to read through my history/description again.  Forget about the looping, I already knew that and removed it.  This is not about the embedded runs, they are gone.  The key take aways are the fan control is NOT a FanLinc anymore so I can't use a scene to change the fan speed.  I can only use a program to change the speed and it works fine.  The real issue I'm having and it's minor is when one of the 3 Alexa speed voice commands are given it only sets the fan to the correct speed.  I'd like for it's corresponding KPL button status to change to On also but there doesn't seem to be a way to do that programmatically.  Your suggestion has the fan control and the buttons in the same scene.  I use to have that and you're right it worked fine.  I can't use that because the fan control is NOT FanLinc anymore.

Posted (edited)
1 hour ago, theitprofessor said:

I really appreciate you are trying to help but you really need to read through my history/description again.  Forget about the looping, I already knew that and removed it.  This is not about the embedded runs, they are gone.  The key take aways are the fan control is NOT a FanLinc anymore so I can't use a scene to change the fan speed.  I can only use a program to change the speed and it works fine.  The real issue I'm having and it's minor is when one of the 3 Alexa speed voice commands are given it only sets the fan to the correct speed.  I'd like for it's corresponding KPL button status to change to On also but there doesn't seem to be a way to do that programmatically.  Your suggestion has the fan control and the buttons in the same scene.  I use to have that and you're right it worked fine.  I can't use that because the fan control is NOT FanLinc anymore.

As mentioned, you can not turn KPL buttons on directly from a program, however, if a KPL button is in a scene and a program turns that scene on, the KPL button turns on.  So, you need to have a scene that the KPL button is in, even if nothing else is in the scene.  Then using the same program that turns on your Bond Bridge, have it also turn that scene on, and similarly for turning it off.

Edited by apostolakisl
Posted

Still can't set the fan speed in a scene, only on or off.  Scenes are designed for grouping Insteon devices only and setting their capabilities not other devices.  You can add other devices but there are limitations and this is one of them.

But I have an idea I'm about to try.  I already have 3 different scenes with KPL buttons in them only (no fan), and 3 different programs that monitor each button's on status and set the corresponding fan speed.  The problem is turning the fan off.  If I put the fan off command in the (Else) line, the 3 programs conflict with each other going from say High to Low.  You would have to turn High off first and then turn Low on.  So my idea is to Not use an (Else) Fan off command in the 3 speed programs and create a 4th program that monitors the status of the 3 buttons and if all 3 are off run the (Else) that turns the fan off and do not have any lines in the (Then).  Then for Alexa use the 3 button scene as voice commands.  I'll report my results after I program this idea and test it.       

  • Like 1
Posted (edited)

Bingo problem solved.  All functions are working perfectly.  Either pressing keypad buttons or Alexa voice commands it all works the same.  I will let it all bake in for a few days to be sure but if anyone is interested how I did it this is not the exact config from the AC but you'll get the idea.  I had to add delays in certain places to work correctly all the time but I started with 5 seconds and was able to shorten it to 1 second.  I also had to reverse the logic for the fan off program to work successfully all the time.  Here is the config.  I included the downlight so 4 scenes and 5 programs.

Lounge Key A (Scene) < Alexa Light < Voice Spoken < Lounge Light

Lounge Keypad-A (On) Controller

Lounge Key B (Scene) < Alexa Switch < Voice Spoken < Lounge Fan Low 

Lounge Keypad-B (On) Controller

Lounge Keypad-C (Off) Responder

Lounge Keypad-D (Off) Responder

Lounge Key C (Scene) < Alexa Switch < Voice Spoken < Lounge Fan Medium

Lounge Keypad-B (Off) Responder

Lounge Keypad-C (On) Controller

Lounge Keypad-D (Off) Responder

Lounge Key D (Scene) < Alexa Switch < Voice Spoken < Lounge Fan High

Lounge Keypad-B (Off) Responder

Lounge Keypad-C (Off) Responder

Lounge Keypad-D (On) Controller

Lounge Light (Program)

If

Lounge Keypad-A Status > Off

Then

Wait 1 second
Lounge Fan Light Set On

Else

Wait 1 second
Lounge Fan Light Set Off

Lounge Fan Low (Program)

If

Lounge Keypad-B Status is On

Then

Wait 1 second
Lounge Fan Set Low

Else

Lounge Fan Medium (Program)

If

Lounge Keypad-C Status is On

Then

Wait 1 second
Lounge Fan Set Medium

Else

Lounge Fan High (Program)

If

Lounge Keypad-D Status is On

Then

Wait 1 second
Lounge Fan Set High

Else

Lounge Fan Off (Program)

If

Lounge Keypad-B Status is On
or Lounge Keypad-C Status is On
or Lounge Keypad-D Status is On

Then

Else

Wait 1 second
Lounge Fan Set Off

 

Edited by theitprofessor
Posted
11 hours ago, theitprofessor said:

 The real issue I'm having and it's minor is when one of the 3 Alexa speed voice commands are given it only sets the fan to the correct speed.  I'd like for it's corresponding KPL button status to change to On also but there doesn't seem to be a way to do that programmatically.  

There are so many ways to do this. If you cant put the bond bridge into the scene, here are two ways.

1) have Alexa tied to programs that turn the bond bridge and scene on in the THEN.. ELSE turns the bond bridge off and the same scene off.. No IF statement. 

2) have Alexa tied to the scenes and hav e program that tests the condition of the KPL in hte IF and then sets the bond bridge on. A fourth program would be needed for the off scenerario when all kpls are off. 

Posted (edited)

The key features/criteria for my resulting config is only one of my KPL button LEDs  B,C, or D can be on at one time and it corresponds to a fan speed.  If I press D it turns the fan on high.  If I press B it not only turns the fan on low but it also turns the D button LED off.  If I press any of the 3 buttons that was lit it not only turns that button's LED off but it also turns the fan off because none of the 3 buttons would be on.  The same thing works with Alex voice commands now.  By turning any of the 3 button/key scenes on or off with voice it not only sets the fan at the corresponding speed, or off, but it turns the corresponding button/key light on or off.  This is so I can have visual confirmation of what my current condition is.  I also have the KPL LEDs set at (off 3) and (on 6).  This is so it's easy to see the keypad in the dark but not too bright and when a key is on there's a big enough difference to tell if it's on or off.  All of this was always my criteria for interaction between the fan and the KPL and still is.  Getting rid of the FanLinc made it more difficult to accomplish the same thing but I'm happy I found a way.  I can think of no other way to program this with the required criteria.        

Edited by theitprofessor
Guest
This topic is now closed to further replies.

×
×
  • Create New...