Jump to content
C4 Forums | Control4

Intercom programming


DTxAg

Recommended Posts

Anyone know if it's possible to do the following with C4 InfinityEdge intercoms:

(1) Disable the intercoms in some or all rooms after a certain time at night and reenable after a certain time in the morning?

(2) Mute any music playing in a zone when an intercom call comes to that zone?

Thanks.

Link to comment
Share on other sites


(1) You can throw all of the desired TSs into MONITOR mode at a scheduled time

(2) Yes, of course. INCOMING CALL> MUTE for example.

I'm just learning how to program with HE. Can you explain how to put all of the TSs into monitor mode?

Link to comment
Share on other sites

DTxAg,

What you can do is create TWO new schedule that repeats daily. One to say turn touch panels OFF and one to say ON and you can set those times however you'd like.

Then go into programming and select the the Touch Panels OFF schedule. When that executes, select the touch panels you'd like to switch off from the right side, scroll down and select "On" on the Do Not Disturb. Then double click the Green arrow and it should appear in the center. Do this for each of the touch panels you'd like to disable at night.

Then on your next Scheduled item (Touch Panels ON), do the opposite, go to each of those touch panels and scroll down to Do Not Disturb, and Select OFF. Then double click the green button and it should appear in the center :)

For muting,

Go to the programming tab, select the touch panel in question on the left side, click on "Session Started" and on the right side, select the ROOM you'd like to mute. You will see a commands Radio button, click that and you will see a huge drop down box, one of which will say Mute ON. Double click the green button to add it to the center and voila!

You want to add the Mute ON command to both Session Started & Incoming Call and add the Mute OFF command to the Session Ended Action :)

Hope that helps!

Link to comment
Share on other sites

In the programming section, make sure you've selected the correct scheduler item on the left. Then on the right where you have the list of devices, find the touch screen in the particular room and select it. The options for programming will appear just below the list of devices. Scroll all the way down of that list of options and it will be one of the last items there

Link to comment
Share on other sites

In the programming section, make sure you've selected the correct scheduler item on the left. Then on the right where you have the list of devices, find the touch screen in the particular room and select it. The options for programming will appear just below the list of devices. Scroll all the way down of that list of options and it will be one of the last items there

Excellent, thanks shareez.

Link to comment
Share on other sites

I was going to post a similar question and saw this new topic. Like the original poster, I am just learning Control4 programming with ComposerHE. We recently had a door station intercom with bell button installed.

I would like to have the bell behavior be the following for each room:

When doorbell event

save current volume

save current audio source

save current mute state

play door bell .wav file (This is the only thing that happens now)

restore mute state

restore current audio source

restore current volume

I know I will have to copy this code to each of my rooms with discrete audio, volume, and mute.

I have looked through the entire forum programming topic area, and read the ComposerHE manual cover to cover, and while I have found hints here and there, I have not found an example that ties it all together.

I am especially confused with the use of "MUTE_IS_LINKED" and "VOLUME_IS_LINKED" conditionals -- there is no good explanation of how to use these or what they do.

The reason for this is that my wife does not like music playing very often, so if I am in a room, or out on the patio, listening to something, and walk away, she will often mute it so I can unmute it when I return. If the bell rings, the bell .wav file plays but then leaves the room unmuted, which drives her crazy.

I can't believe that this is not factory installed default code when a door station is added to a system.

Thanks in advance,

-JD318Guy

Link to comment
Share on other sites

Current volume and audio source are automatically saved as it stands using an announcement. When an announcement triggers it goes to the volume set in the announcement itself, then once done reverts to previous.

Mute needs to be done manually.

Create a variable -Boolean- "mute memory" for each room

WHEN doorbell is pressed

IF [Room1] Is muted is true

set [mute memory room1] to true

IF repeat above as needed......

delay 100ms

Play announcement

delay 100ms

IF variable [mute memory room1] = true

send command mute on to [room1]

set variable [mute memory room 1] to false

repeat.....

Link to comment
Share on other sites

  • 6 months later...
Hi Cyknight, and I hope this doesn't get posted multiple times -- the forum was acting wonky for me...

 

Thanks for your suggestion.  I finally got around to playing with this again.  There are still problems.

 

It appears that the "Announcement" is done in a separate thread or process (not sure exactly what goes on under the covers).

 

To prove this to myself my "When the Doorbell is pressed" code looks like this (some rooms omitted for brevity):

Variables->MuteStateBar = False

Variables->MuteStateGarage = False

delay 500 milliseconds

If Room Bar Mute is True

   Variables->MuteStateBar = True

If Room Garage Mute is True

   Variables->MuteStateGarage = True

Execute Announcement 'Doorbell'

delay 500 milliseconds

If Variables->MuteStateBar is True

   Send command 'Mute on' to Bar

if Variables->MuteStateGarage is True

   Send command 'Mute on' to Garage

Set Level on the Family Room->Bedroom Hall to 100

Turn off the Family Room->Bedroom Hall

 

That last was a test -- they are lights I can see from my computer.

 

I set both the bar and the garage to play a music source.

I mute one of the them.

What happens when I execute the doorbell is this:

 

After a one second delay, the lights flash on, then off.

Simultaneously, both rooms go quiet.

After a three second delay the doorbell announcement .wav file plays,

After the .wav file finishes, both rooms stay quiet for another eight seconds or so.

Both the room that was muted and the one that was playing normally come back on.

Checking the "MuteState" variables that I set shows that the room that was muted has my variable set to true, the other false.

 

If I change the delay after the announcement plays to 15 seconds, then the .wav file plays, the muted room comes back on, and then after 15 seconds the lights turn on and off and the room that was muted is re-muted.  This proves my mute command is working.

 

The problem now seems to be to find some way to set a timer keep resetting it until the announcement thread/process is finished.  I have no idea how to do that, as the announcement code seems to be something built in -- unless I am not looking in the right place.

 

Any help would be appreciated!

 

Link to comment
Share on other sites

The trick should work if you can find the right amount of time to delay. The problem is the announcement agent overriding the re-introduction of the mute state, setting the room back to 'not muted' AFTER the announcement is completed. What that time is is impossible to know, as it depends on what that announcement is doing. Unfortunately there is no readable state to 'see' if the announcement is running or done.

You COULD however also introduce several attempts to mute the room, to cover system delays etc:

 

......

delay 500ms

If variable is true

--mute

delay 500 ms

if variable is true

--mute

 

Note that those two 500 ms delays add up, as it will delay 500ms, then execute, then delay another 500ms.....

Link to comment
Share on other sites

That's what I was afraid of; it appears that this is an oversight in the system level programming - the volume is kept and restored -- why not the mute state?  (That's a question to Control-4, not, you, Cyknight!).

 

The other thing that astounds me is why no one else is complaining -- am I the only one with this issue?  I know that having a muted room suddenly blare out and then re-mute after the doorbell rings is going to lead to a p-ed off wife!  Her solution, and one that I think I will program, is to turn off all rooms on doorbell press, and then to play the announcement on doorbell release.  I'll let you know how that goes.  She rarely plays anything during the day anyway, and its just me muting something and then forgetting to turn it off at night that brought this to her attention.  Hmmmm.... maybe set an event at 0300 or so that just turns all rooms off, sound wise.

 

Thanks again!

Link to comment
Share on other sites

  • 6 months later...

A different question, but also intercom related. I have a newly installed hime, and an still learning the ropes. When I set a touchscreen on do not disturb, and the doorbell rings, the touchscreen chimes but the intercom doesn't turn on. I would expect on dnd for it to also not chime.

Is this just the way it is, or was my system not programmed correctly?

Link to comment
Share on other sites

  • 1 month later...

Intercom/Doorbell Mute State problem solved

 

Problem: The announcement event stores and restores room volumes but not mute states, so for instance, if I am listening to my favorite heavy metal stuff out on the patio and mute it when my wife comes home, and forget that I muted it, then when she is peacefully at home the next day and the neighbor comes over and rings the doorbell, the announcement wav file plays, and then suddenly the patio comes to life playing something from Metallica at full volume, scaring the crap out of her.  Not cool, Control4.

 
The following code will cut that down to where rooms that are muted will at most blast out a very short bit of sound (less than a second if you get your timer duration tweaked) before they are re-mutted.
 
I recognize that another option would be to turn off all rooms that are muted, but as you can see from my previous posting on this subject, the announcement runs in a different thread than user-created code, and so it is hard to predict in what order things will happen.
 
So, without further ado, I present my solution, which can be used as-is, or serve as an example of interesting things you can do with timers, variables, and ComposerHE.
 
First, define MuteState variables for each of your audio zones, and one to store whether or not the doorbell button press was the initial press for this announcement event.
 
Variables
Name Type Class
MuteStateBar variable Boolean
MuteStateGarage variable Boolean
MuteStateKitchen variable Boolean
MuteStateMBdrm variable Boolean
MuteStateMBath variable Boolean
MuteStatePatio variable Boolean
DoorbellInitialPress variable Boolean
 
Create a timer agent slightly longer than the length of time from a doorbell button press to the end of the wav file playing.  Mine measured 22.3 seconds by my stopwatch, so I used 23 seconds.
 
Timers
AnnouncementDuration
Interval: 00:00:23
 
Create the code. In pseudo-code, this is what you are doing:
If this is the initial button press
   Start anouncement timer
   set all MuteState variables to false
   foreach room
      If room is muted
         set mute state of that room to true
      end if
   next room
   execute announcement
   set initial button press to false
end if
 
if this is not the initial button press
   do nothing
end if
 
I re-executed the announcement hoping the door station bell tone would sound again, but the Control4 code is evidently preventing a new announcement from starting while one is executing.
 
Strangely, the room volumes are being kept and restored by the announcement code.  I have no idea why Control4 didn't save and restore the mute states -- they obviously over-ride them to play the announcement in all rooms.  Just one more example of Control4's lack of customer focus.
 
Script
When the FrontPorch->Door Station is pressed
 
? If Variables->DoorbellInitialPress is True
-> Start Timer "AnnouncementDuration"
-> Variables->MuteStateBar = False
-> Variables->MuteStateGarage = False
-> Variables->MuteStateKitchen = False
-> Variables->MuteStateMBdrm = False
-> Variables->MuteStateMBath = False
-> Variables->MuteStatePatio = False
? If Room Bar Mute is TRUE
-> Variables->MuteStateBar = True
? If Room Garage Mute is TRUE
-> Variables->MuteStateGarage = True
? If Room Kitchen Mute is TRUE
-> Variables->MuteStateKitchen = True
? If Room Master Bedroom Mute is TRUE
-> Variables->MuteStateMBdrm = True
? If Room Master Bath Mute is TRUE
-> Variables->MuteStateMBath = True
? If Room Patio Mute is TRUE
-> Variables->MuteStatePatio = True
-> Execute Announcement "Doorbell"
-> Variables->DoorbellInitialPress = False
? If Variables->DoorbellInitialPress is False
-> Execute Announcement "Doorbell"

 

Last bit of programming -- when the announcement duration timer expires, for all your rooms which were muted, re-mute them.  The announcement event leaves them all unmuted. Finally, reset the DoorbellInitialPress to true, ready for the next doorbell button press and announcement event.

 

Script
When Timer "AnnouncementDuration" expires
? If Variables->MuteStateBar is True
-> Send command "Mute on" to Bar
? If Variables->MuteStateGarage is True
-> Send command "Mute on" to Garage
? If Variables->MuteStateKitchen is True
-> Send command "Mute on" to Kitchen
? If Variables->MuteStateMBdrm is True
-> Send command "Mute on" to Master Bedroom
? If Variables->MuteStateMBath is True
-> Send command "Mute on" to Master Bath
? If Variables->MuteStatePatio is True
-> Send command "Mute on" to Patio
 
I hope this solves some pain and encourages others to post their own clever code examples.
 
-T
Link to comment
Share on other sites

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.