Funktionsweise filesystem Keyboard

  • Ist das Thema noch aktuell bzw. braucht Ihr noch weitere Infos

    Hallo Thomas,
    ich greife das nochmal auf, da ich ein sehr komisches Problem habe. Ich benutze das Filesystem für Andy42gr sein Dämmerungsschalter.
    beim Start des DoorPi legt das Filesystem die 2 Dateien an und schreibt false rein. Warum?? Weil dadurch habe ich vermutlich immer wieder das Problem, wenn die Dateien durch das Script des Twilight gelöscht und dann neu erstellt werden,steht ab und zu nicht die gewünschte 1 sondern wieder false drin. Ist aber kein Problem des Scriptes. Habe das gleiche phänomen wenn ich das File über nano erstelle, ne 1 reinschreibe und speichere. Öffne ich die Datei wieder und überschreibe das false und speichere dann, ist alles gut.
    Wie genau arbeitet das Filesystem und warum werden die Input Dateien mit false erstellt. Bei Output kann ich das nachvollziehen, da ja dort das Filesystem "Ausgänge" erstellt.
    ?(


    Gruß Peter

    • Offizieller Beitrag

    @fraeggle Ich hab es mal als extra Thema rausgenommen, hoffe das ist okay so...


    Das was Du beschreibst ist die automatische Rücksetzfunktion des filesystem-Keyboard. Ziel ist ein Taster-ähnliches Verhalten auf Dateien zu projizieren.
    In der Config gibt es für das Keyboard die Möglichkeit das Verhalten zu deaktivieren

    Code
    [keyboards]
    virtual = filesystem
    
    
    [virtual_keyboard]
    base_path_input = /var/DoorPI/keyboard/inputs/
    base_path_output = /var/DoorPI/keyboard/outputs/
    reset_input = false

    Entsprechende Stellen im Quellcode sind:
    https://github.com/motom001/Do…d/from_filesystem.py#L126
    https://github.com/motom001/Do…rd/from_filesystem.py#L38

  • Ich klinke mich hier mal ein, sonst hätte ich ein neues Thema eröffnet dazu.


    Es wird also eine Datei "virtual_klingel" erzeugt mit dem Wert "False", schreibe ich in die Datei also ein True, wird das Script ausgeführt.
    Ein erneutes reinschreiben in die Datei (egal ob False oder True) erzeugt kein erneutes ausführen der ScriptDatei.
    Erst beim dritten mal wieder und dann immer abwechselnd. Wenn ich aber nun den Wert "reset_input" auf False setze, ändert sich nichts im Handling.


    Die Variable "self.__reset_input", welche den Wert aus der ConfigDatei "reset_input" enthält (Default True) wird weiter in diesem code nicht benutzt. Somit ist es egal mit was die Variable beschrieben ist.


    Ich habe den Code mal abgeändert auf den unten stehenden.
    reset_input = TRUE --> TRUE in die Datei -> Script, erneutes TRUE oder FALSE, kein Script, wieder TRUE --> Script
    reset_input = FALSE --> TRUE in Datei -> Script, erneutes TRUE -> Script, erneutes TRUE -> Script, False oder was anderes - kein Script, TRUE -> SCRIPT
    Somit ist jetzt bei jedem erneutem reinschreiben nach TRUE erstmal der Reset auf FALSE und es wird kein Script ausgeführt.
    Oder habe ich den Sinn der Funktion missverstanden ? EDIT Zeile 3,7, 9,10


    Gruss Kater432