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. Objektinstanz behalten / Singleton

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

Objektinstanz behalten / Singleton

Geplant Angeheftet Gesperrt Verschoben JavaScript
6 Beiträge 3 Kommentatoren 374 Aufrufe 3 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.
  • S Offline
    S Offline
    synthe
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich würde gerne eine in einem Skript erstellte Objektinstanz (eine Queue) über Skriptausführungen hinweg behalten/weiterverwenden.

    Ist dies möglich? Wenn ja, wie - wo kann ich die Objektinstanz "ablegen"?

    Vielen Dank und viele Grüße
    synthe

    paul53P 1 Antwort Letzte Antwort
    0
    • S synthe

      Hallo zusammen,

      ich würde gerne eine in einem Skript erstellte Objektinstanz (eine Queue) über Skriptausführungen hinweg behalten/weiterverwenden.

      Ist dies möglich? Wenn ja, wie - wo kann ich die Objektinstanz "ablegen"?

      Vielen Dank und viele Grüße
      synthe

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

      @synthe Was verstehst Du unter Objektinstanz ? Man kann Objekte in Datenpunkte speichern (seit JS Version 4.x) , um sie weiter zu verwenden.

      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

      S 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @synthe Was verstehst Du unter Objektinstanz ? Man kann Objekte in Datenpunkte speichern (seit JS Version 4.x) , um sie weiter zu verwenden.

        S Offline
        S Offline
        synthe
        schrieb am zuletzt editiert von synthe
        #3

        Hallo @paul53 ich möchte eine nicht serialiserbare Objektinstanz irgendwo außerhalb des Skriptes (in einer globalen Variable, oder ähnlich) ablegen, um sie später - im gleichen, oder einen anderen Skript - wiederverwenden zu können.

        Vereinfacht und beispielhaft möchte ich folgendes machen:

        let myQueue;
        if(!(myQueue = globalObjects.get(‘meineInstanz’)))
        {
            myQueue = new Queue();
            globalObjects.put(‘meineInstanz’, myQueue);
        }
        
        myQueue.push(someAction);
        

        Vielen Dank und viele Grüße

        paul53P 1 Antwort Letzte Antwort
        0
        • S synthe

          Hallo @paul53 ich möchte eine nicht serialiserbare Objektinstanz irgendwo außerhalb des Skriptes (in einer globalen Variable, oder ähnlich) ablegen, um sie später - im gleichen, oder einen anderen Skript - wiederverwenden zu können.

          Vereinfacht und beispielhaft möchte ich folgendes machen:

          let myQueue;
          if(!(myQueue = globalObjects.get(‘meineInstanz’)))
          {
              myQueue = new Queue();
              globalObjects.put(‘meineInstanz’, myQueue);
          }
          
          myQueue.push(someAction);
          

          Vielen Dank und viele Grüße

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

          @synthe
          Eine Queue kann man in Javascript als Array abbilden.

          @synthe sagte in Objektinstanz behalten / Singleton:

          außerhalb des Skriptes (in einer globalen Variable, oder ähnlich) ablegen, um sie später - im gleichen, oder einen anderen Skript - wiederverwenden zu können.

          Dafür dienen in ioBroker Datenpunkte, die mit setState(id, val, true) geschrieben und mit getState(id).val eingelesen werden können.

          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

          S 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @synthe
            Eine Queue kann man in Javascript als Array abbilden.

            @synthe sagte in Objektinstanz behalten / Singleton:

            außerhalb des Skriptes (in einer globalen Variable, oder ähnlich) ablegen, um sie später - im gleichen, oder einen anderen Skript - wiederverwenden zu können.

            Dafür dienen in ioBroker Datenpunkte, die mit setState(id, val, true) geschrieben und mit getState(id).val eingelesen werden können.

            S Offline
            S Offline
            synthe
            schrieb am zuletzt editiert von
            #5

            @paul53 Vielen Dank - ich werde das heute Abend mal versuchen! :)
            Zum Thema Queue: Ja, prinzipiell ist es ein Array, nur dass beim hinzufügen dinge in der richtigen Reihenfolge und synchron (das wird sicher problematisch) ausgeführt werden sollen...
            Mittlerweile bin ich doch am zweifeln, ob das in JS generell machbar ist, oder ob ich nicht über eine Lock-Datei - die periodisch abgefragt wird (oder ähnlich) - arbeiten muss. Noch habe ich Schwierigkeiten mich in die Grundprinzipien von JS hineinzudenken, was zugegebenermaßen gar nicht so viel mit Iobroker zu tun hat - wie mir langsam klar wird :)

            AsgothianA 1 Antwort Letzte Antwort
            0
            • S synthe

              @paul53 Vielen Dank - ich werde das heute Abend mal versuchen! :)
              Zum Thema Queue: Ja, prinzipiell ist es ein Array, nur dass beim hinzufügen dinge in der richtigen Reihenfolge und synchron (das wird sicher problematisch) ausgeführt werden sollen...
              Mittlerweile bin ich doch am zweifeln, ob das in JS generell machbar ist, oder ob ich nicht über eine Lock-Datei - die periodisch abgefragt wird (oder ähnlich) - arbeiten muss. Noch habe ich Schwierigkeiten mich in die Grundprinzipien von JS hineinzudenken, was zugegebenermaßen gar nicht so viel mit Iobroker zu tun hat - wie mir langsam klar wird :)

              AsgothianA Offline
              AsgothianA Offline
              Asgothian
              Developer
              schrieb am zuletzt editiert von
              #6

              @synthe
              Hier muss ich Dir zustimmen. Alleine das Ablegen der Queue selber sorgt nicht für eine Synchrone Abarbeitung - dazu müsste sichergestellt sein das genau eine Instanz die Abarbeitung übernimmt, und andere Instanzen nur etwas hinzufügen können.

              Auch ist durch das Objekt-Modell vom IoBroker ein Hinzufügen von Queue Objekten kritisch - soweit ich das verstanden habe gibt es keine Funktionalität, die es erlaubt Schreibzugriffe auf einen Datenpunkt von anderen Stellen aus zu blockieren (zeitlich begrenzt, als "Resource Lock").

              Da wirst Du dir etwas anderes einfallen lassen müssen.

              ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
              "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

              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

              629

              Online

              32.6k

              Benutzer

              82.1k

              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