Home AMX Forum NetLinx Studio

M2M System design in a large project Question

After composing this post, I think I can sum up my question as follows: When all UIs are connected to system 1 and you send out text and feedback to a UI from System 2, does it somehow still go through system 1, or is System 1 not taxed at all due to sending text and fb this way? Feel free to read my original question below, but an answer to this would answer my question....unless there are other ideas out there on how to design a large M2M system.

My question, is should I stick with my typical design or try my proposed design or something else. My biggest priority is system reliability and speed. To clarify what I mean by large project (48 audio zones, 17 video zones, 50 UIs, 62 Lutron Phantom KPs, 22 HVAC zones, 47 PTZ IP cameras, Gates, Doors, 100+ zones of HAI security, 3 Pentair pool, Shades, Weather, Traffic, email when a device or system goes offline, I think that is it)

- My typical system design consists of multiple processors where all UIs connect to system 1. On system 1, I track almost everything, per UI (what page each panel is on, what zone are selected for all subsystem on each panel, etc). System 1 also sets all my default zone on all panels for all subsystem. System 1 also has the majority of the programming for multi room audio and multi room video. I define my UI ports based on system number....so all UI functions using port 1 are for system 1. All UI functions using port 2 are for System 2, etc.
System 1 has all systems and UI ports defined on it
System 2 might be running a KScape module, plus tracks what page each UI is on. System 2 has UI port 2 and UI port 1 defined on it
System 3 might be running some HVAC and camera PTZ code, plus tracks what page and zone each UI is on. System 3 has UI port 3 and UI port 1 defined on it
Remaining systems are running other subsystems (Lights, Pool, etc), plus tracks what page and zone each UI is on. They also have UI Port 1 and its own corresponding UI port defined.
All systems in "route mode direct", systems 2-x in UI List of System 1

- My proposed design would basically be all UIs connect to System 1. Same as before... I define my UI ports based on system number....so all UI functions using port 1 are for system 1. All UI functions using port 2 are for System 2, etc. System 1 has all systems and UI ports defined on it. I am assuming this would allow System 1 to only have the task of button routing to the correct master...????
System 2 would do all that System 1 was doing in "typical system design"
Remaining system would be same as "typical system design"

Comments

  • John NagyJohn Nagy CineTouch Product Manager
    You might be overthinking it, or your subsystem designs may be inefficient. We do that size system every day with a single master.

    But to the question itself, I can say that at one point we were experimenting with memory load balancing across masters, and had half of the 50 panels talking to system 2 for reporting pushes, but being updated exclusively by system 1 with all the other panels. This itself posed no extra traffic or loading. While this is the reverse of what you are suggesting, I think it may be informative.

    We did abandon the split design when we developed more memory efficient ways to accept input from very large numbers of panels, but it worked.
  • John Nagy wrote: »
    You might be overthinking it, or your subsystem designs may be inefficient. We do that size system every day with a single master.

    Thanks John, You might be right. I have also done systems comparable to this size on a single master, but no PTZ IP cameras, not nearly as many UIs, and no KScape. What kind of interpreter and buffer values do you see in your systems like this? Also I know you guys do some cool UI work, do you use one TP4 file per UI model? Can you fully control any room from any full size UI (not handheld remote), including TVs? Sometime I think on systems I've done "load balancing" on, they seem to act slower, than a single master system...what do you think?

    I am, right now anyway, thinking I will keep with "My typical system design" unless anyone can chime in and tell me I have a very poor approach and tell me of a better way. It is just easier to program it separately now than realizing the processor is out of juice later, then reprogramming it.
  • John NagyJohn Nagy CineTouch Product Manager
    The number of cameras should add no particular overhead, you'll interact with no more than a couple at a time.

    The KSCAPE will be a challenge for you as their modules aren't really friendly to simultaneous use on many panels. You will find it no fun to roll your own complete 2-way KSCAPE interface for the purpose of distributed feedback... but frankly, one-way control of KSCAPE systems is quite satifactory. The value of the now-playing info and cover art is actually small. And since the music capability of the KSCAPE is crippled by the fact that you can't actually search by song name, most of our customers use something else for music, and that's the only area where the two-way really matters on KSCAPE. Also the NOW PLAYING info for MUSIC differs from MOVIES, complicating any display even more.

    We see buffers staying at 0 most of the time, if you see them climbing and staying up, you will also see system hangs while the buffers are up. If you have extensive refreshing of, say, multiple thermostats on many panels, you may find the system gets busy in that loop and users find panels are unresponsive during the update. Fix this by making the update or loop "porous" so that other high level events get serviced along the way, instead of stacking up waiting their turn. You can do this by waits or other means that allow the thread to revisit the main loop instead of staying in your lengthy subroutine until finished.

    We have a single TP design, but it is tuned to each panel model, such as extra pages for video overlays on CV models, differences in battery level display (the codes work differently for different wireless devices), larger icons on smaller panels, etc. But the same project(s) are used in every job, without modification for location, they are dynamically rendered by the needs of the room/source/user at the moment. Data defines what is connected where, and the same UI works completely, everywhere, even if the devices work differently (as in the same panel button operates the aspect ratio of the display actually in use even though it results in different commands for RS232, IPO, and IR controlled TV's at different times).

    All that is to say, the smarter the central process is, the less overhead in managing a large system. Yes, we've seen multi-master systems that moved slower than glaciers, because all the processors were all doing it all, and telling each other about it.... marginally better than completely separate systems.

    The worst system I saw used 7 masters for 6 rooms with TV's plus the "multiroom" for house audio. None of the systems communicated at all. Each had its own dedicated panel, and each operated differently. So no one used any of it, and they blamed AMX as a bad brand, and replaced it all with Crestr0n rather than trust another design from another AMX dealer.
  • rfletcherrfletcher Junior Member
    John Nagy wrote: »
    The worst system I saw used 7 masters for 6 rooms with TV's plus the "multiroom" for house audio. None of the systems communicated at all. Each had its own dedicated panel, and each operated differently. So no one used any of it, and they blamed AMX as a bad brand, and replaced it all with Crestr0n rather than trust another design from another AMX dealer.

    Yikes, that's awful.
  • John NagyJohn Nagy CineTouch Product Manager
    Re-reading your post, re: "Can you fully control any room from any full size UI (not handheld remote), including TVs?"

    This implies that you presume handheld remotes would of course not fully control any room. They can, if you design it right.

    Even a simple IR remote (we use a credit-card sized thing we call a "MicroMote") can completely control every room using the same commands everywhere, if your central controller interprets both the codes AND THE CONTEXT. A TV-ON coming from a particular pickup tells you what equipment needs to come on. "PLAY" needs to cause whatever source is in use in the area where it came in from to go into PLAY... no need to make the remote send a specific device PLAY command to work it out.
  • John NagyJohn Nagy CineTouch Product Manager
    rfletcher wrote: »
    Yikes, that's awful.

    Yeah, worse yet, the "multiroom" used 8 separate sat receivers, one for every room serviced... no matrix switch, no sharing across rooms, lots of hardware, and any single sat failure meant that room would have to be silent....
  • Thanks again John for the replies. I enjoy hearing another person's thoughts on design. Have you guys gotten into doing subpages yet, if so have you hit the 500 limit? Any word on AMX changing this? Don't want to get too off topic, but I love subpages! I pride myself on having a similar approach to UI design, as you. I have 1 TP4 file for each model panel no matter what is in the room, including R4s. The limitation I have is only in the hardware, since as far as I know, the user can't take the MBed R4 to the Great Room because of the connection to the gateway.

    HVAC I only update when the panel being used is on the HVAC page, so there should not be a blast of traffic at any given point. But I hear what you are saying.
    John Nagy wrote: »
    and they blamed AMX as a bad brand, and replaced it all with Crestr0n rather than trust another design from another AMX dealer.
    That is sad and too often the case. It all comes down to programming.
  • John NagyJohn Nagy CineTouch Product Manager
    We haven't made use of subpages so far, the incompatibility with older panels together with a design that works well without them makes it unattractive to us for now.

    I would not expect AMX to address the "limitation" of 500 sub pages at any time. It's tied up in the authoring tool, the panel formware, and the preview app. A lot of work to change it, and the need for a change isn't clear... there being many ways to design a panel within the original intent of the structures.
  • TurnipTruckTurnipTruck Junior Member
    We are using sub pages on our iPad designs. A scrolling column of non-AV functions is provided on one side of the screen.

    My complaint with sub-pages is that you cannot programatically tell the panel which sub page to show. If you have a long, scrolling sub-page set, there are times when it would be nice to jump to a specific sub-page.
  • sling100sling100 Junior Member
    My complaint with sub-pages is that you cannot programatically tell the panel which sub page to show. If you have a long, scrolling sub-page set, there are times when it would be nice to jump to a specific sub-page.

    Check out ^SSH-

    Lets you do just that .....

    Simon
  • DHawthorneDHawthorne Junior Member
    When NetLinx first came out, I was quite sold on the idea of running every local system on it's own master and using M2M to tie them together and for global functions. It turned out to be a nightmare to maintain, and I have since moved to a single master design. There is something to be said for communications or hardware failures not taking out every device in the house, but frankly, I haven't seen it happen yet with proper power management and distribution. I've even had a case where it was cheaper to use a 2100 with no program running just as a remote control chassis for a local system slaved off a whole-house system.

    The concession I've made to processor load distribution is that I will allow for a remote master to run modules to control a device local to it, then use my "main" master to tell it what to do, ether via a send command, or do_push, as dictated by the module in question.
  • Thanks Dave for getting us back on topic. I am going to plan it almost exactly that way. Thanks for confirming what I have been thinking.
    Most programming will be on system 1 with no modules, Modules to be on other processors. Only exception will be, Pool, HVAC, and cameras (no modules) on system 3. Reason being, these are most often changed (at this job) and the most often to have issues (hardware, corrupt data, surges). Another reason is, if I need to load system 3, I am not interrupting the end users.

    SYSTEM 1 (HE 4100) GENERAL UI, MRA, ZONE CTRL, MRV, LIGHTS, SECURITY, DOORS/GATES
    SYSTEM 2 (HE ENOVA) KSCAPE, AUTONOMICS
    SYSTEM 3 (HE 3100) EMAILER, CAMERAS, POOL, HVAC
    SYSTEM 4 (OFFICE 3100) IPOD, ADA tuner
    SYSTEM 5 (FAMILY 3100) no code
    SYSTEM 6 (MBED 3100) no code
    SYSTEM 7 (GYM 3100) no code
    SYSTEM 8 (2ND FLR BED NI900) no code
    SYSTEM 9 (3RD FLR BED NI900) no code
    SYSTEM10 (Mill NI3100) no code
  • rfletcherrfletcher Junior Member
    DHawthorne wrote: »
    The concession I've made to processor load distribution is that I will allow for a remote master to run modules to control a device local to it, then use my "main" master to tell it what to do, ether via a send command, or do_push, as dictated by the module in question.

    That's how I generally do it as well
Sign In or Register to comment.