Multiple Crestron processors from multiple TCP clients

275 views
Skip to first unread message

Matt Rasmussen

unread,
Dec 14, 2011, 12:03:12 PM12/14/11
to CommandFusion
I'm wondering if anyone has successfully added Command Fusion client
in multiple processors and have it connect to all of them
simultaneously, rather than creating EISC's from a master processor to
all the different processors in the system to do what I need?

Jarrod Bell

unread,
Dec 14, 2011, 5:34:53 PM12/14/11
to comman...@googlegroups.com
This is possible if you use the CIP or CrestronMobile methods of
communication.

You will find both these implementations here:
https://github.com/search?type=Repositories&language=JavaScript&q=crestron&repo=&langOverride=&x=28&y=11&start_value=1

Jarrod

Matt Rasmussen

unread,
Dec 15, 2011, 2:47:58 PM12/15/11
to CommandFusion
Thanks Jarrod, CIP looks interesting, I'll be testing that out
shortly.

On Dec 14, 4:34 pm, Jarrod Bell <jar...@guilink.com> wrote:
> This is possible if you use the CIP or CrestronMobile methods of
> communication.
>

> You will find both these implementations here:https://github.com/search?type=Repositories&language=JavaScript&q=cre...


>
> Jarrod
>
> On 15/12/11 4:03 AM, Matt Rasmussen wrote:
>
>
>
> > I'm wondering if anyone has successfully added Command Fusion client
> > in multiple processors and have it connect to all of them
> > simultaneously, rather than creating EISC's from a master processor to

> > all the different processors in the system to do what I need?- Hide quoted text -
>
> - Show quoted text -

Matt Rasmussen

unread,
Dec 16, 2011, 6:58:28 PM12/16/11
to CommandFusion
Is there a specific naming convention you need to stick to for the
feedback regex or system names? Analog and digital joins work on one
of the systems, detail does not. And no feedback on the second
system, I can see the digital presses in Crestron toolbox but no
feedback to the iPad.

The demo program seems to work fine.

On Dec 14, 4:34 pm, Jarrod Bell <jar...@guilink.com> wrote:

> This is possible if you use the CIP or CrestronMobile methods of
> communication.
>

> You will find both these implementations here:https://github.com/search?type=Repositories&language=JavaScript&q=cre...

Jarrod Bell

unread,
Dec 16, 2011, 7:22:59 PM12/16/11
to comman...@googlegroups.com
Yes you need to follow the name conventions in the CIP documentation,
check the wiki on the CIP github repo.

Jarrod

Message has been deleted

Matt Rasmussen

unread,
Dec 16, 2011, 9:16:46 PM12/16/11
to CommandFusion
Yes, I did go through that, and the presses into into the XPANEL
work,
and so does the feedback for the first system name. For the second
system name the press gets to the XPANEL, but the feedback never
reaches the panel, and serial sends to the panel does not work on
either.

Other than the token names, is there anything else that needs to be
defined specifically? The system name / feedback regex names are
identical when defined in the token, should that work?

Matt Rasmussen

unread,
Dec 17, 2011, 11:22:28 AM12/17/11
to CommandFusion
It seems that I have to use the exact terminology of:

System Name: CIP1, CIP2 ...
Feedback Name: CIP1_Feedback, CIP2_Feedback ...

Once I do that, things seem to be working just fine with an AV2 and
and MC3 from one iPad, pretty cool.

Jarrod Bell

unread,
Dec 17, 2011, 6:57:10 PM12/17/11
to comman...@googlegroups.com
Yes, as documented here:

https://github.com/CommandFusion/CIP/wiki/Help

Jarrod

Mqsack

unread,
Dec 17, 2011, 7:11:01 PM12/17/11
to CommandFusion
Matt:

Glad to see you on board with CIP/CF...

I also saw your thread w/ Heath on the Yahoo group [
http://tech.groups.yahoo.com/group/Crestron/message/150386 ]

What is your application to talk to multiple processors? A typical AV/
HVAC/Lighting split?

I hadn't thought of that flexibilty before, but it makes sense and
would cut down on some EISC latency and bloat.

I can just drop an Xpanel on my Hvac processor and in my D3 program
and talk direct. Nice.

Keep us posted as the project comes online...

Matt C

Matt Rasmussen

unread,
Dec 17, 2011, 7:36:02 PM12/17/11
to CommandFusion
Man, I must be totally blind, I do not see where it outlines that the
system names must be CIP1, CIP2 etc. Nor where it says that the
feedback names must be CIP1_Feedback, CIP2_Feedback etc. The token
names are laid out nicely, but to me it implies that your system names
and feedback names can be whatever you want just so they match in the
token definitions.

> > and MC3 from one iPad, pretty cool.- Hide quoted text -

Matt Rasmussen

unread,
Dec 17, 2011, 7:41:17 PM12/17/11
to CommandFusion
Yes, it's to eliminate the cluster of EISC's I'd have to setup in each
processor using a single instance of the normal TCP symbol in a
'master' processor. Mine application is not HVAC, but more like a
master control panel for entire facilities etc, but the concept is
identical of course. I'll keep you posted as the project comes
together, after I figured out / was informed of the correct naming
conventions everything seems pretty solid.

Mqsack

unread,
Dec 17, 2011, 7:46:15 PM12/17/11
to CommandFusion
The first time I used CIP I changed the names as well and broke it. I
thought as you did that they just had to MATCH.

We've been using 3 ipads as sales tools. They all connect back to one
AV2 in our shop on 3 different IPID's.

Been running for 6 months now with no issues. It's been very stable
for us.

Same with my setup of a QM-RMC and a Pac2m at home...

Jarrod Bell

unread,
Dec 17, 2011, 7:53:10 PM12/17/11
to comman...@googlegroups.com
Hmm I thought they could be whatever you wanted as well, so long as the
token definitions are correct.

Eg. token name "CIP2_Feedback_Name" with value of "IncomingData2" would
use the "IncomingData2" feedback item to watch the FeedbackMatchedEvent.
So long as "CIP2" exists in your "CIP_System_Names" token value.

At least that's how the JavaScript seems to work (lines 18-38).

Jarrod

Mqsack

unread,
Dec 17, 2011, 8:20:31 PM12/17/11
to CommandFusion
I can't remember exactly my process back then, but I remember making
up my own names and it not working.

Then I cut and pasted the stuff from the example program in Notepad++
and it worked fine.

But I haven't messed with it since then of course...I just copy/paste
the working code into new projects.

Heath Volmer

unread,
Dec 17, 2011, 9:04:22 PM12/17/11
to comman...@googlegroups.com
I've been studying this JS for the last hour and I can't seem to figure out why it doesn't work.  I've put all sort of log entries in the js and it appears to be doing what it's supposed to….


Heath Volmer
Digital Domain Systems

--
You received this message because you are subscribed to the Google Groups "CommandFusion" group.
To post to this group, send email to comman...@googlegroups.com.
To unsubscribe from this group, send email to commandfusio...@googlegroups.com.
For more options, visit this group at http://groups.google.com/group/commandfusion?hl=en.


Heath Volmer

unread,
Dec 17, 2011, 11:01:14 PM12/17/11
to comman...@googlegroups.com
Got it Matt. 

(Once again I've wasted an hour troubleshooting CF when the problem was in Simpl.  Didn't have the CIP pointed to an Xpanel whose inputs were connected to outputs for FB testing….)

It's all in the naming, for example:

System Manager:

System Name: MC3
Feedback Name: MC3_In
System Name: QM
Feedback Name: QM_In


Tokens:

("name" --- "Value")
"CIP_System_Names" --- "MC3,QM"
"MC3:Feedback_Name" ---"MC3_In"
"MC3:IP_ID" --- "05"
"QM:Feedback_Name" ---"QM_In"
"QM:IP_ID" --- "03"

That's all I set, deleted all other tokens since they have default values in the JS. I would probably want to segregate the joins for each system to minimize the doubling up of data spewing back and forth, but for now...

After reading the JS, I knew it should work, and it turns out I was just sending presses to an XPanel that wasn't sending back fb!!!  Ugh.




Heath Volmer
Digital Domain Systems

Mqsack

unread,
Dec 17, 2011, 11:13:50 PM12/17/11
to CommandFusion
Nice Heath. Happens to the best of us ;)

So in the systems name token you just comma delimit all the systems.
(MC3,QM,AV2,Pro2)

Then you define what each feedback regex is named for each system.

Then you define what IP_ID should be used for each system.

Based on that....is there any reason why we cannot set the IP_ID token
during runtime to switch the IP_ID a system is connecting to? It's
been discussed here before and thought to be not possible due to JS
limitations. But this suggests it is all in the tokens.

This would be great for updating legacy non-crosspoint systems.

Just drop in an Xpanel for each zone. Then change your IP_ID to kmove
from room to room.

Jarrod Bell

unread,
Dec 17, 2011, 11:16:28 PM12/17/11
to comman...@googlegroups.com
It's possible, but you need to do more than just change the token (the
token is only used on startup).

You would need to change the variable that the token name is assigned to
as well, and then restart the system I believe.

I'm not familiar with the whole CIP thing, but from a CF standpoint,
definitely sounds possible what you are after.

Jarrod

On 18/12/11 3:13 PM, Mqsack wrote:
> Nice Heath. Happens to the best of us ;)
>
> So in the systems name token you just comma delimit all the systems.
> (MC3,QM,AV2,Pro2)
>
> Then you define what each feedback regex is named for each system.
>
> Then you define what IP_ID should be used for each system.
>
> Based on that....is there any reason why we cannot set the IP_ID token
> during runtime to switch the IP_ID a system is connecting to? It's
> been discussed here before and thought to be not possible due to JS
> limitations. But this suggests it is all in the tokens.
>
> This would be great for updating legacy non-crosspoint systems.
>
> Just drop in an Xpanel for each zone. Then change your IP_ID to kmove
> from room to room.
>
> On Dec 17, 11:01 pm, Heath Volmer<hvol...@ddsys.co> wrote:
>> Got it Matt.
>>

>> (Once again I've wasted an hour troubleshooting CF when the problem was in Simpl. Didn't have the CIP pointed to an Xpanel whose inputs were connected to outputs for FB testing�.)


>>
>> It's all in the naming, for example:
>>
>> System Manager:
>>
>> System Name: MC3
>> Feedback Name: MC3_In
>> System Name: QM
>> Feedback Name: QM_In
>>
>> Tokens:
>>
>> ("name" --- "Value")
>> "CIP_System_Names" --- "MC3,QM"
>> "MC3:Feedback_Name" ---"MC3_In"
>> "MC3:IP_ID" --- "05"
>> "QM:Feedback_Name" ---"QM_In"
>> "QM:IP_ID" --- "03"
>>
>> That's all I set, deleted all other tokens since they have default values in the JS. I would probably want to segregate the joins for each system to minimize the doubling up of data spewing back and forth, but for now...
>>
>> After reading the JS, I knew it should work, and it turns out I was just sending presses to an XPanel that wasn't sending back fb!!! Ugh.
>>
>> Heath Volmer
>> Digital Domain Systems
>> (303) 517-9714
>>
>> On Dec 17, 2011, at 7:04 PM, Heath Volmer wrote:
>>
>>
>>
>>
>>
>>
>>

>>> I've been studying this JS for the last hour and I can't seem to figure out why it doesn't work. I've put all sort of log entries in the js and it appears to be doing what it's supposed to�.

Mqsack

unread,
Dec 17, 2011, 11:18:16 PM12/17/11
to CommandFusion
Jarrod:

When you say restart the system, do you mean the JS script? or
iViewer?

On Dec 17, 11:16 pm, Jarrod Bell <jar...@guilink.com> wrote:
> It's possible, but you need to do more than just change the token (the
> token is only used on startup).
>
> You would need to change the variable that the token name is assigned to
> as well, and then restart the system I believe.
>
> I'm not familiar with the whole CIP thing, but from a CF standpoint,
> definitely sounds possible what you are after.
>
> Jarrod
>
> On 18/12/11 3:13 PM, Mqsack wrote:
>
>
>
>
>
>
>
> > Nice Heath. Happens to the best of us ;)
>
> > So in the systems name token you just comma delimit all the systems.
> > (MC3,QM,AV2,Pro2)
>
> > Then you define what each feedback regex is named for each system.
>
> > Then you define what IP_ID should be used for each system.
>
> > Based on that....is there any reason why we cannot set the IP_ID token
> > during runtime to switch the IP_ID a system is connecting to? It's
> > been discussed here before and thought to be not possible due to JS
> > limitations. But this suggests it is all in the tokens.
>
> > This would be great for updating legacy non-crosspoint systems.
>
> > Just drop in an Xpanel for each zone. Then change your IP_ID to kmove
> > from room to room.
>
> > On Dec 17, 11:01 pm, Heath Volmer<hvol...@ddsys.co>  wrote:
> >> Got it Matt.
>

> >> (Once again I've wasted an hour troubleshooting CF when the problem was in Simpl.  Didn't have the CIP pointed to an Xpanel whose inputs were connected to outputs for FB testing .)


>
> >> It's all in the naming, for example:
>
> >> System Manager:
>
> >> System Name: MC3
> >> Feedback Name: MC3_In
> >> System Name: QM
> >> Feedback Name: QM_In
>
> >> Tokens:
>
> >> ("name" --- "Value")
> >> "CIP_System_Names" --- "MC3,QM"
> >> "MC3:Feedback_Name" ---"MC3_In"
> >> "MC3:IP_ID" --- "05"
> >> "QM:Feedback_Name" ---"QM_In"
> >> "QM:IP_ID" --- "03"
>
> >> That's all I set, deleted all other tokens since they have default values in the JS. I would probably want to segregate the joins for each system to minimize the doubling up of data spewing back and forth, but for now...
>
> >> After reading the JS, I knew it should work, and it turns out I was just sending presses to an XPanel that wasn't sending back fb!!!  Ugh.
>
> >> Heath Volmer
> >> Digital Domain Systems
> >> (303) 517-9714
>
> >> On Dec 17, 2011, at 7:04 PM, Heath Volmer wrote:
>

> >>> I've been studying this JS for the last hour and I can't seem to figure out why it doesn't work.  I've put all sort of log entries in the js and it appears to be doing what it's supposed to .

Jarrod Bell

unread,
Dec 17, 2011, 11:25:12 PM12/17/11
to comman...@googlegroups.com
Restart the actual system connection via CF.setSystemProperties enable =
false, then enable = true.

Not sure what else needs to be managed here though.

Jarrod

Mqsack

unread,
Dec 17, 2011, 11:27:51 PM12/17/11
to CommandFusion
OK.

What about creating, say, 8 systems all with the same target (IP
address), but 8 different feedback regex and IP_ID definitions.

Is it possible to enable/disable systems easily?

Then I could leave 7 dormant and only liven up the one I want.

Just curious...

Matt Rasmussen

unread,
Dec 17, 2011, 11:34:01 PM12/17/11
to CommandFusion
Well, i tried that, keeping the token values identical to the system
name / feedback name and didn't work. Maybe it was the name i
used...ill give it a go again on Monday.

Heath Volmer

unread,
Dec 17, 2011, 11:36:11 PM12/17/11
to comman...@googlegroups.com
Yes; yes; yes; no.

The CIP:IP_ID is set up when the system loads.  All of those tokens are read and built into objects, one for each CIP system.  

I suppose with some modifications to the JS, you could reset which the CIP JS talks to, but not the way it is written now.   There is a "I'm IP ID xx" handshake that takes place between the script and the processor.  You'd have to reestablish that handshake with some new code.  Seems do-able.



Heath Volmer
Digital Domain Systems

Jarrod Bell

unread,
Dec 17, 2011, 11:36:50 PM12/17/11
to comman...@googlegroups.com
I wouldn't use the same IP and port in multiple systems. Instead just
manipulate the one system at runtime as you need.

Jarrod

Heath Volmer

unread,
Dec 17, 2011, 11:37:31 PM12/17/11
to comman...@googlegroups.com
Matt:

It's not the token value, it's the token name that is important.  I could have named the MC3 feedback "Gus" and the QM feedback "Bob" and it would work the same.  Notice the token names.



Heath Volmer
Digital Domain Systems

Matt Cusack

unread,
Dec 17, 2011, 11:55:22 PM12/17/11
to comman...@googlegroups.com
Heath:

Got it. Some more logic is needed to refresh the connection with the processor and define the new IP-ID.
Jarrod:

OK. Just curious if systems could be enabled/disabled easily at runtime.
In the end, it might be almost as easy(depending on the program) to put in one Xpanel, a static CCROSS and multiple ECROSS (one for each zone) and just route this all in Simpl.

But heath, if you want to take a stab at CIP 1.2, I'll help if I can...

Matt C
From: Heath Volmer <hvo...@ddsys.co>
Date: Sat, 17 Dec 2011 21:36:11 -0700
Subject: Re: Multiple Crestron processors from multiple TCP clients
Message has been deleted

Matt Rasmussen

unread,
Dec 18, 2011, 12:13:01 AM12/18/11
to CommandFusion
Yes, I prefixed the token with the same system name I assigned in the
system manager, and used the feedback name for that system as the
value for the system:token value.

Heath Volmer

unread,
Dec 18, 2011, 12:15:50 AM12/18/11
to comman...@googlegroups.com

On Dec 17, 2011, at 9:55 PM, Matt Cusack wrote:

But heath, if you want to take a stab at CIP 1.2, I'll help if I can...

Just noticed that there are two Matts here!

Matt C:  I don't know if I would use that functionality, but you've planted the seed…  I've already got a crosspoint setup that is tried and true.

Heath

Heath Volmer

unread,
Dec 18, 2011, 12:17:05 AM12/18/11
to comman...@googlegroups.com
… and while I can read JS just fine, writing it may be another story :-)



Heath Volmer
Digital Domain Systems

Matt Rasmussen

unread,
Dec 18, 2011, 8:39:17 PM12/18/11
to CommandFusion
Forgot to say thanks to all the people on the CF CIP project and the
general advice from the group.

Thanks!

Reply all
Reply to author
Forward
0 new messages