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. [Gelöst] on - Datenpunkt überwachen - Endlos-Schleife

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.4k

[Gelöst] on - Datenpunkt überwachen - Endlos-Schleife

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 2 Kommentatoren 689 Aufrufe
  • Ä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.
  • MicM Offline
    MicM Offline
    Mic
    Developer
    schrieb am zuletzt editiert von
    #1

    Hi,

    ich habe einen Datenpunkt mit folgenden Werten:

        "name": "Name",
        "role": "switch",
        "type": "boolean",
        "desc": "Beschreibung",
        "read": true,
        "write": true,
        "def": false,
    

    Wird dieser auf "True" gesetzt, so soll entsprechend was ausgelöst werden, also wie ein Taster. Ich überwache das mit diesem Script (Auszug):

    strObjPath = 'javascript.0.xxxx';
    on({id: strObjPath, change: "any", val: true}, function (obj) {
        var bVal = obj.state.val;
        if (bVal === true) {
            setState('javascript.0.hierEinAndererDatenpunktDenIchSetze', true);
            // jetzt Datenpunkt strObjPath wieder leeren
            //setState(strObjPath, undefined);
        }
    });
    

    Das klappt auch soweit alles prima. Allerdings würde ich gerne nach der Ausführung den Datenpunkt wieder leeren. Das versuche ich mittels "setState(strObjPath, undefined);", siehe auskommentiert oben im Script.

    Allerdings führt das zu tollen Endlos-Schleifen :mrgreen:

    Wie kann ich denn das Script anpassen, damit ich den Datenpunkt nach Ausführung (setzen auf "True") direkt danach wieder leeren kann?

    Oder muss/sollte ich etwa die "role" im Datenpunkt ändern? Ich hab ja im Prinzip einen Taster und keinen Schalter (an/aus).

    Ich hoffe, das war verständlich, was ich meine.

    Danke Euch für Eure Hilfe.

    1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Ein Datenpunkt vom Typ "boolean" kann nur die Werte false und true annehmen. undefined meint, dass der Datenpunkt nicht existiert. Die Abfrage auf true innerhalb der Callback-Funktion ist überflüssig, da dies schon die Triggerbedingung ist.

      strObjPath = 'javascript.0.xxxx';
      on({id: strObjPath, val: true}, function () {
          setState('javascript.0.hierEinAndererDatenpunktDenIchSetze', true);
          // jetzt Datenpunkt strObjPath wieder leeren
          setState(strObjPath, false);
      });
      

      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
      • MicM Offline
        MicM Offline
        Mic
        Developer
        schrieb am zuletzt editiert von
        #3

        Perfekt, vielen Dank Paul!

        Ich reflektiere:

        • Abfrage auf true war tatsächlich redundant, entstand nur durch das testen aber ist jetzt natürlich raus

        • nur mit false/true arbeiten, undefined war hier Quatsch

        • Entfernen von change: "any" war hier sicherlich auch angebracht. Vermutlich auch der Trigger für die Endlosschleife.

        Thema gelöst 8-)

        1 Antwort Letzte Antwort
        0
        • paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von
          #4

          @Mic:

          • Entfernen von change: "any" war hier sicherlich auch angebracht. Vermutlich auch der Trigger für die Endlosschleife. `
            Nein, sondern war nur redundant, da change: "any" die Voreinstellung ist, wenn das Muster ein Objekt ist.

          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
          • MicM Offline
            MicM Offline
            Mic
            Developer
            schrieb am zuletzt editiert von
            #5

            Ahh, ok, danke für die Info Paul. Also Endlosschleife letztendlich durch das undefined ausgelöst wie schon von dir implizit angemerkt.

            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

            651

            Online

            32.6k

            Benutzer

            82.3k

            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