Control your McIntosh A/V processor from Home Assistant via RS232 or IP connection. Supports MX123, MX151, MX160, MX170, and MX180 models.
Implementation Complete! This integration is fully implemented with config flow UI, source customization, and all basic media player controls. Ready for hardware testing with McIntosh processors.
- Full media player control (power, volume, mute, source selection)
- Support for all 26 source inputs (HDMI, SPDIF, USB, Analog, Balanced, Phono)
- Custom source naming via UI configuration
- Advanced audio controls:
- Bass and treble trim (-12dB to +12dB)
- Loudness on/off switch
- Lipsync delay adjustment
- Channel trim controls (center, LFE, surrounds, height)
- Zone 2 support (via pymcintosh library)
- RS232 serial and IP/socket connection support
- Config flow UI for easy setup
- Options flow for reconfiguration
| Model | Status | Notes |
|---|---|---|
| McIntosh MX123 | Untested | Should work, needs hardware testing |
| McIntosh MX151 | Untested | Should work, needs hardware testing |
| McIntosh MX160 | Untested | Should work, needs hardware testing |
| McIntosh MX170 | Untested | Should work, needs hardware testing |
| McIntosh MX180 | Untested | Should work, needs hardware testing |
Note: All models use the same RS232/IP protocol. If you can test with hardware, please report your results!
ake sure that Home Assistant Community Store (HACS) is installed and then add the "Integration" repository: rsnodgrass/hass-mcintosh.
This integration uses Config Flow for setup - no YAML configuration needed!
- Go to Settings → Devices & Services
- Click + Add Integration
- Search for McIntosh
- Follow the setup wizard to configure your processor
You can customize source names through the Options menu after setup.
- RS232 to USB adapter: Example cable
- Baud rate: 115200 (default)
- Protocol: 8N1 (8 data bits, no parity, 1 stop bit)
- Port: 84 (default)
- Your McIntosh processor must support network control
- Ensure your processor is connected to your network
| Feature | Main Zone | Zone 2 | Entity Type |
|---|---|---|---|
| Power On/Off | ✅ | ✅ (via library) | media_player |
| Volume Control | ✅ | ✅ (via library) | media_player |
| Mute | ✅ | ✅ (via library) | media_player |
| Source Selection | ✅ | ✅ (via library) | media_player |
| Bass Trim | ✅ | N/A | number |
| Treble Trim | ✅ | N/A | number |
| Loudness | ✅ | N/A | switch |
| Lipsync Delay | ✅ | N/A | number |
| Center Channel Trim | ✅ | N/A | number |
| LFE Channel Trim | ✅ | N/A | number |
| Surround Channels Trim | ✅ | N/A | number |
| Height Channels Trim | ✅ | N/A | number |
| Volume Range | 0-99 | 0-99 | - |
Note: Zone 2 controls are available through the pymcintosh library but not yet exposed in the HA UI.
All 26 McIntosh source inputs are supported:
- HDMI 1-8 (sources 0-7)
- Audio Return (source 8)
- SPDIF 1-8 (sources 9-16): Optical and Coaxial digital
- USB Audio (source 17)
- Analog 1-4 (sources 18-21)
- Balanced 1-2 (sources 22-23)
- Phono (source 24)
- 8 Channel Analog (source 25)
- Verify the correct serial port or IP address
- Check that your RS232 cable is properly connected
- Ensure baud rate matches your processor settings (default: 115200)
- For IP connections, verify port 84 is accessible
- Check Home Assistant logs for error messages
- Verify
pymcintoshdirectory exists in HA root - Restart Home Assistant after installation
This integration is maintained in my free time. Sponsorship directly funds new device support and faster updates.
- Issues: GitHub Issues
- Community: Home Assistant Community Forum
- Pull Requests: Contributions welcome!
This integration uses an embedded Python library (pymcintosh) for communication with McIntosh processors. The library implements the McIntosh RS232/IP protocol with:
- Async/await support for Home Assistant
- Command throttling to prevent device overload
- Proper error handling and recovery
- Model-specific configurations (MX123/MX151/MX160/MX170/MX180)
The library is embedded within custom_components/mcintosh/pymcintosh/ and is automatically installed with the integration.
