SynchroLinc Pain

Posted on
Thu Mar 15, 2012 1:05 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: SynchroLinc Pain

Gotcha. I'll look at the developer notes for it and see if I can put together an example. I think it will require sending an extended INSTEON command, which is supported by the PowerLinc 2413U and 2412U but not the 2414U. I assume you have either the 2413 or 2412?

Image

Posted on
Thu Mar 15, 2012 1:35 pm
Dewster35 offline
Posts: 1030
Joined: Jul 06, 2010
Location: Petoskey, MI

Re: SynchroLinc Pain

Thanks. You rock. 2412.

Posted on
Wed Mar 21, 2012 5:19 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: SynchroLinc Pain

Try out the python script below. You can copy/paste it into an Indigo interactive shell via Plugins->Open Scripting Shell, or you can put it into an Execute Script action.

Note the script does 3 things: reads the current settings, changes them, then reads out the new changes.

I'm not 100% positive the bytes I'm reading out and setting are correct and scaled correctly, but I think the values should be:

triggerWatts (0 to 1800 watts in 0.5 watt steps): the wattage needed before the SynchroLinc broadcasts.
thresholdWatts (aka hysteresis, 0 to 127.5 watts in 0.5 watt steps): tolerance before on/off toggle is sent.
delaySeconds (0.15 to 38.25 seconds): prevents message flooding if thresholdWatts is too low.

Give it a try and copy/paste the Event Log results for me. I might add this to a plugin at some point if it appears to work.

Code: Select all
instnAddr = indigo.devices["SynchroLinc Device Name"].address

######################
# Read out and log the current values:
reply = indigo.insteon.sendRawExtended(instnAddr, [0x2E, 0x00], waitForExtendedReply=True)
triggerWatts = (reply.replyBytes[4] * 256 + reply.replyBytes[5]) / 2.0
thresholdWatts = reply.replyBytes[7] / 2.0
delaySeconds = reply.replyBytes[6] / 6.6666

indigo.server.log("OLD:")
indigo.server.log("  full reply: " + str(reply.replyBytes))
indigo.server.log("  triggerWatts watts: %.1f" % (triggerWatts,))
indigo.server.log("  threadhold watts: %.1f" % (thresholdWatts,))
indigo.server.log("  delaySeconds watts: %.2f" % (delaySeconds,))

######################
# Change the trigger, threshold and delay values here. Use whatever
# values you think will work, but I woudln't set thresholdWatts below
# 1.5 watts and it should probably be a fraction of whatever triggerWatts is.

triggerWatts = 18.5      # default 14.5  -- I think
thresholdWatts = 2.5   # default  4.0  -- I think
delaySeconds = 6.45   # default  4.50 -- I think

setSyncroSettingsCmd = [
   0x2E, 0x00,
   0x00,            # unused
   0x02,            # change settings
   int(2 * triggerWatts / 256) & 0xFF,
   int(2 * triggerWatts) & 0xFF,
   int(round(6.6666 * delaySeconds)),
   int(2 * thresholdWatts) & 0xFF,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
]
indigo.insteon.sendRawExtended(instnAddr, setSyncroSettingsCmd)

######################
# Read out and log the new values (just for debugging)
reply = indigo.insteon.sendRawExtended(instnAddr, [0x2E, 0x00], waitForExtendedReply=True)
triggerWatts = (reply.replyBytes[4] * 256 + reply.replyBytes[5]) / 2.0
thresholdWatts = reply.replyBytes[7] / 2.0
delaySeconds = reply.replyBytes[6] / 6.6666

indigo.server.log("NEW:")
indigo.server.log("  full reply: " + str(reply.replyBytes))
indigo.server.log("  triggerWatts watts: %.1f" % (triggerWatts,))
indigo.server.log("  threadhold watts: %.1f" % (thresholdWatts,))
indigo.server.log("  delaySeconds watts: %.2f" % (delaySeconds,))

Image

Posted on
Fri Mar 23, 2012 3:44 pm
Dewster35 offline
Posts: 1030
Joined: Jul 06, 2010
Location: Petoskey, MI

Re: SynchroLinc Pain

I hope to have some time later this week to give this a whirl... btw, does this also work for the 2413?

Posted on
Fri Mar 23, 2012 3:48 pm
jay (support) offline
Site Admin
User avatar
Posts: 18224
Joined: Mar 19, 2008
Location: Austin, Texas

Re: SynchroLinc Pain

Yep.

Jay (Indigo Support)
Twitter | Facebook | LinkedIn

Posted on
Mon Mar 26, 2012 5:55 pm
Dewster35 offline
Posts: 1030
Joined: Jul 06, 2010
Location: Petoskey, MI

Re: SynchroLinc Pain

When I compile, this stops on the first line of the script at "indigo." An unknown token can't go after this modifier.


instnAddr = indigo.devices["Utility Room - Dryer Synchrolinc"].address


This is what I put in... is the syntax wrong or does it also require the device name or some other modification by me later in the code?

Posted on
Mon Mar 26, 2012 6:50 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: SynchroLinc Pain

That is an AppleScript error. So it sounds like you either didn't select Python from the popup to the right of the embedded radio button, or you aren't running Indigo 5.

Image

Posted on
Mon Mar 26, 2012 7:03 pm
Dewster35 offline
Posts: 1030
Joined: Jul 06, 2010
Location: Petoskey, MI

Re: SynchroLinc Pain

:oops:


Embedded script executor host started
Sent INSTEON "Utility Room - Dryer Synchrolinc" raw insteon command (2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00; ack: 00)
Script OLD:
Script full reply: [46, 0, 0, 1, 0, 84, 20, 5, 0, 0, 0, 0, 0, 0, 0, 0]
Script triggerWatts watts: 42.0
Script threadhold watts: 2.5
Script delaySeconds watts: 3.00
Sent INSTEON "Utility Room - Dryer Synchrolinc" raw insteon command (2E 00 00 02 00 25 2B 05 00 00 00 00 00 00 00 00; ack: 00)
Sent INSTEON "Utility Room - Dryer Synchrolinc" raw insteon command (2E 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00; ack: 00)
Script NEW:
Script full reply: [46, 0, 0, 1, 0, 37, 43, 5, 0, 0, 0, 0, 0, 0, 0, 0]
Script triggerWatts watts: 18.5
Script threadhold watts: 2.5
Script delaySeconds watts: 6.45


Does that look like it's working? I didn't modify any of the variables... do you want me to try modification?

Posted on
Mon Mar 26, 2012 7:12 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: SynchroLinc Pain

It looks like it lowered the trigger from 42 watts to 18.5 watts. It doesn't modify any variables or anything -- it just sends the commands to the SyncroLinc to update its internal settings. You'll have to test it out to see if it looks like it really is working.

Image

Posted on
Mon Mar 26, 2012 7:23 pm
Dewster35 offline
Posts: 1030
Joined: Jul 06, 2010
Location: Petoskey, MI

Re: SynchroLinc Pain

I'll play around with it this week... I'm getting another one coming for my washer as well.

Is there any way to pull in the current draw on the device? Changing the wattage is nice, but not knowing the target makes it hard to hit what I'm looking for.

Posted on
Mon Mar 26, 2012 7:25 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: SynchroLinc Pain

Based on the dev documentation I have, it doesn't report that back. The iMeter will but not the SyncroLinc.

Image

Posted on
Mon Mar 26, 2012 8:36 pm
Dewster35 offline
Posts: 1030
Joined: Jul 06, 2010
Location: Petoskey, MI

Re: SynchroLinc Pain

Gotcha...so should I be getting the Imeter instead of the synchrolinc? I get that it doesn't have an on/off limit functionality like synchrolinc....but can you do the same types of things with indigo and scripting?

Posted on
Mon Mar 26, 2012 8:40 pm
matt (support) offline
Site Admin
User avatar
Posts: 21417
Joined: Jan 27, 2003
Location: Texas

Re: SynchroLinc Pain

Dewster35 wrote:
Gotcha...so should I be getting the Imeter instead of the synchrolinc? I get that it doesn't have an on/off limit functionality like synchrolinc....but can you do the same types of things with indigo and scripting?

The big difference besides that it doesn't send out on/off on triggers is that Indigo has to poll its state. So you would have to create a periodic schedule action that sends it a status request, then you could create a device state change trigger when the wattage passes some threshold value. The problem is that if you appliance/etc. that is connected to the iMeter only turns on briefly, then that change won't be caught by Indigo. So if you need immediate notification of when something turns on, or cannot live without missed OFF->ON->OFF state changes (in the case where the poll doesn't occur until after it is already OFF), then you have to use the SyncroLinc.

Image

Posted on
Mon Mar 26, 2012 8:50 pm
Dewster35 offline
Posts: 1030
Joined: Jul 06, 2010
Location: Petoskey, MI

Re: SynchroLinc Pain

The only thing I'm doing is using it to tell if the washer and dryer are 1. Running, 2. Done running. Although it looks like the only advantage is seeing the draw, at least from my perspective. Unless I missing some other advantage?

If I really want to see it I can grab a cheap plug in type meter from home depot. Thanks for the help. I'm still getting the occasional false positive that it's done drying, but I'll play around with the values some more this week.

Posted on
Mon Mar 26, 2012 9:28 pm
brianmaas offline
Posts: 23
Joined: Oct 05, 2010

Re: SynchroLinc Pain

I am using an imeter for my dryer. The polling kind of stinks, but a cool feature is that I can measure for the dryer door open because it uses a constant 10w draw when the dryer is off but the light is on. So I can repeat dryer notifications until someone comes over and has the door open for at least 30 seconds between polling times.

Right now I have it play a little tune and thank the person for doing the laundry.

Who is online

Users browsing this forum: No registered users and 14 guests

cron