Help: A way to make internal intercom

Hello

I seeking for a way to make internal intercom inside house for two way call which used voice only

for example using homeassistant to start a call in first floor to call someone in another floor

Appreciate your insights and help in advance :slight_smile:

I solved this with a cheap XAP800 unit.
It serves also my music throughout the house.
A very robust solution but it takes some work to get it right

Thanks for the information could you please shear more details or set up

The xap800 here is up and running 25/7 for 15 years now so it’s reliable enough I think. But to set it up it needs some planning beforehand. Please have a look at the manual to get a impression what the device can do and to see if it tick your boxes. I can help you with the setup which is not complicated but I prefer to do that if you want to go ahead with it.

Basically it is creating a serial sensor in HA and make a few small automations for each room. (available)

Sensor

- platform: serial
  serial_port: < your device>  Example: /dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0
  name: "ZMC"
  baudrate: 38400
  dsrdtr: true

In configuration.yaml
(Change the device path to yours)

shell_command:
zmc_control: bash -c "echo -ne '#50 {{ value }}\r' >> /dev/serial/by-id/usb-1a86_USB2.0-Ser_-if00-port0"

Automation example:

  • Mute the mic that is connected to input 1
    Just sending the command as describe in the manual
  action:
  - service: shell_command.zmc_control
    data:
      value: '''MUTE 1 M 0'''
2 Likes

Thank you this is so informative

If there are another ways its always welcome

Hi, I know it’s an old topic, but I’m struggling with the XAP800 configuration. Can you help me with that?
I found a custom component on github that works very well but only if the XAP stays ON all the time, which is power consuming for no reason.
I wish to find an alternative way to use my xap that makes me turn it off when it’s not needed.

I do not use a custom component but just how i described it above.
Naturally I have also done the setup of the configuration on the XAP it self. You have to do it only ounce and it will stay on the device.
When i leave the house or go to sleep the XAP800 is turned of. I just use a powerplug for that. When i put the power back on everything starts to work again as it suppost to be

Years ago i documented my experiences with the XAP. Some is not relevant anymore but it will give you a lot of insight in how this device works
(sadly this provider gives me not a https url so you might get a warning)
http://www.zoelen.byethost31.com/ZMC.htm

Here is also a config file for the XAP800 in the way how i use it.
You can have a look for inspiration
http://www.zoelen.byethost31.com/site/Uploads/ZMCv4.0.0.psr

Thanks for your reply.
I used to operate the xap through openhab then I decided to move to home assistant, so I know about serial commands to send and stuff.
My concern was about not being able to turn off the device (which you said it’s possible) and maybe have some help configuring and some card examples.
Thank you so much for your time.
p.s.: I don’t know how to open psr files.

You have to figure those things out yourself because they are tailored to your system specific.
That said, In my situation music is a fully automated thing with very minimal interaction. I have a timer helper for each room where I play music. Those timers are in an entity card on my dashboard and displaying the countdown for each room.
If the timer triggers on finished then the music chanel is turned off

alias: ZMC Keuken UIT
description: ""
mode: single
triggers:
  - event_type: timer.finished
    event_data:
      entity_id: timer.zmc_keuken_timer
    trigger: event
conditions: []
actions:
  - data:
      value: "'MTRX C P 1 O 0'"
    action: shell_command.zmc_control
  - data: {}
    target:
      entity_id: timer.zmc_keuken_timer
    action: timer.cancel

Next I have made a volume slider for each room that controls a serial command and they are also on an entity card on the deskboard

alias: ZMC Keuken volume
description: ""
mode: single
triggers:
  - entity_id:
      - input_number.zmc_keuken_volume
    trigger: state
conditions: []
actions:
  - data:
      value: GAIN 1 O {{ states('input_number.zmc_keuken_volume') }} A
    action: shell_command.zmc_control

Music in a room is started by a detection of a motion detector

alias: ZMC Keuken muziek
description: ""
mode: restart
triggers:
  - entity_id:
      - binary_sensor.beweging_keuken_radar_presence
    to: "on"
    trigger: state
conditions:
  - condition: and
    conditions:
      - condition: time
        after: "06:30:00"
        before: "22:00:00"
      - condition: state
        entity_id: input_boolean.migraine
        state: "off"
actions:
  - data:
      value: "'MTRX C P 1 O 1'"
    action: shell_command.zmc_control
  - data: {}
    target:
      entity_id: timer.zmc_keuken_timer
    action: timer.start
 

That is it for me

The XAP 800 unit is turn on or off with a powerplug (in my case Zigbee). When turned on the XAP is automatically again available in my HA system

PS, A psr file is a configration file that the XAP800 creates and you can download from the xap to make a backup of it. If you want to change the configuration on the XAP800 you can do that by hand or you pload a psr configuration file to it. After uploading you can see all the configuration details in the psr file. Again the manual of the XAP800 is very clear about this.

I tested the shell command and it works like charm, I can definitely turn the device on and off at will without affecting the whole stuff.

Thank you very much, and thank you for the examples you posted, gave me a lot of ideas.

I’m still stuck on UI for the automation “programming”, but i can see the yaml can give much more flexibility, so I’m gonna soon switch to that.

I’m working with helpers to remember the state, volume and input of each speaker and an automation that sends serial command when these helpers are changed.

Again, thanks a lot, you saved my day!

1 Like