Control your Lyngdorf audio/video processor from Home Assistant via RS232 or IP connection.
Implemented and ready for use! This integration supports Lyngdorf MP-50 and MP-60 processors. Hardware testing and feedback welcome.
- Full media player control (power, volume, mute, source selection)
- Custom source naming via UI configuration
- Zone 2 support with independent control
- Dynamic source discovery
- RoomPerfect Controls - Select entities for focus positions and voicings
- Audio Mode Selection - Choose processing modes via select entity
- Channel Trim Controls - Fine-tune bass, treble, center, LFE, surround, and height channels
- Lip Sync Adjustment - Precise delay control in milliseconds
- Loudness Control - Toggle loudness compensation
- DTS Dialog Control (MP-60 only) - Enhance dialog clarity
- Callback-based push notifications from device
- Efficient DataUpdateCoordinator pattern
- Immediate UI updates when device state changes
- Audio format sensor (codec, sample rate, channels)
- Video input sensor
- Video output sensor
- RS232 serial and IP/socket connection support
- Config flow UI for easy setup
- Options flow for reconfiguration
- Volume range: -99.9 to +20.0 dB (MP-50) or +24.0 dB (MP-60)
| Model | Status | Volume | Notes |
|---|---|---|---|
| Lyngdorf MP-50 | Untested | -99.9 to +20.0 dB | Includes RoomPerfect |
| Lyngdorf MP-60 | Untested | -99.9 to +24.0 dB | Includes RoomPerfect & DTS Dialog Control |
Note: All models use similar RS232/IP protocols. If you can test with hardware, please report your results!
Make sure that Home Assistant Community Store (HACS) is installed and then add the 'Integration' repository: homeassistant-projects/hass-lyngdorf.
This integration is completely configured via the Home Assistant UI using config flow:
- Go to Settings → Devices & Services
- Click + Add Integration
- Search for and select Lyngdorf
- Follow the prompts to configure your device:
- Select your Lyngdorf model (MP-50 or MP-60)
- Enter the connection URL (e.g.,
socket://192.168.1.100:84for network, or/dev/ttyUSB0for serial) - Optionally set a custom baud rate if using RS232
No configuration.yaml entries are required.
- RS232 to USB adapter: Example cable
- Baud rate: 115200 (default)
- Protocol: 8N1 (8 data bits, no parity, 1 stop bit)
- Port: 84 (default)
- Your processor must support network control
- Ensure your processor is connected to your network
| Feature | Entity Type | Main Zone | Zone 2 |
|---|---|---|---|
| Power On/Off | media_player | ✅ | ✅ |
| Volume Control | media_player | ✅ (dB scale) | ✅ |
| Mute | media_player | ✅ | ✅ |
| Source Selection | media_player | ✅ | ✅ |
| RoomPerfect Position | select | ✅ | - |
| RoomPerfect Voicing | select | ✅ | - |
| Audio Mode | select | ✅ | - |
| Bass Trim | number | ✅ | - |
| Treble Trim | number | ✅ | - |
| Center Trim | number | ✅ | - |
| LFE Trim | number | ✅ | - |
| Surround Trim | number | ✅ | - |
| Height Trim | number | ✅ | - |
| Lip Sync Delay | number | ✅ | - |
| Audio Format | sensor | ✅ | - |
| Video Input | sensor | ✅ | - |
| Video Output | sensor | ✅ | - |
Sources are dynamically discovered from the processor. Common inputs include:
- HDMI (source 1)
- SPDIF 1-8 (sources 3-10): Optical, AES/EBU, and Coaxial digital
- Internal Player (source 11)
- USB (source 12)
- 16-Channel AES (sources 20-23, MP-60 optional module)
- Audio Return Channel (source 24)
- 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
pylyngdorfdirectory 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 for communication:
- Lyngdorf RS232/IP protocol implementation
- Async/await support for Home Assistant
- Callback-based state updates - Real-time push notifications from device
- DataUpdateCoordinator - Efficient state management following HA 2025 best practices
- Handles verbosity levels and echo filtering
- RoomPerfect and advanced audio controls
- Model-specific configurations (MP-50/MP-60)
- Custom exception hierarchy for robust error handling
- Dataclass-based state representation for type safety
- Protocol Layer - Handles RS232/IP communication and parses unsolicited device updates
- Device API - Clean, typed interface to device controls
- Coordinator - Manages state updates and entity refresh
- Entity Platforms - media_player, select, number, and sensor entities
- pylyngdorf library - Embedded Python library for Lyngdorf control
- Lyngdorf RS232 Protocol - Command reference
- Example Usage - Python library examples
- fishloa/lyngdorf - Alternative Lyngdorf integration

