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. Wie erkenne ich ob ein SetState erfolgreich war?

NEWS

  • UPDATE 31.10.: Amazon Alexa - ioBroker Skill läuft aus ?
    apollon77A
    apollon77
    48
    3
    8.9k

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.3k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.4k

Wie erkenne ich ob ein SetState erfolgreich war?

Geplant Angeheftet Gesperrt Verschoben JavaScript
9 Beiträge 5 Kommentatoren 754 Aufrufe 4 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.
  • KodijackK Offline
    KodijackK Offline
    Kodijack
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen!

    Mein Problem: Ich möchte binnen 1-2s nachdem ein Gerät nicht mehr da ist (Strom weg, kaputt, was auch immer) reagieren können.
    Jedoch habe ich keinen Weg gefunden um zu erfahren ob ein Gerät JETZT GERADE tatsächlich da ist.

    <Gerät>.AVAILABLE ist zwar nett, aber braucht zu lange für ein Update.
    Auch ein <Gerät>.DEVICE_QUERY geht nicht häufig genug und ich hätte so 10s Verzögerung.

    TL;DR: Wie ermittle ich ob ein Gerät JETZT AKTUELL verfügbar ist?

    Danke im Voraus!

    P mickymM paul53P F 4 Antworten Letzte Antwort
    0
    • KodijackK Kodijack

      Hallo zusammen!

      Mein Problem: Ich möchte binnen 1-2s nachdem ein Gerät nicht mehr da ist (Strom weg, kaputt, was auch immer) reagieren können.
      Jedoch habe ich keinen Weg gefunden um zu erfahren ob ein Gerät JETZT GERADE tatsächlich da ist.

      <Gerät>.AVAILABLE ist zwar nett, aber braucht zu lange für ein Update.
      Auch ein <Gerät>.DEVICE_QUERY geht nicht häufig genug und ich hätte so 10s Verzögerung.

      TL;DR: Wie ermittle ich ob ein Gerät JETZT AKTUELL verfügbar ist?

      Danke im Voraus!

      P Offline
      P Offline
      peterfido
      schrieb am zuletzt editiert von
      #2

      @kodijack
      Wenn es anpingbar ist, dann z.B. mit dem ping-adapter.

      Gruß

      Peterfido


      Proxmox auf Intel NUC12WSHi5
      ioBroker: Debian (VM)
      CCU: Debmatic (VM)
      Influx: Debian (VM)
      Grafana: Debian (VM)
      eBus: Debian (VM)
      Zigbee: Debian (VM) mit zigbee2mqtt

      KodijackK 1 Antwort Letzte Antwort
      0
      • KodijackK Kodijack

        Hallo zusammen!

        Mein Problem: Ich möchte binnen 1-2s nachdem ein Gerät nicht mehr da ist (Strom weg, kaputt, was auch immer) reagieren können.
        Jedoch habe ich keinen Weg gefunden um zu erfahren ob ein Gerät JETZT GERADE tatsächlich da ist.

        <Gerät>.AVAILABLE ist zwar nett, aber braucht zu lange für ein Update.
        Auch ein <Gerät>.DEVICE_QUERY geht nicht häufig genug und ich hätte so 10s Verzögerung.

        TL;DR: Wie ermittle ich ob ein Gerät JETZT AKTUELL verfügbar ist?

        Danke im Voraus!

        mickymM Online
        mickymM Online
        mickym
        Most Active
        schrieb am zuletzt editiert von
        #3

        @kodijack Ich würde es direkt mit try/catch versuchen.

        Das heißt über ein try den SetState setzen, falls der nicht erfolgreich ist, dann über Catch abfangen. Aktueller gehts nicht. ;)

        Jeder Flow bzw. jedes Script, das ich hier poste implementiert jeder auf eigene Gefahr. Flows und Scripts können Fehler aufweisen und weder der Seitenbetreiber noch ich persönlich können hierfür haftbar gemacht werden. Das gleiche gilt für Empfehlungen aller Art.

        KodijackK 1 Antwort Letzte Antwort
        0
        • KodijackK Kodijack

          Hallo zusammen!

          Mein Problem: Ich möchte binnen 1-2s nachdem ein Gerät nicht mehr da ist (Strom weg, kaputt, was auch immer) reagieren können.
          Jedoch habe ich keinen Weg gefunden um zu erfahren ob ein Gerät JETZT GERADE tatsächlich da ist.

          <Gerät>.AVAILABLE ist zwar nett, aber braucht zu lange für ein Update.
          Auch ein <Gerät>.DEVICE_QUERY geht nicht häufig genug und ich hätte so 10s Verzögerung.

          TL;DR: Wie ermittle ich ob ein Gerät JETZT AKTUELL verfügbar ist?

          Danke im Voraus!

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

          @kodijack: Wie erkenne ich ob ein SetState erfolgreich war?
          Das sollte durch state.ack = true mitgeteilt werden.

          setState(id, soll);
          var timer = setTimeout(function() {
             // Aktion, wenn nicht erfolgreich 
          }, 1000);
          
          on({id: id, ack: true}, function(dp) {
             if(dp.state.val == soll) clearTimeout(timer);
          });
          

          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

          1 Antwort Letzte Antwort
          0
          • KodijackK Kodijack

            Hallo zusammen!

            Mein Problem: Ich möchte binnen 1-2s nachdem ein Gerät nicht mehr da ist (Strom weg, kaputt, was auch immer) reagieren können.
            Jedoch habe ich keinen Weg gefunden um zu erfahren ob ein Gerät JETZT GERADE tatsächlich da ist.

            <Gerät>.AVAILABLE ist zwar nett, aber braucht zu lange für ein Update.
            Auch ein <Gerät>.DEVICE_QUERY geht nicht häufig genug und ich hätte so 10s Verzögerung.

            TL;DR: Wie ermittle ich ob ein Gerät JETZT AKTUELL verfügbar ist?

            Danke im Voraus!

            F Offline
            F Offline
            fastfoot
            schrieb am zuletzt editiert von
            #5

            @kodijack sagte in Wie erkenne ich ob ein SetState erfolgreich war?:

            Hallo zusammen!

            Mein Problem: Ich möchte binnen 1-2s nachdem ein Gerät nicht mehr da ist (Strom weg, kaputt, was auch immer) reagieren können.
            Jedoch habe ich keinen Weg gefunden um zu erfahren ob ein Gerät JETZT GERADE tatsächlich da ist.

            <Gerät>.AVAILABLE ist zwar nett, aber braucht zu lange für ein Update.
            Auch ein <Gerät>.DEVICE_QUERY geht nicht häufig genug und ich hätte so 10s Verzögerung.

            TL;DR: Wie ermittle ich ob ein Gerät JETZT AKTUELL verfügbar ist?

            Danke im Voraus!

            Ob ein SetState() erfolgreich war kannst du am Ack-Flag sehen. Normalerweise steuerst du eine Hardware, indem das Ack-Flag false ist. Der Adapter reagiert darauf und setzt das Ack-Flag bei Erfolg auf true.

            Wie schnell der Adapter ein Gerät als offline erkennt, wenn keine Aktion damit erfolgt, hängt einzig vom Adapter ab

            iobroker läuft unter Docker auf QNAP TS-451+
            SkriptRecovery: https://forum.iobroker.net/post/930558

            KodijackK 1 Antwort Letzte Antwort
            0
            • KodijackK Offline
              KodijackK Offline
              Kodijack
              schrieb am zuletzt editiert von
              #6

              @paul53
              Ah danke dir, so ähnlich hatte ich es versucht, aber ohne Erfolg.

              Allerdings klappt das so auch nur mit AN/AUS oder Brightness. Ändere ich unwichtige States (so daß das Licht nicht verändert wird ich aber dennoch eine Rückmeldung bekomme), so ist das stets erfolgreich (da verm. nicht an den Empfänger gesendet). Aber immerhin :-)

              1 Antwort Letzte Antwort
              0
              • P peterfido

                @kodijack
                Wenn es anpingbar ist, dann z.B. mit dem ping-adapter.

                KodijackK Offline
                KodijackK Offline
                Kodijack
                schrieb am zuletzt editiert von
                #7

                @peterfido Danke, aber leider nicht so simpel. Hätte auch Zigbee erwähnen sollen, sorry :-)

                1 Antwort Letzte Antwort
                0
                • mickymM mickym

                  @kodijack Ich würde es direkt mit try/catch versuchen.

                  Das heißt über ein try den SetState setzen, falls der nicht erfolgreich ist, dann über Catch abfangen. Aktueller gehts nicht. ;)

                  KodijackK Offline
                  KodijackK Offline
                  Kodijack
                  schrieb am zuletzt editiert von
                  #8

                  @mickym Hm, wär auch zu einfach gewesen, aber geht leider so nicht. Ist stets erfolgreich. Aber danke!

                  1 Antwort Letzte Antwort
                  0
                  • F fastfoot

                    @kodijack sagte in Wie erkenne ich ob ein SetState erfolgreich war?:

                    Hallo zusammen!

                    Mein Problem: Ich möchte binnen 1-2s nachdem ein Gerät nicht mehr da ist (Strom weg, kaputt, was auch immer) reagieren können.
                    Jedoch habe ich keinen Weg gefunden um zu erfahren ob ein Gerät JETZT GERADE tatsächlich da ist.

                    <Gerät>.AVAILABLE ist zwar nett, aber braucht zu lange für ein Update.
                    Auch ein <Gerät>.DEVICE_QUERY geht nicht häufig genug und ich hätte so 10s Verzögerung.

                    TL;DR: Wie ermittle ich ob ein Gerät JETZT AKTUELL verfügbar ist?

                    Danke im Voraus!

                    Ob ein SetState() erfolgreich war kannst du am Ack-Flag sehen. Normalerweise steuerst du eine Hardware, indem das Ack-Flag false ist. Der Adapter reagiert darauf und setzt das Ack-Flag bei Erfolg auf true.

                    Wie schnell der Adapter ein Gerät als offline erkennt, wenn keine Aktion damit erfolgt, hängt einzig vom Adapter ab

                    KodijackK Offline
                    KodijackK Offline
                    Kodijack
                    schrieb am zuletzt editiert von
                    #9

                    @fastfoot Danke auch dir! Das ist wohl tatsächlich die einzige Möglichkeit.

                    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

                    817

                    Online

                    32.4k

                    Benutzer

                    81.6k

                    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