HKS mit HA - Die Anleitung zum Nachbauen - #03.05 JVC Beamer

  • Zurück zur Startseite und zum Inhaltsverzeichnis

    Voriges Kapitel: #03.03 Panasonic UHD-Player

    Nächstes Kapitel: #03.06 DCX2496 DSP

    Downloads: #11 Downloads [HKV only]


    Version: 2024-04-09

    Integration eines JVC-Beamers (N, NX, NP, NZ) in Home Assistant.


    Es gibt für JVC-Beamer sowohl eine offizielle HA-Integration, als auch eine HACS-Integration.

    Ich war mit der Funktion beider Integration nicht wirklich zufrieden, insbesondere kann mit diesen jeweils nur ein sehr kleiner Bruchteil der Schnittstellenfunktionalitäten genutzt werden.


    Auf Basis der offiziellen JVC-Schnittstellendokumentation habe ich die komplette IP-Schnittstellenfunktionalität mit allen 185 Kommandos abgebildet. (Nur das binäre Übertragen der Gamma-Kurven habe ich noch ausgelassen).

    Die Schnittstellendokumentation aus 2021 enthält jedoch nur die Parameter bis Firmware 1.0 der NZ-Reihe.

    Ich nutze aktuell v2.0 am NZ8. Die Parameter der v2.0 hätte ich soweit mit Trial'n'Error ergänzt (LaserDimming 3, FrameAdapt 3).

    Die Parameter aus v3.0 (Laser 0-100, etc.) sind noch nicht enthalten. Wenn sie jemand kennt oder herausfindet kann ich sie gerne ergänzen.


    Link zur JVC-Schnittstellendokumentation

    https://www.avsforum.com/attac…and_for_leo3-pdf.3211399/
    pasted-from-clipboard.png


    In HA sieht das Dashboard (mit custom:buttoncard) wie folgt aus:

    pasted-from-clipboard.png


    Die Sensor-Entity des JVC stellt die benötigten bzw. ausgewählte Beamer-Parameter wie folgt dargestellt als Attribute dar.

    Jeder Parameter kann jeweils im Rohdaten-Format, wie auch Human-Readable-Klartext-Format angezeigt werden.


    ZB. lautet hier

    • <IP:6> im Klartext <Input: HDMI-1>

    oder

    • <PMCM: 4> => <ClearMotionDrive: High>


    pasted-from-clipboard.png


    Um Beamer-Parameter zu ändern, stellt diese Integration in bekannter Weise (sofern ihr diese Anleitung bis hierher schon gelesen habt) ein Service zur Verfügung.

    Mit dem Service <jvc_beamer_nn.command_list> kann man eine beliebig lange Liste an Kommandos an den Beamer senden oder vordefinierte Kommando-Listen nutzen.


    Beginnen Kommandos mit einem „!“ so wird eine Parameteränderung den Beamer übermittelt,

    beginnen Kommandos mit „?“ wird der Parameter nur abgefragt und in den Attributen eingetragen.


    In folgendem Beispiel werden also drei Kommandos an den Beamer gesandt:

    • !PMPM0C: PictureMode wird auf User1 (=0C) gesetzt
    • !PMCM4: ClearMotionDrive wird auf Hight (=4) gesetzt
    • ?IFLT: Die akutelle Laufzeit des Beamer wird abgefragt

    Der Parameter <response: all> des Services bewirkt, dass sowohl die Rohdaten als auch die Human-Readable-Version der Parameterabfragen in die Attribute gespeichert werden.

    Hier kann aber alternativ auch „raw“ oder „formated“ eintragen werden, um nur eine der beiden Darstellungen einzutragen.


    pasted-from-clipboard.png


    Die Liste und Bedeutung aller JVC-Parameter kann man aus der JVC-Schnittstellenspezifikation (siehe oben) entnehmen

    oder auch direkt aus der Datei /custom_components/jvc_beamer_nn/jvc_dicts.py.

    Den Inhalt dieser wesentlichen Datei erkläre ich kurz im folgenden Text:


    Das Dictonary <nncommands>:

    Hier habe ich einige Kommando-Listen vorbereitet.

    Diese können im Service genutzt aber auch von Euch beliebig geändert oder erweitert werden.

    Die Kommando-Liste <nnStart> wird beim Neuverbinden mit dem Beamer abgefragt

    und die Liste <nnSheduler> wird von HA automatisch alle 30 Sekunden abgefragt.


    pasted-from-clipboard.png


    Der Human-Readable-Klartext sowie der Parameter-Typ aller nutzbaren Beamer-Parameter kann aus dem Dictonary <jvcCmds> entnommen werden.


    pasted-from-clipboard.png


    Und im Dictionary <dictParameters> sind alle verfügbaren Optionen je Parameter-Typ spezifiziert.

    pasted-from-clipboard.png

  • wirklich cool!

    Habe sowas in FHEM für SONY Beamer in klein nachgebaut. Remote einschalten, ausschalten, Bildmodiwecheln und Infos auslesen.
    Habe es dann aber tatsächlich nicht mehr genutzt, weil mein HW65 knapp 20Watt im Standby verbraucht, damit das funktioniert.

    Wie sieht das hier bei JVC Beamern aus? Sind im Standby besser? Sorry falls die Frage ein wenig Offtopic ist!

    LG und Danke!

  • Nur am Rande, ich erinnere mich, das JVC empfiehlt, die Projektoren nicht vom Strom zu trennen sondern nur einen Netzfilter zwischenzuschalten.


    Hingergrund sind evtl Spannungsspitzen bei Ein und Ausschaltvorgängen mit dem Risiko die Elektronik zu schädigen

    "Furcht führt zu Wut, Wut führt zu Hass, Hass führt zu unsäglichem Leid." (Yoda)

  • Und wie machst du das dann? 5 Minuten nach dem der Projektor ausgeschaltet wurde geht das smartplug auch aus?

    Wenn die Leistung unter 5W sinkt weiss man, dass die Lüfter aus sind. Dann schaltet die SmartPlug automatisch ab.


    Hingergrund sind evtl Spannungsspitzen bei Ein und Ausschaltvorgängen mit dem Risiko die Elektronik zu schädigen

    Mein ganzes Kino ist stromlos, wenn ich es nicht nutze. Wie man Netzteile richtig baut sollte auch bei JVC bekannt sein.

  • Wenn die Leistung unter 5W sinkt weiss man, dass die Lüfter aus sind. Dann schaltet die SmartPlug automatisch ab.

    Man kann auch den Status des JVC abfragen, mit dem Power Command.

    Dann kommt i.d.R. einer von drei Werten zurück: Standby, Lamp On, Cooling.


    Bei mir ist es dann so eingestellt, dass nach dem Wechsel von Cooling zu Standby noch 5min gewartet wird und dann die Lüfter ausgehen.

    "A computer lets you make more mistakes faster than any other invention in human history, with the possible exceptions of handguns and tequila." - Mitch Ratcliffe

  • Man kann auch den Status des JVC abfragen, mit dem Power Command.

    Dann kommt i.d.R. einer von drei Werten zurück: Standby, Lamp On, Cooling.


    Bei mir ist es dann so eingestellt, dass nach dem Wechsel von Cooling zu Standby noch 5min gewartet wird und dann die Lüfter ausgehen.

    Die Hushbox-Lüfter laufen temperaturgeregelt, unabhängig von Beamerstatus.

  • UPDATE 2024-10-17


    Ich habe meine Denon-Integration hinsichtlich Performance und Stabilität optimiert.

    Folgende neue Funktion habe ich ergänzt:


    Presets und Preset-Groups

    Es gibt zwar die Picture-Modes dieser haben aber ihre Limits.

    Daher gibt es jetzt die Preset-Funktionen in meiner JVC Integration. Die Preset werden in der Datei <jvc_presets.py> konfiguriert:

    pasted-from-clipboard.png


    Man definiert also Presets aus einer Liste von Parametern. Und Preset-Groups aus einer Liste von Presets.

    Bei den Parameter kann man als Option ergänzen, ob dieser Parameter nur gesetzt (#), nur geprüft (~) oder gesetzt und geprüft wird.


    Am Beispiel: "PG_Disc" sollte es verständlich werden:

    - Diese <presetgroup> ruft die Presets <P_Base>, <P_Disc> und dann <P_Base_End> auf. Unter anderen werden dann also folgende Parameter aufgerufen:

    - "IP~ 6" Es wird nur geprüft ob HDMI1 auch aktiv ist

    - "PMPM 0D" Picturemode User2 wird gesetzt und damit "PG_Disc" als aktiv angezeigt wird muss auch dieser Picturemode aktiv sein

    - "PMLP# 2" Der Laser wird auf mittlere Stufe gesetzt. Für das Prüfen des Presets wird die Laser aber nicht berücksichtigt.


    Die Services dazu:


    Ein Preset aufrufen:

    pasted-from-clipboard.png


    Eine Preset-Gruppe aufrufen:

    pasted-from-clipboard.png


    Die Preset-Attribute der JVC-Entity. Aktive Presets haben den Wert "1"

    pasted-from-clipboard.png


    Und das neue JVC-Dashboard beim Wechsel von PG_MadVR zu PG_Disc:


    pasted-from-clipboard.png => pasted-from-clipboard.png

  • Das is doch sehr sehr cool!! :big_smile::thumbup:

    Ich kann das oben leider nicht sehen, kann man dann auch Settings wie MPC/CMD usw. in den Presets hinterlegen?

    Konntest du die JVC "Netzwerk Passwort Geschichte" schon anschauen?


    Viele Grüsse

  • Dazu habe ich vor ein paar Wochen mal folgendes gefunden, vielleicht hilft das ja:



    Commands

    Library





    Das hier sieht mir so aus wie das was Karlklammer geschrieben hat:

    Code
        def _password_to_sha256(self, password: str) -> str:
            """
            Convert a password to sha256 for new models
            """
            val = f"{password}JVCKWPJ"
            return hashlib.sha256(val.encode()).hexdigest()

    Vielleicht kannst du damit schon mal was anfangen, bzw. vielleicht hilft das. Scheint auch mit Passwort ein 3Way handshake zu sein.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!