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. Objekte ohne ACK ermitteln

NEWS

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

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

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

Objekte ohne ACK ermitteln

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 4 Kommentatoren 377 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.
  • A Offline
    A Offline
    andreas_n
    schrieb am zuletzt editiert von andreas_n
    #1

    Hallo, gibt es eine Möglichkeit herauszubekommen, ob ein Datenpunkt nicht mit eine ACK bestätigt wurde. (Also z.B. ein Ausgang hat nicht geschaltet)?

    Wird ein device schalte, dann wird das ACK-Bit zunächst auf false und später dann vom Adapter zurück auf true gesetzt. Ich nun möchte die Datenpunkte ermitteln, die nicht zurück auf true gesetzt worden sind.

    Gespielt habe ich mit nachfolgende Ansatz: Ermittelt alle "Alias" Elemente, die eine Bestätigung erhalten haben. Dies ist aber nicht das was ich suche .... Evt. ist der Ansatz auch falsch .....

    on({ id: new RegExp("alias\.0\.[_a-zA-Z0-9]{1,20}\.[_a-zA-Z0-9]{1,20}\.SET"),change: "ne", ack:true}, async (obj) => {    
            let value = obj.state.val;
            let oldValue = obj.oldState.val;
            log("ChkOnNak: deviceId: "+ obj.id + " old=" + oldValue+" -> " + value + " ack="+obj.state.ack);    
    });
    
    A paul53P mcm1957M 3 Antworten Letzte Antwort
    0
    • A andreas_n

      Hallo, gibt es eine Möglichkeit herauszubekommen, ob ein Datenpunkt nicht mit eine ACK bestätigt wurde. (Also z.B. ein Ausgang hat nicht geschaltet)?

      Wird ein device schalte, dann wird das ACK-Bit zunächst auf false und später dann vom Adapter zurück auf true gesetzt. Ich nun möchte die Datenpunkte ermitteln, die nicht zurück auf true gesetzt worden sind.

      Gespielt habe ich mit nachfolgende Ansatz: Ermittelt alle "Alias" Elemente, die eine Bestätigung erhalten haben. Dies ist aber nicht das was ich suche .... Evt. ist der Ansatz auch falsch .....

      on({ id: new RegExp("alias\.0\.[_a-zA-Z0-9]{1,20}\.[_a-zA-Z0-9]{1,20}\.SET"),change: "ne", ack:true}, async (obj) => {    
              let value = obj.state.val;
              let oldValue = obj.oldState.val;
              log("ChkOnNak: deviceId: "+ obj.id + " old=" + oldValue+" -> " + value + " ack="+obj.state.ack);    
      });
      
      A Offline
      A Offline
      andreas_n
      schrieb am zuletzt editiert von
      #2

      Schade, das keiner eine Idee hat.
      Ich hatte vermutet, dass dieses Problem (das Nichtwissen, ob ein Aktor geschaltet hat) auch für andere Anlagen von Interesse ist.
      Evt. ist die Lösung aber auch zu einfach und ich sehe es einfach nicht. ( kommt schon mal vor)

      haus-automatisierungH 1 Antwort Letzte Antwort
      0
      • A andreas_n

        Schade, das keiner eine Idee hat.
        Ich hatte vermutet, dass dieses Problem (das Nichtwissen, ob ein Aktor geschaltet hat) auch für andere Anlagen von Interesse ist.
        Evt. ist die Lösung aber auch zu einfach und ich sehe es einfach nicht. ( kommt schon mal vor)

        haus-automatisierungH Online
        haus-automatisierungH Online
        haus-automatisierung
        Developer Most Active
        schrieb am zuletzt editiert von
        #3

        @andreas_n Du willst alle Datenpunkte wissen, welche nicht bestätigt sind? Zu welchem Zeitpunkt?

        Wenn man die jetzt einmal abholt, dann könnte es ja sein, dass ein Datenpunkt in der Liste 10ms später doch bestätigt ist.

        Ich würde kritische Datenpunkte einfach überwachen und dann mit einem Timeout schauen, ob der Wert nach x Sekunden bestätigt wurde.

        Bei einer generellen Funktion über alle Datenpunkte im System sehe ich keinen Anwendungsfall.

        🧑‍🎓 Autor des beliebten ioBroker-Master-Kurses
        🎥 Tutorials rund um das Thema DIY-Smart-Home: https://haus-automatisierung.com/
        📚 Meine inoffizielle ioBroker Dokumentation

        1 Antwort Letzte Antwort
        0
        • A andreas_n

          Hallo, gibt es eine Möglichkeit herauszubekommen, ob ein Datenpunkt nicht mit eine ACK bestätigt wurde. (Also z.B. ein Ausgang hat nicht geschaltet)?

          Wird ein device schalte, dann wird das ACK-Bit zunächst auf false und später dann vom Adapter zurück auf true gesetzt. Ich nun möchte die Datenpunkte ermitteln, die nicht zurück auf true gesetzt worden sind.

          Gespielt habe ich mit nachfolgende Ansatz: Ermittelt alle "Alias" Elemente, die eine Bestätigung erhalten haben. Dies ist aber nicht das was ich suche .... Evt. ist der Ansatz auch falsch .....

          on({ id: new RegExp("alias\.0\.[_a-zA-Z0-9]{1,20}\.[_a-zA-Z0-9]{1,20}\.SET"),change: "ne", ack:true}, async (obj) => {    
                  let value = obj.state.val;
                  let oldValue = obj.oldState.val;
                  log("ChkOnNak: deviceId: "+ obj.id + " old=" + oldValue+" -> " + value + " ack="+obj.state.ack);    
          });
          
          paul53P Offline
          paul53P Offline
          paul53
          schrieb am zuletzt editiert von paul53
          #4

          @andreas_n sagte: Datenpunkte ermitteln, die nicht zurück auf true gesetzt worden sind.

          Versuche es mal so:

          Blockly_temp.JPG

          Wenn ständig zu viele Trigger kurz hintereinander auslösen, kann es passieren, dass der Timeout nie abläuft. Außerdem ist nicht garantiert, dass 500 ms ausreichen, um die Reaktion der Adapter zu überprüfen.

          @haus-automatisierung sagte in Objekte ohne ACK ermitteln:

          kritische Datenpunkte einfach überwachen und dann mit einem Timeout schauen, ob der Wert nach x Sekunden bestätigt wurde.

          Das ist die bessere Vorgehensweise.

          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
          1
          • A andreas_n

            Hallo, gibt es eine Möglichkeit herauszubekommen, ob ein Datenpunkt nicht mit eine ACK bestätigt wurde. (Also z.B. ein Ausgang hat nicht geschaltet)?

            Wird ein device schalte, dann wird das ACK-Bit zunächst auf false und später dann vom Adapter zurück auf true gesetzt. Ich nun möchte die Datenpunkte ermitteln, die nicht zurück auf true gesetzt worden sind.

            Gespielt habe ich mit nachfolgende Ansatz: Ermittelt alle "Alias" Elemente, die eine Bestätigung erhalten haben. Dies ist aber nicht das was ich suche .... Evt. ist der Ansatz auch falsch .....

            on({ id: new RegExp("alias\.0\.[_a-zA-Z0-9]{1,20}\.[_a-zA-Z0-9]{1,20}\.SET"),change: "ne", ack:true}, async (obj) => {    
                    let value = obj.state.val;
                    let oldValue = obj.oldState.val;
                    log("ChkOnNak: deviceId: "+ obj.id + " old=" + oldValue+" -> " + value + " ack="+obj.state.ack);    
            });
            
            mcm1957M Online
            mcm1957M Online
            mcm1957
            schrieb am zuletzt editiert von
            #5

            @andreas_n said in Objekte ohne ACK ermitteln:

            Wird ein device schalte, dann wird das ACK-Bit zunächst auf false und später dann vom Adapter zurück auf true gesetzt. Ich nun möchte die Datenpunkte ermitteln, die nicht zurück auf true gesetzt worden sind.

            Bitte bei diesem Ansatz nicht vergessen, dass eine Bestätigung durch den Adapter nicjht zwingend ist - wobei im Beispiel des Schalters wohl eine Feedback vom Gerät und damit ein ACK gegeben sein sollte. Aber insbesondere States mit der role Button haben keinen lesbaren Wert und müssen vom Adapter nicht zwingend bestätigt werden. Da diese oft auch nicht einem zurückgemeldeten Wert des Gerätes entsprechen kann es suchaus sein, dass hier ein sck=false normal ist.

            Entwicklung u Betreuung: envertech-pv, hoymiles-ms, ns-client, pid, snmp Adapter;
            Support Repositoryverwaltung.

            Wer Danke sagen will, kann nen Kaffee spendieren: https://paypal.me/mcm1957atiobroker

            LESEN - gute Forenbeitrage

            1 Antwort Letzte Antwort
            1
            Antworten
            • In einem neuen Thema antworten
            Anmelden zum Antworten
            • Älteste zuerst
            • Neuste zuerst
            • Meiste Stimmen


            Support us

            ioBroker
            Community Adapters
            Donate

            843

            Online

            32.4k

            Benutzer

            81.5k

            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