Eine professionelle Web-Anwendung zur vollständigen Steuerung des Yamaha RX-V577 AV-Receivers mit erweiterten Funktionen und modernem Dark Theme Interface.
Status: ✅ Vollständig funktionsfähig und produktionsbereit
Version: 1.2.1
Letzte Aktualisierung: September 2025
Bereitstellung: PM2 Process Manager auf Raspberry Pi (Port 5001)
Hinweis: Dieses Projekt trägt bewusst nicht den offiziellen "Yamaha"-Markennamen im Projektverzeichnis oder Code, um lizenzrechtliche Konflikte zu vermeiden. Es handelt sich um eine inoffizielle, Open-Source-Implementierung für den persönlichen Gebrauch.
- 2 Main Tabs: Grundsteuerung (Basic), System Info
- Multi-Zone Control: Hauptzone und Zone 2 mit separaten Einstellungen
- Optimierte Anordnung: Audio Enhancement direkt in der Grundsteuerung
- Dual Theme Support: Dark Theme (Standard) und Light Theme mit einem Klick umschaltbar
- Theme Toggle: 🌙/☀️ Button zum einfachen Wechseln zwischen Dark/Light Mode
- Responsive Design: Optimiert für Desktop, Tablet und Mobile
- PWA-Ready: Progressive Web App mit Offline-Funktionalität und korrekten App-Icons
- German Localization: Vollständig deutsche Benutzeroberfläche
- 📲 Installierbar: Als App auf Smartphone-Homescreen mit korrekten Favicons
- Power Control: Ein/Aus mit visuellem Status-Indikator
- Volume Control: -80 dB bis -20 dB (erweitert bis +16 dB)
- Volume Buttons: Feineinstellung mit +/- Tasten
- Mute Toggle: Audio stumm/laut mit visueller Rückmeldung
- Extended Volume Mode: Freischaltung des vollen Lautstärkebereichs
- HDMI Inputs: HDMI 1, 2, 3, 4
- Analog Inputs: AV 1, AV 2
- Digital Sources: AirPlay, Server
- Active Source Display: Visuelle Anzeige der aktiven Quelle
- 15 DSP Programme:
- Straight (Ohne DSP), Surround Decoder
- Movie, Music, Game
- Concert Hall, Jazz Club, Rock Concert
- Stadium, Church, Chamber
- Drama, Action Game, RPG, Sports
- Dialogue Level: Sprachverständlichkeit (-6 bis +6 dB)
- Live DSP Display: Anzeige des aktiven Modus
- Frequenzbänder: 63Hz, 160Hz, 400Hz, 1kHz, 2.5kHz, 6.3kHz, 16kHz
- Einstellbereich: -6 bis +6 dB pro Band
- EQ Reset: Ein-Klick Zurücksetzen auf neutralen Klang
- Live Preview: Sofortige Anzeige der Einstellungen
- Extra Bass: Verstärkte Basswidergabe
- Bass/Treble Control: -6 bis +6 dB Einstellung
- Compressed Music Enhancer: Verbesserung komprimierter Audiodateien
- Pure Direct Mode: Umgehung der Tonschaltungen
- Straight Mode: Direkte Signalverarbeitung
- Virtual Presence Speaker (VPS): Virtueller Surround-Effekt
- Subwoofer Level: Aktuelle YPAO-Einstellung
- Center Speaker Level: Center-Lautsprecher Pegel
- Surround Level: Surround-Lautsprecher Pegel
- Dynamic Range Control (DRC): Status-Anzeige
- Lip Sync Delay: Audio-Verzögerung (YPAO-optimiert)
- 4 Szenen-Presets: Schnellzugriff auf gespeicherte Konfigurationen
- Scene Activation: Ein-Klick Szenen-Wechsel
- Custom Configurations: Persönliche Einstellungen speichern
- Audio Format: PCM, DTS, Dolby Digital, Bitstream
- HDMI Control: Ein/Aus für HDMI-CEC Steuerung
- Timer-Optionen: Aus, 30, 60, 90, 120 Minuten
- Automatisches Ausschalten: Programmierbare Abschaltung
- Movie Mode: Optimiert für Kinoerlebnis
- Music Mode: Verbessert für Musikwiedergabe
- Gaming Mode: Angepasst für Gaming-Audio
- Preset Save/Load: Benutzerdefinierte Konfigurationen
- Firmware Version: Aktuelle System-Firmware
- Gerätetemperatur: Interne Temperaturüberwachung
- Signal Format: Aktuelle Signalinformationen
- Kanal-Konfiguration: Aktive Kanal-Anzeige
- Netzwerk-Details: IP, MAC, Gateway, Signalstärke
- IP-Konfiguration: Manuelle Receiver-IP Einstellung
- Connection Status: Echtzeit-Verbindungsüberwachung
- Auto-Connect: Automatische Wiederverbindung beim Start
- Connection Panel Toggle: Einklappbare Verbindungssteuerung
- Real-Time Polling: 5-Sekunden Status-Updates
- Smart Error Handling: Verbesserte Fehlermeldungen bei Verbindungsproblemen
# Repository klonen
git clone https://github.com/pepperonas/yahama-controller.git
cd yamaha-controller
# Dependencies installieren
npm install
# PM2 Process starten
pm2 start server.js --name yamaha-controller
# PM2 Auto-Start aktivieren
pm2 startup
pm2 save-
Dependencies installieren:
npm install
-
Server starten:
npm start
-
Anwendung öffnen:
- Browser:
http://yamaha.pi.localoderhttp://localhost:5001 - Netzwerk:
http://[RaspberryPI-IP]:5001
- Browser:
-
Receiver IP-Adresse finden:
- Router Admin-Panel für verbundene Geräte überprüfen
- Nach "Yamaha" oder "RX-V577" in der Geräteliste suchen
- Oder das Netzwerk-Menü des Receivers für die IP-Anzeige nutzen
-
Mit Receiver verbinden:
- Receiver IP-Adresse im Verbindungspanel eingeben
- "Verbinden" klicken um die Verbindung herzustellen
- Die IP-Adresse wird in
receiver-config.jsonfür zukünftige Nutzung gespeichert
-
Direkter Zugriff:
index.htmlim Webbrowser öffnen- Keine Installation erforderlich, aber möglicherweise CORS-Einschränkungen
-
Bei CORS-Problemen:
- Node.js Server-Methode verwenden (empfohlen)
- Oder lokalen Webserver starten:
python -m http.server 8000
yamaha-controller/
├── public/ # Statische Assets
│ ├── assets/ # Bilder und andere Assets
│ │ ├── yahama-mockup-1.png # Mockup-Bild 1
│ │ └── yamaha-mockup-2.png # Mockup-Bild 2
│ ├── favicon.ico # Website Icon
│ ├── favicon-16x16.png # 16x16 Favicon
│ ├── favicon-32x32.png # 32x32 Favicon
│ ├── apple-touch-icon.png # iOS App Icon
│ ├── android-chrome-192x192.png # Android App Icon (192x192)
│ └── android-chrome-512x512.png # Android App Icon (512x512)
├── index.html # Haupt-Interface mit Advanced Controls
├── server.js # Express.js Server mit CORS Proxy
├── package.json # Node.js Dependencies
├── receiver-config.json # Gespeicherte Receiver-IP-Adresse (gitignore)
├── deploy-raspi.sh # Deployment-Script für Raspberry Pi
├── .gitignore # Git Ignore-Regeln
└── README.md # Diese Dokumentation
- Server: Node.js mit Express.js
- Dependencies: Express, CORS, HTTP-Proxy-Middleware
- Port: 5001 (Standard)
- Netzwerk: Läuft auf 0.0.0.0 für Netzwerkzugriff
- Process Manager: PM2 für Produktionsumgebung
- Interface: Single Page Application mit Dark Theme
- Config: Automatische IP-Speicherung in JSON-Datei
- Health Check:
/api/healthEndpoint für System-Monitoring - Status Polling: Automatische Receiver-Status-Updates alle 5 Sekunden
- Subdomain-Zugriff: ✅ Verfügbar über http://yamaha.pi.local (nginx Reverse Proxy)
- Receiver IP-Adresse eingeben (z.B.
192.168.1.100) - "Verbinden" klicken - der Status-Indikator zeigt "Verbunden" bei Erfolg
- Steuerelemente erscheinen nach erfolgreicher Verbindung
- Den runden Power-Button zum Ein-/Ausschalten klicken
- Status zeigt aktuellen Zustand (Ein/Standby)
- Lautstärke-Regler für Pegelanpassung verwenden (-80 dB bis +16 dB)
- +/- Buttons für präzise Einstellungen
- "Stummschaltung" zum Umschalten des Stummzustands
- Beliebige Eingangstaste klicken um Quelle zu wechseln
- Aktive Quelle ist blau hervorgehoben
- Unterstützt HDMI, AV, Audio, AirPlay, Server, USB und Tuner-Eingänge
- Zwischen Hauptzone und Zone 2 mit den Tabs wechseln
- Jede Zone hat unabhängige Steuerung
- Szene 1-4 Buttons klicken um vorkonfigurierte Einstellungen zu aktivieren
- Szenen kombinieren Quellenauswahl und DSP-Einstellungen
Diese Anwendung ist für den Yamaha RX-V577 entwickelt, sollte aber auch mit anderen Yamaha-Receivern funktionieren, die das XML-Steuerungsprotokoll unterstützen:
- RX-V Serie (RX-V473, RX-V573, RX-V673, RX-V773)
- HTR Serie mit Netzwerkfähigkeit
- Andere netzwerkfähige Yamaha AV-Receiver
Die Anwendung verwendet Yamahas XML-Steuerungsprotokoll über HTTP POST-Anfragen an /YamahaRemoteControl/ctrl.
Beispiel-Befehle:
<!-- Power On -->
<YAMAHA_AV cmd="PUT"><Main_Zone><Power_Control><Power>On</Power></Power_Control></Main_Zone></YAMAHA_AV>
<!-- Volume Set -->
<YAMAHA_AV cmd="PUT"><Main_Zone><Volume><Lvl><Val>-200</Val><Exp>1</Exp><Unit>dB</Unit></Lvl></Volume></Main_Zone></YAMAHA_AV>
<!-- Input Select -->
<YAMAHA_AV cmd="PUT"><Main_Zone><Input><Input_Sel>HDMI1</Input_Sel></Input></Main_Zone></YAMAHA_AV>
<!-- Get Status -->
<YAMAHA_AV cmd="GET"><Main_Zone><Basic_Status>GetParam</Basic_Status></Main_Zone></YAMAHA_AV>- Receiver und steuerndes Gerät müssen im selben Netzwerk sein
- HTTP-Anfragen an Receiver IP-Adresse auf Port 80
- Keine Authentifizierung für lokalen Netzwerkzugriff erforderlich
- 🔧 Power Toggle Bugfix - Entfernung der veralteten
checkIfLocked()Aufrufe behoben - ✅ Erhöhte Stabilität - Power-Button funktioniert jetzt fehlerfrei ohne JavaScript-Fehler
- ✅ Unlock-Mechanismus komplett entfernt - App funktioniert ohne Authentifizierung
- ✅ UI-Optimierung - Audio Enhancement als zweite Sektion in Grundsteuerung verschoben
- ✅ Auto-Connect aktiviert - Automatische Verbindung beim Laden mit gespeicherter IP
- ✅ Volume Buttons Fix - +/- Lautstärke-Buttons funktionieren jetzt korrekt
- ✅ Enhanced Error Handling - Detaillierte Fehlermeldungen und Null-Pointer-Schutz
- ✅ Verbesserte Stabilität - Robuste Verbindungslogik mit Fehlerbehandlung
- ✅ Zuverlässigkeit - Alle Steuerungsfunktionen direkt ohne Sperren verfügbar
- ✅ PWA-Funktionalität mit korrekten App-Icons
- ✅ Dual Theme Support (Dark/Light Mode)
- ✅ Responsive Design-Verbesserungen
- ✅ Erweiterte Audio-Funktionen
- "Verbindung fehlgeschlagen": IP-Adresse auf Korrektheit überprüfen
- "Netzwerkfehler...":
- IP-Adresse des Receivers überprüfen
- Sicherstellen, dass Receiver eingeschaltet und im Netzwerk erreichbar ist
- Bei persistenten Fehlern: Receiver neu starten und erneut versuchen
- Einschalten funktioniert nicht:
- RX-V577 reagiert möglicherweise nicht auf Netzwerkbefehle im Standby über Wi-Fi
- Ethernet-Verbindung für zuverlässigeres Einschalten verwenden
- Physischer Power-Button oder IR-Fernbedienung für erstes Einschalten nötig
- Netzwerkverbindung überprüfen
- Sicherstellen, dass Receiver eingeschaltet ist
- Status-Polling erfolgt automatisch alle 5 Sekunden
Aufgrund von Browser-Sicherheitsbeschränkungen können CORS (Cross-Origin Resource Sharing) Probleme bei Anfragen an den Receiver auftreten. Lösungen:
-
Lokalen Webserver verwenden:
# Python 3 python -m http.server 8000 # Node.js npx http-server
-
Browser-Flags (nur zum Testen):
- Chrome:
--disable-web-security --user-data-dir=/tmp/chrome_dev - Nicht für reguläre Nutzung empfohlen
- Chrome:
-
Proxy-Setup: Lokalen Proxy konfigurieren um Anfragen an Receiver weiterzuleiten
- Chrome/Chromium: Beste Kompatibilität
- Firefox: Gute Kompatibilität
- Safari: Eingeschränkt durch strengere CORS-Richtlinien
- Edge: Gute Kompatibilität
# Status anzeigen
pm2 status
# Service starten (falls nicht laufend)
pm2 start server.js --name yamaha-controller
# Logs anzeigen
pm2 logs yamaha-controller
# Neustart
pm2 restart yamaha-controller
# Stoppen
pm2 stop yamaha-controller
# Entfernen
pm2 delete yamaha-controller
# Auto-Start konfigurieren
pm2 startup
pm2 saveDas Projekt läuft optimal auf einem Raspberry Pi als dedizierter RX-V577 Controller:
- Raspberry Pi OS mit Node.js und PM2
- Netzwerkzugriff über lokale IP-Adresse
- Auto-Start beim Systemstart durch PM2
- Log-Management durch PM2 integriert
Martin Pfeffer 2025 Berlin, Lizenz MIT
Yamaha und RX-V577 sind Markenzeichen der Yamaha Corporation.

