Filament Out Sensor

Hi, ich habe an meinen Raspi einen FilamentOutSensor gebaut, welcher auch ganz gut funktioniert. Leider habe ich jetzt schon öfters nicht mitbekommen dass das Filament leer war. Die Meldung steht zwar auf dem Display, aber da der Drucker auf einer anderen Etage steht, habe ich das nicht gesehen.
Gibt es die Möglichkeit dass der Raspi ein akustisches Signal ausgibt wenn das Filament leer ist?

Comments

  • Bei erkanntem Filamentende vom server geht er ja in Pause Modus. Im Pause g-Code Skript kannst du machen was du willst, also auch externe Skripte aufrufen. Der pi hat allerdings keine Lautsprecher und  wenn er in der falschen Etage ist hörst du die auch nicht.

    Besser ist da eine Nachricht aus Handy. Das kannst du mit Repetier-Informer machen und ab der nächsten version 1.3 können pro user das auch per Pushover oder auch whatsapp über einen Webdienst.

    Oder du hast einen Webdienst der darauf aufmerksam machen kann bei dir zuhause - mit der Möglichkeit webseiten und skripte aufzurufen kannst du ja implementieren was du willst:-)
  • wie kann ich denn einen externen Befehl starten? Scheinbar kann man diesen in die "extcommands.xml" eintragen. Diese xml finde ich aber gar nicht. als Beispiel würde ich gerne folgendes tun: "bash telefilout.sh". das File habe ich im /home/pi angelegt.
  • Die Datei ist normal nicht da aber bei unserem pi image schon. Steht unter /var/lib/Repetier-Server/database. Siehe auch Advanced Configuration im manual. Befehl wird aber als user repetierserver ausgeführt. Zum test daher mal so aufrufen:
    sudo -i
    Jetzt bist du root. Dann: 
    sudo -u repetierserver deinBefehl

    Skripte am bestem immer unter /var/lib/Repetier-Server/scripts ablegen, dann sind sie schon mal von repetierserver lesbar. Bei shell scripten am besten in der ersten Zeile noch

    #!/bin/bash

    reinschreiben und datei ausführbar markieren:
    chmod a+x Dateiname

    Dann musst du auch kein /bin/bash mehr davorschreiben um es auszuführen.
  • ok - habe ich mal so gemacht. Jetzt habe ich das Problem dass das Script über die GUI nicht funktioniert. Wenn ich über die CLI es wie folgt teste, geht es
    sudo /var/lib/Repetier-Server/scripts/telefilout.sh

    Die  extcommands.xml sieht so aus:
    <config>
            <!--
           If you want to run external commands, enter them in this configuration with
           full 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 simply
           security. The commands you enter here are executed with the privileges of the
           daemon running the server. If you would allow online configuration, a hacker could
           simply add any command he needs to hack your system.
        -->
            <command>
                    <name>Shutdown Server</name>
                    <execute>sudo /sbin/shutdown -h now</execute>
                    <confirm>Really shut down the server?</confirm>
                    <!-- Define if command should show up in local printer interface, default true.-->
                    <local>true</local>
                    <!-- Define if command should show up in remote printer interface, default true.-->
                    <remote>true</remote>
                    <!-- Define if command should show up only for users with print permission, default true.-->
                    <print-permission>true</print-permission>
                    <!-- Define if command should show up only for users with add files permission, default false.-->
                    <add-permission>true</add-permission>
                    <!-- Define if command should show up only for users with del files permission, default false.-->
                    <del-permission>true</del-permission>
                    <!-- Define if command should show up only for users with configuration permission, default false.-->
                    <config-permission>true</config-permission>
            </command>
            <command>
                    <name>Reboot Server</name>
                    <execute>sudo /sbin/shutdown -r now</execute>
                    <confirm>Really reboot the server?</confirm>
                    <!-- Define if command should show up in local printer interface, default true.-->
                    <local>true</local>
                    <!-- Define if command should show up in remote printer interface, default true.-->
                    <remote>true</remote>
                    <!-- Define if command should show up only for users with print permission, default true.-->
                    <print-permission>true</print-permission>
                    <!-- Define if command should show up only for users with add files permission, default false.-->
                    <add-permission>true</add-permission>
                    <!-- Define if command should show up only for users with del files permission, default false.-->
                    <del-permission>true</del-permission>
                    <!-- Define if command should show up only for users with configuration permission, default false.-->
                    <config-permission>true</config-permission>
            </command>
            <command>
                    <name>Send Filament Out</name>
                    <execute>sudo /var/lib/Repetier-Server/scripts/telefilout.sh</execute>
            </command>
            <execute name="shutdown" allowParams="false" sync="false">sudo /sbin/shutdown -h now</execute>
            <execute name="reboot" allowParams="false" sync="false">sudo /sbin/shutdown -r now</execute>
    </config>

    Kann jetzt na nur noch ne Kleinigkeit sein ;-)
  • :-) jetzt läuft's - der Eintrag in die /etc/sudoers.d hat noch gefehlt
    Danke für die Unterstützung
  • eine Frage noch bezüglich selbst erstellter Scripts...
    wie kann ich solche Scripte aus den ereignisabhängingen G-Codes ansteuern? z.B. "Sende bei Druckabbruch"
  • Du kannst Events mit dem Servercommand @event starten. 
    Die Eventbezeichnungen findest du in der api doku: https://prgdoc.repetier-server.com/v1/docs/index.html#/en/web-api/websocket/events

    Bei Druckabbruch wäre es dann als beispiel: @event jobKilled

    Bedenke aber das es Seiteneffekte haben kann, wenn du echte events triggeren willst. Um sicher zu gehen solltest du deine eigenen events schreiben. Informationen hierzu findest du im Handbuch
Sign In or Register to comment.