Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • 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

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Objekte ohne ACK ermitteln

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    22
    1
    1.2k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Objekte ohne ACK ermitteln

Scheduled Pinned Locked Moved Skripten / Logik
5 Posts 4 Posters 410 Views 3 Watching
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • A Offline
    A Offline
    andreas_n
    wrote on last edited by 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 Replies Last reply
    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
      wrote on last edited by
      #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 Reply Last reply
      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
        wrote on last edited by
        #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 Reply Last reply
        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
          wrote on last edited by 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 Reply Last reply
          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
            wrote on last edited by
            #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 Reply Last reply
            1
            Reply
            • Reply as topic
            Log in to reply
            • Oldest to Newest
            • Newest to Oldest
            • Most Votes


            Support us

            ioBroker
            Community Adapters
            Donate

            361

            Online

            32.5k

            Users

            81.7k

            Topics

            1.3m

            Posts
            Community
            Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
            ioBroker Community 2014-2025
            logo
            • Login

            • Don't have an account? Register

            • Login or register to search.
            • First post
              Last post
            0
            • Home
            • Recent
            • Tags
            • Unread 0
            • Categories
            • Unreplied
            • Popular
            • GitHub
            • Docu
            • Hilfe