Htd gw-sl1 / mc-66

Welcome! the custom_components folder should be in the same directory as your configuration.yaml, then htd_mc sub-folder under that :slight_smile:

Mine looks like this:
image

configuration.yaml (and my other .yaml files FWIW) are in config folder

Perfect. So how does HA know to “pick up” the files in that directory? Is there an include statement that needs to be added in ‘configuration.yaml’ or is this intelligently used by HA when the service is restarted?

Edited for clarity

Edit2: Oh, and thank you for the prompt response, @Markus99

Unsure exactly, guess it’s built in to ‘look’ there at start-up. Make sure to put the appropriate values into your configuration.yaml and then reboot.

Swinging back by to report that this integration installed flawlessly. Got to working within minutes! Thanks for the support!

Hi all, I’m planning a whole-house audio system and I came across this thread while investigating whether it was possible to integrate the HTD MC-66 into Home Assistant. Sounds like it is, thanks to @hikirsch’s great work.

Can anyone confirm whether it’s possible with this integration to include commands such as zone on/off and zone source setting via automation scripts? What I want to achieve is, for example:

  1. Someone tells Alexa in the kitchen to start playing music, it would automatically play on certain zones and not others.
  2. If someone has turned other zones on, they would automatically turn off after some period of time (so as not to blast music in the kids’ rooms unexpectedly, for example)
  3. Use voice commands through Alexa to turn zones on (“Alexa, turn on patio speakers”), implemented through a scene or script.

Thanks for any insight you can provide.

I can’t speak to any kind of Alexa integrations, as I don’t use it.

I’ve been using this integration for a few months and it’s been solid for me. Can script out whatever you want and use default HA automations/rules to trigger whatever you’d like. It works well to turn on / off zones, change zone sources, and volume (though volume changes in fairly large ‘chunks’ b/c HA uses 0-100 and HTD/MCA-66 uses 0-60).

So, yes, you’re able to do what you’re listing above given your ability to craft automations / scripts to execute :slight_smile:

1 Like

What I don’t have to reenter the names and all setttings into the MC app ever AGAIN!!! :heart_eyes:

Wow! Whoo Hooo finally have HTD integrated into my HA. Works a treat! I can dump the junk MC app for good!

Thank you for the great integration.

Been working really great all summer, woohoo!

Just upgraded to .113.3 and seeing this error (though it may have been present prior to this upgrade).

image

Hey Mark -

I was able to update this on my repo today. Let me know if this has any issues.

–Adam

Awesome, great work Adam, thx!

Updated this am and seems to be working well - though will reach out if I see anything odd.

Thx again!

Has anyone tried to implement this using the HTD Lync system as opposed to the older controllers?

Sorry, this was really only designed for the MCA series. I don’t own a Lync system to test with.

I have a Lync12 using the same GW-SL1 interface. From what I’ve found, it uses similar commands but slightly different strings. I’m going to be a bit busy the next few weeks, but after that I may take a stab at getting this working. I’ll keep everyone posted.

EDIT: This does appear to work. My problem was I have the original MC-66 which only allows 1 thing to be logged in at once. I had another app with this device opened. I knew you could only have 1 logged in at once, but I thought some entities would show up. Apparently nothing shows up if it isn’t accessable. I logged into my other MC-66 which is a 2nd version that allows 10 logins at once and it popped up instantly in HA.

#1 is this still working? looks like the last message was only 16 days ago.
#2 how do i get it to work?! little sad one guy got it working in just minutes.

I am running HA on Pi. Version .116.0
I have downloaded the 4 files and put them in
config\custom_components\htd_mc

I see the server has created a
config\custom_components\htd_mc\__pycache__
and added 3 more files in there.

I have edited the configuration.yaml

htd_mc:
 - host: 192.168.10.103
   port: 10006 
   zones:  
    - Master Bath
    - Hallway
    - Guest 1
    - Guest 2
    - Gameroom
    - Garage
   sources: 
    - one
    - two
    - three
    - four
    - five
    - six

It maybe working, just don’t know how to add or find them? I don’t see anything under an entity

Added into HA (Rpi 3b+) V0.115.6 and was not showing up with anything as Patrick115 stated. Figured it was the same issue with Gen1 gw-sl1 (2016ish) only allowing a single connection; logged out of app, restarted HA and we have success. Been up for a few hours now and seems to work well. Will update if I run into any further issues.

Thanks!

Hoping for a little help. I’m brand new and got HA for the sole purpose of connecting the MCA, so maybe I’m missing something basic. I followed the instructions and I’m getting this error in my log.

Logger: homeassistant.components.media_player
Source: custom_components/htd_mc/htd_mc.py:186
Integration: Media player (documentation, issues)
First occurred: 11:14:40 PM (1 occurrences)
Last logged: 11:14:40 PM

Error while setting up htd_mc platform for media_player
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 193, in _async_setup_platform
    await asyncio.shield(task)
  File "/usr/local/lib/python3.8/concurrent/futures/thread.py", line 57, in run
    result = self.fn(*self.args, **self.kwargs)
  File "/config/custom_components/htd_mc/media_player.py", line 43, in setup_platform
    entities.append(HtdDevice(k, client, sources, i + 1, zones[i]))
  File "/config/custom_components/htd_mc/media_player.py", line 55, in __init__
    self.update()
  File "/config/custom_components/htd_mc/media_player.py", line 70, in update
    self.zone_info = self.client.query_zone(self.zone)
  File "/config/custom_components/htd_mc/htd_mc.py", line 159, in query_zone
    return self.send_command(cmd, zone)
  File "/config/custom_components/htd_mc/htd_mc.py", line 186, in send_command
    mySocket.connect((self.ip_address, self.port))
ConnectionRefusedError: [Errno 111] Connection refused

Have you figured out how to make these a device? I am trying to make some automation scripts, but looks like they have to be devices to work. They work great from the HA GUI, but the goal would be to make automations not open the gui every time to use them. I am sure it is easy and possible, I just don’t understand HA that well.

They’re created as switch and media_player entities and can be controlled then as such.

Personally I built a ‘pool party’ script that will turn on my HTD amp and then turn on some zones (media_player’s in HA) and set the source. I use a zwave switch to control my HTD Amp, so I turn that on first, then work thru some zones like this:

pool_party_on:
  sequence:
  - service: switch.turn_on
    entity_id: switch.speakers_downstairs
  - delay: 00:00:10
  - service: switch.turn_on
    entity_id: switch.htd_outside_couch
  - delay: 00:00:03
  - service: media_player.select_source
    data:
      entity_id: media_player.htd_outside_couch
      source: Up - Chromecast
  - delay: 00:00:01
  - service: switch.turn_on
    entity_id: switch.htd_outside_fireplace
  - delay: 00:00:03
  - service: media_player.select_source
    data:
      entity_id: media_player.htd_outside_fireplace
      source: Up - Chromecast

The snippet is only two zones, but you get my point. The link above to HA shows how you can ‘volume_set, volume_mute, volume_up’, etc…

Hope this helps!

Thank you so much. This was just enough info for even me as a newbie to figure it out. I tried the scene and that worked, but went with the automation in the end. My goal will be to adjust lights and turn off music and whatever when emby starts playing. I started with this test of just turning off the music. This automation turns off my zone 3 when emby changes from idle to playing and then a 2nd automation to turn the music back on when the show is over.

- id: '1604598619133'
  alias: Computer Music Off
  description: room music off with player
  trigger:
  - platform: state
    entity_id: media_player.emby_samsungs9
    from: idle
    to: playing
  condition: []
  action:
  - service: media_player.turn_off
    data: {}
    entity_id: media_player.grey_guest
  mode: single
- id: '1604680893702'
  alias: Computer Music on
  description: room music on with player
  trigger:
  - platform: state
    entity_id: media_player.emby_samsungs9
    from: playing
    to: idle
  condition: []
  action:
  - service: media_player.turn_on
    data: {}
    entity_id: media_player.grey_guest
  mode: single

I’m so excited to find this thread! I have had an MCA-66 for years and have been frustrated that I couldn’t fully integrate it with other parts of my home automation. I used the iRule app for a long time but that became unstable and unsupported so I built an Android prototype in Kotlin to give myself control of all my zones. While it is a pain to have to get music going, then open a separate app to control the zones, the app is very fast since it is local. Since it worked well, I haven’t done anything more until recently when I wanted to get everything integrated.

I did not want to go to HTD’s HomeSeer integration because I figured that would take forever to respond to commands. I figured I would go with Home Assistant and could figure something out…but I am not a Python person so I am very happy to find that this custom component exists!

My memory is a little foggy, but I recall in my troubleshooting of my app, I had to tweak some serial settings on my iTach IP2SL to get it to send commands flawlessly when throwing lots of commands at it at once. I also recall struggling with the command to get status back from the amp…and I don’t think I ever solved that.

Anyway, I’m excited to have this task for today. Hopefully I can get it up and running.