Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Dateinamen in Ordner herausfinden und anzeigen

    NEWS

    • Neuer Blog: Fotos und Eindrücke aus Solingen

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    Dateinamen in Ordner herausfinden und anzeigen

    This topic has been deleted. Only users with topic management privileges can see it.
    • E
      el_malto last edited by

      Moin,
      habe leider nicht wirklich einen passenden Titel gefunden.
      Kurz gesagt, ich möchte meine letzte Aufnahme in einen Ordner mit Telegram versenden. Wie das Senden mit Telegram funktioniert weiß ich. Mir geht es nun darum, die letzte Aufnahme zu identifizieren und den Dateinamen zu bekommen.

      Ich speichere meine Videos meiner Überwachungskamera mit MotionEye in einen Ordner mit Datum und Uhrzeit als Name.

      /motioneye/camera/2019-09-30_17-15-35.mp4
      /motioneye/camera/2019-09-30_17-20-01.mp4
      /motioneye/camera/2019-09-30_17-33-49.mp4
      ...
      

      Ich möchte nun den Namen der letzten Datei in diesen Ordner herausfinden. Ich habe schon überlegt ein extra Bash Skript zu schreiben und mir den Dateinamen dann z.B. in einen Datenpunkt zu schreiben. Würde es aber schöner finden, dass direkt mit Blockly oder als JavaScript Funktion in Blockly einbauen zu können.
      Da ich leider kein JS kann hoffe ich das mir jemand weiter helfen kann.

      1 Reply Last reply Reply Quote 0
      • TeNNo2k5
        TeNNo2k5 last edited by TeNNo2k5

        So müsste das eigentlich funktionieren:

        lfw.PNG

        <block xmlns="http://www.w3.org/1999/xhtml" type="exec" id="Eu=H@X}Kfl%J?PfVmus|" x="-212" y="113">
          <mutation with_statement="true"></mutation>
          <field name="WITH_STATEMENT">TRUE</field>
          <field name="LOG">log</field>
          <value name="COMMAND">
            <shadow type="text" id="lP1U.!KJk|(.Q1te(#o`">
              <field name="TEXT">ls /motioneye/camera/ -Art | tail -n 1</field>
            </shadow>
          </value>
          <statement name="STATEMENT">
            <block type="debug" id="0pa{7q$$]X=63bq`hGdt">
              <field name="Severity">log</field>
              <value name="TEXT">
                <shadow type="text" id="n|/o)@)D0*}(%ar_H9;^">
                  <field name="TEXT"></field>
                </shadow>
                <block type="variables_get" id="q[^Q`|m3pIt%jzAEI}qz">
                  <field name="VAR" id="=p=yxmg}GLf@8PKVjkuf" variabletype="">result</field>
                </block>
              </value>
            </block>
          </statement>
        </block>
        

        Den Ordnerpfad noch auf den kompletten Pfad anpassen

        result kannst du dann per Telegramm mitsenden.

        Gibt aber halt nur die letzte Datei/Ordner aus der erstellt/modifziert wurde, auch wenn es unwahrscheinlich ist könnte es passieren das die Ausgabe nicht zu der Aufnahme passt die du dir per Telegramm zugesendet hast wenn zwischen der Code Abarbeitung eine neuere Datei erstellt worden ist.

        Grüße
        TeNNo2k5

        E liv-in-sky 2 Replies Last reply Reply Quote 2
        • E
          el_malto @TeNNo2k5 last edited by

          @TeNNo2k5
          Vielen Dank. Funktioniert so weit.
          Kannst du mir die Argumente erklären? Hab bei Google leider nichts gefunden. Oder hast du eine Seite wo man sich die „erlesen“ kann?
          Geht auch eine Auflistung aller files?

          TeNNo2k5 1 Reply Last reply Reply Quote 0
          • liv-in-sky
            liv-in-sky @TeNNo2k5 last edited by

            @TeNNo2k5

            coole art das neuste file zu finden - muss ich mir merken

            1 Reply Last reply Reply Quote 0
            • TeNNo2k5
              TeNNo2k5 @el_malto last edited by

              @el_malto sagte in Dateinamen in Ordner herausfinden und anzeigen:

              @TeNNo2k5
              Vielen Dank. Funktioniert so weit.
              Kannst du mir die Argumente erklären? Hab bei Google leider nichts gefunden. Oder hast du eine Seite wo man sich die „erlesen“ kann?
              Geht auch eine Auflistung aller files?

              Die Befehlskombination musste ich auch selber googeln, generell gibt der Befehl ls (list directory) den Inhalt eines Ordners aus, das -Art sind Argumente die Ausgabe anpassen/sortieren. Mit dem gepipten Befehl tail -n 1 wird die Ausgabe auf eins begrenzt, also mit tail -n 3 würden die letzten drei geänderten Dateien ausgegeben.

              Weitere Infos:

              http://man7.org/linux/man-pages/man1/ls.1.html
              http://man7.org/linux/man-pages/man1/tail.1.html

              P 1 Reply Last reply Reply Quote 1
              • P
                puls200 @TeNNo2k5 last edited by puls200

                Altes Thema, aber trotzdem passt hier meine Frage:

                Wie kann ich der Telegram-Funktion mitteilen, dass es auf die Variable RESULT (selbstverständlich mit Dateipfad) zugreifen soll?

                Der zuvor erstellte Dateiname wird mit dem oben genannten Befehl (ls /opt/iobroker/Cam/ -Art | tail -n 1) ermittelt und in die Debug-Info-Variable RESULT geschrieben. Ich möchte nun den Dateipfad + RESULT als String der Telgram-Funktion übermitteln, damit Telegram das neueste Foto verschickt. So habe ich es aktuell, aber es kommt nichts an:

                ff0901c0-ae93-4c73-b686-89ce318c8eef-grafik.png

                Wo ist der Fehler?

                Homoran 1 Reply Last reply Reply Quote 0
                • Homoran
                  Homoran Global Moderator Administrators @puls200 last edited by

                  @puls200 wieso diesen Thread wiederbeleben, wenn du doch bereits einen aktuellen Thread dazu aufgemacht hast?

                  P 1 Reply Last reply Reply Quote 0
                  • P
                    puls200 @Homoran last edited by

                    @homoran Weil es ein anderes Thema war und die Antwort auf meine Frage hier viel besser gepasst hätte.

                    1 Reply Last reply Reply Quote 0
                    • First post
                      Last post

                    Support us

                    ioBroker
                    Community Adapters
                    Donate

                    487
                    Online

                    31.9k
                    Users

                    80.1k
                    Topics

                    1.3m
                    Posts

                    blockly javascript
                    5
                    8
                    1733
                    Loading More Posts
                    • Oldest to Newest
                    • Newest to Oldest
                    • Most Votes
                    Reply
                    • Reply as topic
                    Log in to reply
                    Community
                    Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                    The ioBroker Community 2014-2023
                    logo