Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. JavaScript
    5. [Gelöst] iobroker Pfad auf neue Datenpunkte überwachen

    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

    [Gelöst] iobroker Pfad auf neue Datenpunkte überwachen

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

      Hallo zusammen, ich würde gerne einen bestimmten Ordner im iobroker (in meinem Fall octoprint.0.files) daraufhin überwachen, ob neue Verzeichnisse oder Datenpunkte hinzugefügt werden. Ist das möglich? Mit on("stateid", function(){}) kann ich ja soweit ich weiß nur auf Wert-Änderungen in States reagieren und somit bringt mir das nichts. Ich hab die Funktion onObject (mit der Signatur onObject(pattern: string, callback: iobJS.ObjectChangeHandler)) gefunden, darüber habe ich aber keinerlei Infos zur Verwendung gefunden und ein Test mit onObject("octoprint.0.files.*", function(){}) hat auch nichts ergeben. Jemand eine Idee?

      Hintergrund: ich zeige die zuletzt hochgeladenen Dateien auf meinem 3D Drucker über die Octoprint-Instanz an und stelle das als HTML Tabelle in der Vis dar um darüber den Druck einer Datei auszulösen (mit einem jeweiligen Button, der den entsprechenden "print" State im Unterordner der Datei setzt). Das funktioniert auch soweit, nur hab ich im Moment ein Zeitintervall definiert, in der die Tabelle aktualisiert wird. Schöner wäre es, die Tabelle nur zu aktualisieren, wenn auch ein neuer Datenpunkt (also eine neue Datei auf dem Octoprint-Server) hinzugekommen ist.

      Vielen Dank schonmal

      paul53 1 Reply Last reply Reply Quote 0
      • paul53
        paul53 @boriswerner last edited by

        @boriswerner sagte: Ich hab die Funktion onObject ... gefunden

        Wo?

        @boriswerner sagte in iobroker Pfad auf neue Datenpunkte/states überwachen:

        zu aktualisieren, wenn auch ein neuer Datenpunkt (also eine neue Datei auf dem Octoprint-Server) hinzugekommen ist.

        Wenn der neue DP einen Zeitstempel erhält, sollte ein Trigger mit RegExp darauf reagieren.

        on({id: /^octoprint\.0\.files\..+/}, function(dp) {});
        
        boriswerner 1 Reply Last reply Reply Quote 1
        • boriswerner
          boriswerner Developer @paul53 last edited by

          @paul53 onObject und die Funktionssignatur hab ich in der Autovervollständigung vom Javascript Editor gefunden (hab einfach mal geschaut, was mir so vorgeschlagen wird).

          Dein Beispiel funktioniert, allerdings wird das on bei jeder Wertänderung eines beliebigen Datenpunktes in dem Pfad ausgelöst. Das ist eine andere Eventquelle als ich gehofft hatte (wie im ersten Post beschrieben wollte ich lieber auf das Event "Datenpunkt wurde erstellt" reagieren, statt "Datenpunktwert hat sich geändert"), das hilft mir aber auch, da ich das jetzt einfach noch auf den "name" Datenpunkt erweitern kann. Der ändert sich nie.

          Somit habe ich jetzt folgende Lösung für mein Problem (log ist natürlich nur Beispielhaft):
          on({id: /^octoprint\.0\.files\..+\.name/, change: "ne"}, function(dp) {log(dp.id);});
          und ich bedanke mich vielmals bei dir. Manchmal denkt man einfach zu kompliziert 🙂

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

          Support us

          ioBroker
          Community Adapters
          Donate

          480
          Online

          31.8k
          Users

          80.0k
          Topics

          1.3m
          Posts

          2
          3
          137
          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