HAI and Pulseworx

Jrock

Member
Is it possible to get my OIIe to recognize a Pulseworx FMD2-4 2 channel fixture dimming module as two separate UPB devices? The module is only assigned one UPB unit ID. I configured it in UpStart and was able to get it working properly with a HAI 6 button scene switch, but this is not how I want to control it. I want to add programing to the OIIe so one of the loads comes on based on certain events and also be able to control each load independently through my 5.7e. I added the unit through the dealer software and it came up on my 5.7e, but I was unable to control it at all.
 
I don't have experience with that particular module, but you may need to do it all via links. Since the Omni doesn't have the concept of channels in it, you can use UPSTART and configure the links manually on the device for the separate channels. You can then control the channels via UPB links instead of direct packets.

I had to do this for the Simply Automated IO-32 module (3 inputs, 2 outputs).
 
I ended up disconnecting the module because the lights I was trying to control were the only light source in the room and it wasn't working right. Strange, when the module was hooked up the remote that came with the fan wouldn't control the lights at all anymore.

The OIIe and UPB is all very new to me so I am going to setup the module in a test environment in my basement to play around with the links.
 
Okay, so I was able to get things working in my test environment using links (thank you JonW). I would still like to have full control through my 5.7e though. I created buttons to control the links, but this does not give me the same control that the "lighting" interface gives me on the 5.7e.

Any suggestions? Do I need AS to really be able to do what I want?
 
Reviving an old thread here, but I've managed to do, more or less, what the OP wanted. I used a couple of tricks:

I have a PCS FMD2 controlling a ceiling fan in my rec room. One channel controls the fan motor and the other channel controls the lights on the fan. In my OPII setup, I set rooms 29-30 to type UPB. Then, using Upstart, I configured the FMD2 to address 225, which is the first unit in room 29. I did not name this unit number in the OPII setup; only Upstart knows about it. So, the FMD2 is "invisible" to the OPII. (Not really; the OPII still sees its transmissions, but since it isn't a named unit, the OPII ignores it.) I removed all of the links it was configured with at the factory, and put in one link for each channel.

Next, I configured two pseudo-units in the rec room in the OPII setup. Unit 11 is the fan and unit 12 is the light. There are no actual devices at these addresses. However, the OPII will still track what it thinks the status should be; if it is told to turn those units on or off, it will remember that status. You can also trigger events on their status.

Then I wrote this code:
[codebox]
87. WHEN Rec room ctl 3 ON
THEN Rec room ctl timer 3 ON FOR 10 SECONDS
THEN Rec room ceiling fans ON
THEN Rec room controller LED 3 ON
88. WHEN Rec room ctl 3 OFF
THEN Rec room ctl timer 3 ON FOR 10 SECONDS
THEN Rec room ceiling fans OFF
THEN Rec room controller LED 3 OFF
89. WHEN Rec room ceiling fans ON
AND IF Rec room ctl timer 3 OFF
THEN Rec room ctl 3 ON
90. WHEN Rec room ceiling fans OFF
AND IF Rec room ctl timer 3 OFF
THEN Rec room ctl 3 OFF[/codebox]

This is the code that drives and tracks status of the fan motor; the code for the light is identical except that all the 3's in the code above are 4's. (Note that I've left the block numbers in for reference.) "Rec room ctl 3" is the name I gave to a UPB link that is sent by an 8-button house controller switch that I've set up as a macro controller, but you could use some other control device the same way by configuring it with the proper links. The FMD2 is configured for this link on its first channel.

Assuming that the fan is off, then when I press button 3 on the house controller, it sends the "Rec room ctl 3" link. The FMD2 sees it and turns the fan on. The OPII also sees it and it enters block 87. This block of code turns on the nonexistent "Rec room ceiling fans" unit. Although there is no device there, the OPII will still change the unit's status to "on", and you can see this in PC Access. It also turns on the LED inside the button on the house controller, so that it also tracks the status of the fan. Same sort of thing happens when I press the button again and it sends a deactivate to the link; block 88 executes and updates the status of the pseudo ceiling fan unit, and of button 3's LED on the house controller. This all also works if I use some other mechanism to send the link.

I can turn on the nonexistent "Rec room ceiling fans" unit, from the console or from a touchscreen or from PC Access. Even though the device isn't actually there, the OPII will still enter block 89 when this happens. The "Rec room ctl timer 3" is a flag, and normally it is off. So when this happens, this block of code sends the "Rec room ctl 3" link. From there, it's the same thing as what I described in the last paragraph: the FMD2 sees it and turns the fan on, and the OPII sees it and runs block 87, which updates the status. Similarly, block 90 reacts to the "Rec room ceiling fans" unit being turned off.

The purpose of the "Rec room ctl timer 3" flag is to prevent an infinite loop. If it wasn't there, when block 87 changed the pseudo-unit status, that would cause block 89 to be entered, which would send the link, which would cause block 87 to be entered again, ad nauseum. Block 87 turns on the flag for 10 seconds to tell block 89 that it has already executed. When block 89 sees the flag on, it knows not to send the link again. Same idea for blocks 88 and 90.

This seems to be working pretty well. The only thing it can't do is track light level on the light; it can only tell if it's on or off. It does have the side effect of tying up the network for a couple of seconds each time that the OPII tries to send commands to the nonexistent fan and light units, but that doesn't seem to be doing any harm.
 
Back
Top