Druckende , Windows heruntefahren

Hallo zusammen , 

ich versuche seit ein paar Stunden , meinem Repetier-Server so zu programmieren ,
das er nach Druckende den Windows-PC auf dem der Server läuft automatisch herunter zu fahren , 
allerdings nur , wenn ich auf Schaltfläche "nach dem Druck herunterfahren" klicke , 
also nicht immer.

Bin ich da richtig unter folgender Einstellung ? :
G-Codes / Ereignisabhängig / 10:Drucker Herunterfahren 

Ist es hier möglich auf 50Grad Hotendtemperatur zu warten und anschließend den PC herunter zu fahren ? 
Wenn ja wie wäre das zu realisieren ? 

Ich habe schon das Internet durchsucht , 
hier sprechen alle von einem "extcommands.xml" ,
nur wo soll das file hin ? was muss darin stehen ?
Was muss in den Gcode ? 

der Sinn wäre wie folgt : 
Der Druck ist beendet , 
Der PC fährt herunter wenn 50°C oder weniger ereicht sind , 
dadurch wird der Drucker vom Stromentz getrennt (via 5V(USB) Relais),
da der Drucker nicht per Software ausgeschaltet werden kann.

Bitte verzeiht mir meine dummen Fragen , 
aber mit Codierung/Programmierung hab ich keine Erfahrung


Comments

  • Ja annahmen sind richtig. Maximale hotendtemperatur wird ja bereits in der Konfiguration für das Ereignis mit angegeben, damit die Lüfter so lange herunterkühlen.
    extcommands.xml muss bei windows in C:\ProgramData\Repetier-Server\database stehen. Syntax siehe manual in advanced setup. Da muss eine <execute> tag eingegeben werden das du dann im Ereignis ausführst. Frage ist nur welcher befehl. Laut
    https://praxistipps.chip.de/shutdown-per-cmd-die-wichtigsten-befehle_51207
    sollte "shutdown -s" wohl klappen. Eventuell mit -t wartezeitInSekunden wenn er noch etwas warten soll. Server blockiert nämnlich bis der Job zu 100% beendet ist also auch aus der Liste genommen wurde.
  • Danke für die schnelle Antwort.

    Der Befehl "shutdown.exe -s" stimmt in der Eingabeaufforderung von Windows .
    Allerdings muss da ein .exe hinten dran stehen.

    Mein Problem ist dass der Ordner "Database" nicht existiert .
    Das System läuft auf Win7 , evtl ist dass noch entscheidend , Ich komme nur bis: C:/Programme/Repetier Server/ .

  • Das System läuft auf Win7 , evtl ist dass noch entscheidend , Ich komme nur bis: C:/Programme/Repetier Server/ .
    Sorry da hab ich mich kurz vertippt , der Pfad heißt bei mir :
    C:/Program Fiels/Repetier Server 

    Darin sind folgende Ordner : bin , extra , Firmware , Languages , licences , modules , tmp , wizard , www , Uninstal(Program) , auch in allen Unterordnern finde ich nirgends die besagte "extcommands.xml"
  • Hallo. die extcommands befindet sich nicht in "Programme" sondern in "ProgramData". Hier noch einmal der vollständige Pfad: C:\ProgramData\Repetier-Server\database 
  • Danke für die Hilfe , habe den Ordner endlich gefunden , war ein versteckter Ordner (danke Microsoft ;-) ) , darin war allerdings keine "extcommands.xml" diese habe ich mir aber jetzt über Download im Internet besorgt , nun muss ich es nur noch zum laufen dringen , ein erster Versuch hat erstmal nicht geklappt .
  • Ich nähere mich langsam (sehr langsam) meinem Ziel , 
    allerdings habe ich irgendwas noch nicht verstanden . 

    Ich habe jetzt folgendes im G-Code hinterlegt unter "10:Drucker herunterfahren":
    @execute "Windows herunterfahren"

    Damit habe ich mir eine Schaltfläche Schaltfläche namens "Windows herunterfahren"
    im Menü des Servers gebaut oder war die vorher schon da und ich hab es nicht gesehen ? 

    Allerdings fährt er noch immer nicht automatisch herunter,
    über die Schaltfläche "nach dem Druck herunterfahren"


    Meine Extcommands : (diese hab ich so im Netz gefunden)

    <?xml version="1.0"?>

    -<config>

    <!--If you want to run external commands, enter them in this configuration withfull path. You will see them in the main menu. Copy this file into the<storage>/database directory.Security consideration: The reason there is no online editor for this is simplysecurity. The commands you enter here are executed with the privileges of thedaemon running the server. If you would allow online configuration, a hacker couldsimply add any command he needs to hack your system. -->



    -<command>

    <name>Windows herunterfahren</name>

    <execute>c:\\Windows\\System32\\shutdown.exe -s</execute>

    <confirm>Wirklich herunterfahren?</confirm>

    </command>

    <!--G-code files can contain@execute cmd param1 param2commands. To prevent external users from executing unwanted or dangerous commands,only commands defined here are allowed to execute. More over, only the shortcutsdefined here are to be used as cmd in @execute. Prevent parameter where ever possible. -->


    <execute allowParams="true" name="play">/usr/bin/afplay</execute>

    <!-- play the sound file on moc os x -->


    </config>



    Ich bin mal gespannt ob ich das noch zum laufen bekomme.




  • Wie ich schon im ersten Post :-) sagte, must du das in ein <execute> tag packen, damit es über @execute ausgeführt wird. Siehe play in deinem Beispiel. Zugegeben du hast auch ein execute, aber innerhalb von command und das ist explizit und nur für das Menü und der Grund warum du es da siehst aber es sonst nicht klappt über @execute. Aber ist ja schon mal gut das der Befehl grundsätzlich so klappt. Mit der kleinen änderung wird es dann denke ich auch wie geplant klappen.
  • Also ich muss gestehen , ich bringe es nicht zum laufen , allerdings reicht mir dann erstmal die Möglichkeit das System selbstständig aus der Ferne herunterfahren zu können . Anders wäre es zwar schön aber nicht unbedingt nötig .
    Eventuell beschäftige ich mich irgendwann nochmal von neuem damit . Falls jemand zwischenzeitlich eine Lösung findet , teilt es mir gerne mit ;-)
  • Also ich gestehe , es lässt mir keine Ruhe .
    Ist mein extcommands so richtig geschrieben ? 


    -<command>

    <name>Windows herunterfahren</name>

    <execute>c:\\Windows\\System32\\shutdown.exe -s</execute>

    <confirm>Wirklich herunterfahren?</confirm>

    </command>


    -<execute>

    <name>herunterfahren</name>

    <execute>c:\\Windows\\System32\\shutdown.exe -s</execute>

    </execute>


    oberer Teil (innerhalb command) ist die Schaltfläche im Menü , das ist mir klar .
    unterer Teil sollte dann für das automatische abschalten genutzt werden .
    stimmt der Code so ? 


    Vielen Dank auf jeden Fall.
  • Nein der ist falsch. In meinem Beispiel stand ja
    <execute allowParams="true" name="play">/usr/bin/afplay</execute>
    Angepasst auf deinen code
    <execute allowParams="false" name="herunterfahren">c:\\Windows\\System32\\shutdown.exe -s</execute>

    sollte klappen. wenn du den Teil:
    -<execute>

    <name>herunterfahren</name>

    <execute>c:\\Windows\\System32\\shutdown.exe -s</execute>

    </execute>

    ersetzt.
  • Vielen Vielen Dank für die geduldige und tolle Hilfe .
    Darauf wäre ich selbst niemals gekommen.
    Es funktioniert jetzt einwandfrei, danke.

    Für alle Interessenten , mein extcommand-File :

    <command>
            <name>Windows herunterfahren</name>
            <execute>c:\\Windows\\System32\\shutdown.exe -s</execute>
            <confirm>Wirklich herunterfahren?</confirm>
        </command>

    <execute allowParams="false"
    name="herunterfahren">c:\\windows\\System32\\shutdown.exe -s -t 360</execute>


    Zusammenfassung : 
    Innerhalb "Command" erstellt einen Button im Menü ,
    somit kann Windows per Knopfdruck heruntergefahren werden.

    Innerhalb "execute" wird Windows per G-Code heruntergefahren,
    ich hab folgendes dazu im Menü stehen:
    --@execute "herunterfahren"--
    hinter "shutdown.exe -s" folgt das "-t 360" dies bedeutet ,
    dass Windows erst nach 6 Minuten (360 Sekunden) herunterfährt .
    Dies ist in meinem Fall notwendig , um den Drucker ausreichend zu kühlen.
    Ansonsten würde der Drucker ohne Strom bei 200°C stehen bleiben.
    Bei mir ist dieser Befehl im Menü unter "Drucker herunterfahren" , 
    somit geschieht dies auch nur nach meinem Wunsch.
Sign In or Register to comment.