Zalman vlsys Fernbedienung Power ON

  • Power On bei ausgeschaltetem Rechner über die Fernbedienung sowie die Steuerung der Lüfert des Zalman HD160XT funktionieren!


    Das Panle, welches im Gehäuse unter dem CD-Slot hinter den kleinen Tasten sitz besitzt einen USB-RS232 Chip.


    In meinem System (CT VDR6) wird er als /dev/ttyUSB0 automatisch eingebunden.


    Um diesen Chip ansprechen zu können, müssen zunächst die Schnittstellenparameter mit stty gesetzt werden. Bei mir funktioniert es so:
    stty -F /dev/ttyUSB0 38400 -clocal -crtscts -hupcl -cstopb -parenb cs8 -ixon -ixoff raw


    Dann kann man mit folgenden Befehlen die Controller, die sich hinter dem Chip verstecken, abfragen und programmieren:


    echo -n -e "\0252" >/dev/ttyUSB0
    echo -n -e "\0252" >/dev/ttyUSB0
    Nachdem die 252 (Oktal!) zwei Mal gesandt wurde, antwortet das Board mit:
    MZ5
    Unter Win$ wird dies 10 Mal wiederholt. Ob es Sinn macht sei mal dahingestellt. Ich schicke die 252 vier mal an den Controller, damit kein Müll mehr die folgenden Befehle verhindert.
    Folgende Befehle stehen zur Verfügung (alle Oktal!):
    Lüfter1 setzten: 243 gefolgt von einem Wert zwischen 0 und 261
    Lüfter2 setzten: 244 gefolgt von einem Wert zwischen 0 und 261
    Power Taste auf ACPI setzen: 245 245 (Ja, der Befelt muss zwei mal sesandt werden!)
    Tastenwiederholung einstellen: 255 255
    Tastenwiederholung ausschalten: 254 254
    Temperatursensoren lesen: 242
    Der Controller antwortet mit: 373 temp1 374 temp2 während 26°C 260 entsprechen.


    Nach dem Systemstart lasse ich mit folgendem Script die Lüfter einstellen:
    # Hochfahrsript:
    stty -F /dev/ttyUSB0 38400 -clocal -crtscts -hupcl -cstopb -parenb cs8 -ixon -ixoff raw
    sleep 1


    # Initialisieren
    echo -n -e "\0252" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0252" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0252" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0252" >/dev/ttyUSB0
    sleep 1


    # ACPI Mode: A5 hex = 245 octal
    echo -n -e "\0245" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0245" >/dev/ttyUSB0
    sleep 1


    # Lüfter auf Minimaldrehzahl
    echo -n -e "\0243" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0070" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0244" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0100" >/dev/ttyUSB0



    #Runterfahrscript:
    stty -F /dev/ttyUSB0 38400 -clocal -crtscts -hupcl -cstopb -parenb cs8 -ixon -ixoff raw
    sleep 1
    echo -n -e "\0252" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0252" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0245" >/dev/ttyUSB0
    sleep 1
    echo -n -e "\0245" >/dev/ttyUSB0
    sleep 1
    stty -F /dev/ttyUSB0 0 -clocal -crtscts -hupcl -cstopb -parenb cs8 -ixon -ixoff raw


    Die letzte Zeile ist extrem wichtig, weil sonst beim Runterfahren irgend ein Müll in die Schnittstelle geschrieben wird, die den Controller verwirrt. Der Rechner lässt sich dann nicht mehr über die Fernbedienung starten.


    Man kann den Controller natürlich auch mit minicom connecten und dann sämtliche Befehle prüfen. In minicom muss man natürlich die Befehle als Dezimalzahlen senden. Also:
    Sensoren lesen: 162
    Lüfter 1 setzen: 163 gefolgt vom Stellwert
    Lüfter 2 setzen: 164 gefolgt vom Stellwert
    Power Taste -> ACPI: 165 165
    Identifikation lesen: 170
    Tastenwiederholung ausschalten: 172
    Tastenwiederholung einschalten: 173
    Wenn man an der Fernbedienung oder am Gehäuse Tasten drückt, kommen sie natürlich im Klartext in minicom an.
    Die Konfiguration von minicom muss entsprechend angepasst werden:


    E - Bps/Par/Bits : 38400 8N1
    F - Hardware Flow Control : Nein
    G - Software Flow Control : Nein


    Keine Modem Initialisierung!!!!!!!
    Kein Modem Reset!!!!!


    Jetzt muss nur noch jemand das Ding in Lirc zum laufen bringen. Das sollte aber absolut kein Problem für die entsprechen Spezies sein. Ich verwende weiter meinen Hauppauge IR Empfänge, weil er die schönen bunten Tasten unterstützt.


    So, das ist das Ergebnis von monatelangem suchen im Netz und tagelangem probieren sowie der unschätzbaren Hilfe von
    Dr. Daniel Rolf http://www.danielrolf.com - Vielen Dank noch mal auf diesem Wege!

  • Hmm, das klingt sehr interessant.


    Wenn ich dich richtig verstehe lassen sich somit die Lüfter regeln sowie die Temperatursensoren auslesen, ja?


    Dann bräuchte es jetzt ein kleines Skript welches die Lüfter regelt in Abhängigkeit von dem Sensor. Sowas sollte ja machbar sein irgendwie, stelle ich mir mal vor ;)

    Hardware: Zalman HD160XT; Asus H97M-Plus, 1024MB RAM, Digital Devices Cine S2 (rev 7), Atric-Einschalter, NEC3520 DVD-Laufwerk, Samsung 256 GB SSD-Festplatte --> darauf yaVDR 0.6
    Hifi: Denon AVR4306, Samsung UE40ES6300

  • Auch die Fernbedienung geht damit in vollem Umfang!
    Auch Einschalten des Rechners aus dem Aus-Zustand!


    Der Controller auf dem Frontpanel hat nach meiner Einschätzung auch einen eigenen Regler. Für dessen Programmierung habe ich aber nicht die entsprechenden Codes.
    Man kann aber natürlich auch einen kleinen PID Regler selber schreiben, wenn man etwas von Regelungstechnik versteht. Ich lasse meine Lüfter erst mal fest eingestellt.

  • Ich hatte es nicht hinbekommen, den IR-Empfänger mit meiner Wakeup-Platine zu verheiraten. Warum auch immer!?
    Diese mochte ich aber auf jeden Fall behalten, da ich dort rüber auch per Timer aufwecken kann.
    Deswegen hatte ich mir von nem netten Boardie eine kleine Lösung basteln lassen und habe einen anderen TSOP ins Gehäuse gehängt. Egal, ist hier OT.




    Ich stelle mir das Skript so vor:
    a.) Skript startet 1x und initialisiert wie von dir beschrieben die Verbindung zu dem Chip.
    b.) Im Skript läuft in einer Schleife nun folgendes:
    - Ist-Temperatur auslesen und "bewerten" zwischen 20°C und <max_Temp>
    - Temperatur relativ auf eine Spannung mappen.
    - Soll-Spannung einstellen.
    (am besten mit 30sek Intervall da sich die Temperatur eh nicht so schnell ändert)
    c.) Soweit ich sah waren zwei verschiedene Temperatursensoren bei dem Gehäuse dabei.
    Diese könnte man also für zwei verschiedene Lüfter verwenden und "Orte" im Gehäuse
    getrennt hoch-/runtertakten.
    d.) Zeitintervalle und max_Temp könnte dann z.B. über Variablen konfiguriert werden.



    Waren nicht auch mehr als 2 Lüfter anschließbar? - Evtl. könnte man dann auch definieren, welche Lüfter in Gruppen auf welchen Temperatursensor hören sollen? :)




    Ok, nur lauf gedacht.
    Für sowas bräuchte ich Zeit und Muse. Klingt nach ner tollen Aufgabe für langweilige Winterabende, im Moment baue ich rein gar nichts am VDR rum ;)

    Hardware: Zalman HD160XT; Asus H97M-Plus, 1024MB RAM, Digital Devices Cine S2 (rev 7), Atric-Einschalter, NEC3520 DVD-Laufwerk, Samsung 256 GB SSD-Festplatte --> darauf yaVDR 0.6
    Hifi: Denon AVR4306, Samsung UE40ES6300

  • Der Volume-Knob ist etwas speziell, er wird auf CTS und DSR zyklisch moduliert.


    flag= CTS * 2 + DSR


    Knob nach rechts: flag geht durch 0, 2, 3, 1, 0, 2, 3, 1, usw.
    Knob nach links: das ganze natürlich einfach umgekehrt


    Warnhinweise: Ich habe beim Rumprobieren schonmal das Teil entschärft, weil ich zu viel auf einmal an den Controller geschickt habe (Buffer-overrun???). Netzstecker ziehen, Minute warten, das half.


    Grüße


    dero

  • Hallo


    Bin bis jetzt eigentlich nur dankbarer Mitleser.
    Habe seit letzter Woche auch das HD160XT.


    Dank dem Script von oben lasse ich meine Lüfter nach dem Starten auf ein kaum hörbares Lüftchen runterfahren. Temperatur bei meinem P4 1,7 trotzdem max 42 Grad.
    Mittlerweile kann ich auch die Tasten mit dem Remote Plugin verwenden. Auch der Taster im Drehknopf wird erkannt. Einzig das Drehen deselben erkennt das Plugin nicht. Aber vielleicht findet da der eine oder andere noch eine Möglichkeit.


    Ansonsten das beste Board das ich für VDR kenne, weiter so.


    Gruß
    Gerald

    VDR1: Zalman HD160XT; Intel Core2 E5200, 2048 MB RAM, Hauppauge FF DVB-C, 1 x 320 GB \root. LiteON BD-ROM. Logitech DinvoMini Software: yavdr 3.0
    VDR2: LIAN LI PC-C37 MUSE; Intel Core2 E5400, 2048 MB RAM, Digital Everywhere Floppy-DTV DVB-C, 1 x 500 GB \root. Logitech DinvoMini Software: yavdr 3.0
    Server: Intel Pentium D820, 4096 MB RAM, 1 x 160 GB \root. 6 TB Raid 1, BD-ROM.

Jetzt mitmachen!

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