Charmed Quark Systems, Ltd. - Support Forums and Community
ISYv2 Driver - FanLinc - Printable Version

+- Charmed Quark Systems, Ltd. - Support Forums and Community (https://www.charmedquark.com/vb_forums)
+-- Forum: General Discussion (https://www.charmedquark.com/vb_forums/forumdisplay.php?fid=3)
+--- Forum: CQC Support (https://www.charmedquark.com/vb_forums/forumdisplay.php?fid=9)
+--- Thread: ISYv2 Driver - FanLinc (/showthread.php?tid=11045)



ISYv2 Driver - FanLinc - simplextech - 02-03-2020

Dean,

Interesting thing I've noticed with the FanLinc device.  The relay/motor device is showing as a 'Button' in CQC.

Insteon FanLinc devices are a two component device to control the Light and Motor portion of ceiling fans.  The Motor control portion actually works just like a "Dimmer" as it sets the motor speed to a percentage level.  This is the same as most fan controllers from other vendors work as well. 

I don't know how CQC reflects other fan controllers such as those from Lutron?  I'll find out here in a few days as I will be installing a Lutron fan controller to replace one of these FanLinc's so I will have it for comparison. 

I also don't know how a Fan controller should be represented within CQC... It's not a "Light" but it uses the same properties as a "Dimmer" but has preset levels for speeds.  It's also not a "Relay" because it has percentage levels for different speeds.  I know the percentage level for the Insteon FanLinc's and within the ISY they are represented as speeds of off/low/medium/high.  Can something similar be done within CQC for fan controllers and their speed?

Code:
<node flag="128" nodeDefId="DimmerLampOnly">
        <address>51 D3 4A 1</address>
        <name>MBR-FanLinc-Light</name>
        <parent type="3">2801</parent>
        <type>1.46.69.0</type>
        <enabled>true</enabled>
        <deviceClass>0</deviceClass>
        <wattage>0</wattage>
        <dcPeriod>0</dcPeriod>
        <startDelay>0</startDelay>
        <endDelay>0</endDelay>
        <pnode>51 D3 4A 1</pnode>
        <ELK_ID>A16</ELK_ID>
        <property id="ST" value="0" formatted="Off" uom="100" />
    </node>
    <node flag="0" nodeDefId="FanLincMotor">
        <address>51 D3 4A 2</address>
        <name>MBR-FanLinc-Motor</name>
        <parent type="3">2801</parent>
        <type>1.46.69.0</type>
        <enabled>true</enabled>
        <deviceClass>0</deviceClass>
        <wattage>0</wattage>
        <dcPeriod>0</dcPeriod>
        <startDelay>0</startDelay>
        <endDelay>0</endDelay>
        <pnode>51 D3 4A 1</pnode>
        <ELK_ID>B01</ELK_ID>
        <property id="ST" value="0" formatted="Off" uom="100" />
    </node>



RE: ISYv2 Driver - FanLinc - Dean Roddey - 02-03-2020

So one is a boolean and one a 'dimmer' style motor speed type thing? What does the boolean one do, just turn the light off and on? The driver is showing it like it does because it doesn't know it's a fan controller. It would have to know specifically that it is, otherwise all the 1.x.x.x ones are treated as lights or buttons I think depending on flags.


RE: ISYv2 Driver - FanLinc - simplextech - 02-03-2020

This is the 'Light' node which is a dimmer.  It is processed and added to CQC as a LIGHT and has dimmer functions and works.

Code:
<node flag="128" nodeDefId="DimmerLampOnly">
        <address>51 D3 4A 1</address>
        <name>MBR-FanLinc-Light</name>
        <parent type="3">2801</parent>
        <type>1.46.69.0</type>
        <enabled>true</enabled>
        <deviceClass>0</deviceClass>
        <wattage>0</wattage>
        <dcPeriod>0</dcPeriod>
        <startDelay>0</startDelay>
        <endDelay>0</endDelay>
        <pnode>51 D3 4A 1</pnode>
        <ELK_ID>A16</ELK_ID>
        <property id="ST" value="0" formatted="Off" uom="100" />
    </node>

This node is created as a 'Button' but it's the Motor portion which should be handled like a dimmer with 0-100 percentage levels and there are preset levels for off/low/medium/high as well.  I think I posted or sent those to you before but I can grab them again if needed.  

Code:
<node flag="0" nodeDefId="FanLincMotor">
        <address>51 D3 4A 2</address>
        <name>MBR-FanLinc-Motor</name>
        <parent type="3">2801</parent>
        <type>1.46.69.0</type>
        <enabled>true</enabled>
        <deviceClass>0</deviceClass>
        <wattage>0</wattage>
        <dcPeriod>0</dcPeriod>
        <startDelay>0</startDelay>
        <endDelay>0</endDelay>
        <pnode>51 D3 4A 1</pnode>
        <ELK_ID>B01</ELK_ID>
        <property id="ST" value="0" formatted="Off" uom="100" />
    </node>

If I remember correctly it's the <type> field and a sub-cat of that which defines the FanLinc device.  I'll have to look it up on how to determine the nodes light/motor for parsing.


RE: ISYv2 Driver - FanLinc - Dean Roddey - 02-04-2020

It's the flag value. If the high bit is on 0x80 (128) that's the parent node and if not it a child of the one before it. Right now the code that handles type 1's assumes that the parent is a light the the child a button (since all the 1's so far have been.) It'll have to specially check for exceptions to that I guess. Their hierarchy could be improved to make these things more explicit.


RE: ISYv2 Driver - FanLinc - simplextech - 02-04-2020

(02-04-2020, 02:03 PM)Dean Roddey Wrote: It's the flag value. If the high bit is on 0x80 (128) that's the parent node and if not it a child of the one before it. Right now the code that handles type 1's assumes that the parent is a light the the child a button (since all the 1's so far have been.) It'll have to specially check for exceptions to that I guess. Their hierarchy could be improved to make these things more explicit.

I think there's a lot of things that could be improved.  Please post on the UDI forum with your recommendations as they will likely get added.  There's a lot of work going on right now along with NodeServer refinement to make them work with integrations so your input will help with that as well.