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. SetState / getState Verzögerung ?

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

SetState / getState Verzögerung ?

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
12 Beiträge 6 Kommentatoren 1.8k 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.
  • DutchmanD Offline
    DutchmanD Offline
    Dutchman
    Developer Most Active Administrators
    schrieb am zuletzt editiert von
    #2

    Setze einen delay ein das Script arbeitet in Millisekunden die nächste Regel ab ein Set statt braucht schon ein paar Millisekunden befohr der Wert geschrieben ist.

    Wozu brauchst du den getstate sofort nach dem setzen ?

    –-----------------------

    Send from mobile device

    Das schöne ios hat Auto Korrektur zum k****

    Wer Schreibfehler findet darf sie behalten oder auf eBay verkaufen, mindest Umsatz 10% für die community

    1 Antwort Letzte Antwort
    0
    • M Offline
      M Offline
      malc
      schrieb am zuletzt editiert von
      #3

      Ich habe in einige

      On() setState… und dann eine Funktion die dann mehre getState nutzt um einen gesamten Status zu ermitteln. Also sowas wie einen kombinierten Gesamtstatus.

      Du meinst einfach ein:

      setState(StateID, Val);

      setTimeout(function() { MeineFunction(); }, 10)

      Welche Wert wäre angemessen?

      Fan von ioBroker!

      <size size="50">und falls ich eine Frage stelle die irgendwo schon mal beantwortet wurde: "Ja, Suchfunktion genutzt, aber keine Lösung gefunden / nicht die richtigen Suchbegriffe gewusst."

      …</size>

      1 Antwort Letzte Antwort
      0
      • DutchmanD Offline
        DutchmanD Offline
        Dutchman
        Developer Most Active Administrators
        schrieb am zuletzt editiert von
        #4

        währe es in deinem fall dan nicht sinnvoller den wert als eine variable in die function mit zu geben anstatt einen gestatte aus zu führen ?

        abhängig von der Belastung des systems kann es mal 50 oder 1000 oder 3000 Millisekunden dauern.

        Ich würde darauf verzichten das object zu lesen und direct die variable weitergeben

        1 Antwort Letzte Antwort
        0
        • P Offline
          P Offline
          pix
          schrieb am zuletzt editiert von
          #5

          Hallo,

          ich würde auch auf Variablen zurückgreifen.

          Weiterhin gibt es ja noch setStateDelayed(), das auch einen Callback hat. Also sehr kleines Delay und dann in den Callback getState().

          Aber selbst als nicht muttersprachlich JavaScriptender klingt das sehr holperig. Nimm die Variablen.

          Pix

          ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

          1 Antwort Letzte Antwort
          0
          • M Offline
            M Offline
            malc
            schrieb am zuletzt editiert von
            #6

            So holprig finde ich das eigentlich nicht, ich versuche das mal genauer zu beschreiben:

            Ereignis meldet Wert weiter an einem Sammelzweig:

            Beispiel:

            -Radar Gerät 1 erreichbar -> Setstate -> Status.Anwesend_Device1 = Wahr

            • Funktionsaufruf Routine Ermittelt ob midenstens ein Gerät Erreichbar ist und setzt Status.Anwesend = Wahr

            -Radar Gerät 2 erreichbar -> Setstate -> Status.Anwesend_Device2 = Wahr

            • Funktionsaufruf Routine Ermittelt ob midenstens ein Gerät Erreichbar ist und setzt Status.Anwesend = Wahr

            So habe ich in VIS / Script den einfachen Zugriff ob überhaupt wer da ist und muss nicht alle Devices einzeln prüfen. Die Funktion ermittelt per "Status.Anwesend_*" den Gesamtzustand und schreibt "Status.Anwesend".

            Denke ich zu sehr um die Ecke ?

            Malc

            Fan von ioBroker!

            <size size="50">und falls ich eine Frage stelle die irgendwo schon mal beantwortet wurde: "Ja, Suchfunktion genutzt, aber keine Lösung gefunden / nicht die richtigen Suchbegriffe gewusst."

            …</size>

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              tempestas
              schrieb am zuletzt editiert von
              #7

              Ähm,

              der Radar Adapter hat doch "countHere" als State.

              radar.0.countHere

              Wenn der also > 0, dann ist wohl jemand da

              <size="85">ioBroker | 21 Adapter | Ubuntu Server | intel NUC | Homematic CCU2 | Hue | Osram Lightify| Sonos | 2x Instar Cam | Samsung Tab A 2016 im Holzrahmen| 3x Echo dot | 1x Echo | Neato Botvac D5</size>

              1 Antwort Letzte Antwort
              0
              • M Offline
                M Offline
                malc
                schrieb am zuletzt editiert von
                #8

                Ja, den Status kenne ich.

                Ich habe das nur als Beispiel genommen :-)

                Da ich vor gaaanz langer Zeit mal beruflich in der Prozesstechnik war bilde ich mir Routinen die Sammelstörungen und Quittierungen nach.

                Malc

                Fan von ioBroker!

                <size size="50">und falls ich eine Frage stelle die irgendwo schon mal beantwortet wurde: "Ja, Suchfunktion genutzt, aber keine Lösung gefunden / nicht die richtigen Suchbegriffe gewusst."

                …</size>

                1 Antwort Letzte Antwort
                0
                • AlCalzoneA Offline
                  AlCalzoneA Offline
                  AlCalzone
                  Developer
                  schrieb am zuletzt editiert von
                  #9

                  Abwarten bis der State tatsächlich gesetzt wurde, geht folgendermaßen:

                  setState("id.des.states", wert, ack, function(err, id) {
                      // [1] hier Code hin, der nach Setzten des States ausgeführt werden soll
                  });
                  // [2] weiterer Code - Achtung, wird VOR dem obigen Code [1] ausgeführt!
                  
                  

                  ack ist entweder true (Wert bestätigt) oder false (Aufforderung an Adapter, ein Gerät zu steuern)

                  Warum `sudo` böse ist: https://forum.iobroker.net/post/17109

                  1 Antwort Letzte Antwort
                  0
                  • M Offline
                    M Offline
                    malc
                    schrieb am zuletzt editiert von
                    #10

                    Ah!

                    ALCalzone, die Lösung ist für mich perfekt!

                    Vielen Dank!

                    Das warten mit einem konstanten Wert ist eher schlecht, so gefällt es mir gut!

                    Malc

                    Fan von ioBroker!

                    <size size="50">und falls ich eine Frage stelle die irgendwo schon mal beantwortet wurde: "Ja, Suchfunktion genutzt, aber keine Lösung gefunden / nicht die richtigen Suchbegriffe gewusst."

                    …</size>

                    1 Antwort Letzte Antwort
                    0
                    • P Offline
                      P Offline
                      pix
                      schrieb am zuletzt editiert von
                      #11

                      Hallo,

                      du kannst dir natürlich ein Sammelibjekt anlegen. Dieses lässt Sicht in Vis besser darstellen.

                      Ich würde das Objekt aber mit einer Funktion befüllen, die alle Zweige mit Regex überwacht. Wenn eines der Objekte den Status ändert, werden alle anderen kurz abgefragt.

                      Für meine Fenster offen Überwachung nutze ich Selector. Die Fensterzustand Objekte sind einem Gewerk zugeordnet. Du könntest es Anwesenheit nennen. Dann werden alle Objekte im Gewerk überwacht. Ändert eines des Zustand, wird ein Objekt Fensterstatus gesetzt.

                      Das nutze ich für Räume mit mehreren Fenstern. Ist mindestens ein Fenster geöffnet, ist der Gesamtstatus offen. Aber auch, wenn alle offen sind. Nur wenn alle zu sind, ist der Status geschlossen.

                      Bin unterwegs, hab gerad keinen Code zur Hand.

                      Pix

                      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

                      eumatsE 1 Antwort Letzte Antwort
                      0
                      • P pix

                        Hallo,

                        du kannst dir natürlich ein Sammelibjekt anlegen. Dieses lässt Sicht in Vis besser darstellen.

                        Ich würde das Objekt aber mit einer Funktion befüllen, die alle Zweige mit Regex überwacht. Wenn eines der Objekte den Status ändert, werden alle anderen kurz abgefragt.

                        Für meine Fenster offen Überwachung nutze ich Selector. Die Fensterzustand Objekte sind einem Gewerk zugeordnet. Du könntest es Anwesenheit nennen. Dann werden alle Objekte im Gewerk überwacht. Ändert eines des Zustand, wird ein Objekt Fensterstatus gesetzt.

                        Das nutze ich für Räume mit mehreren Fenstern. Ist mindestens ein Fenster geöffnet, ist der Gesamtstatus offen. Aber auch, wenn alle offen sind. Nur wenn alle zu sind, ist der Status geschlossen.

                        Bin unterwegs, hab gerad keinen Code zur Hand.

                        Pix

                        eumatsE Offline
                        eumatsE Offline
                        eumats
                        schrieb am zuletzt editiert von
                        #12

                        @pix Mir ist bewusst das der Thread schon ziemlich alt ist, aber könntest Du Deinen Code bitte noch posten. Ich würde nämlich auch gerne eine Überwachung realisieren.

                        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

                        503

                        Online

                        32.6k

                        Benutzer

                        82.2k

                        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