Skip to content
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Standard: (Kein Skin)
  • Kein Skin
Einklappen
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. JavaScript
  5. [Gelöst] iobroker Pfad auf neue Datenpunkte überwachen

NEWS

  • Jahresrückblick 2025 – unser neuer Blogbeitrag ist online! ✨
    BluefoxB
    Bluefox
    16
    1
    1.4k

  • Neuer Blogbeitrag: Monatsrückblick - Dezember 2025 🎄
    BluefoxB
    Bluefox
    13
    1
    813

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

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

Geplant Angeheftet Gesperrt Verschoben JavaScript
3 Beiträge 2 Kommentatoren 247 Aufrufe 1 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • boriswernerB Offline
    boriswernerB Offline
    boriswerner
    Developer
    schrieb am zuletzt editiert von boriswerner
    #1

    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

    paul53P 1 Antwort Letzte Antwort
    0
    • boriswernerB 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

      paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      @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) {});
      

      Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
      Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

      boriswernerB 1 Antwort Letzte Antwort
      1
      • paul53P paul53

        @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) {});
        
        boriswernerB Offline
        boriswernerB Offline
        boriswerner
        Developer
        schrieb am zuletzt editiert von
        #3

        @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 Antwort Letzte Antwort
        0
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        683

        Online

        32.6k

        Benutzer

        82.0k

        Themen

        1.3m

        Beiträge
        Community
        Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
        ioBroker Community 2014-2025
        logo
        • Anmelden

        • Du hast noch kein Konto? Registrieren

        • Anmelden oder registrieren, um zu suchen
        • Erster Beitrag
          Letzter Beitrag
        0
        • Home
        • Aktuell
        • Tags
        • Ungelesen 0
        • Kategorien
        • Unreplied
        • Beliebt
        • GitHub
        • Docu
        • Hilfe