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. JavaScript
  5. [gelöst] Überwachen und schalten

NEWS

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    798

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

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

[gelöst] Überwachen und schalten

Scheduled Pinned Locked Moved JavaScript
24 Posts 3 Posters 1.4k Views 2 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.
  • O ostseeskipper

    Hallo Zusammen,

    hoffe mich verständlich auszudrücken.

    Es gibt ein Script der einen Datenpunkt R1_Status (Boolean) von einem externen Gerät(Schalter) ständig überwacht,
    Der Wert kann sich auch durch Ereignisse ausserhalb des ioBrokers ändern.

    Nun habe ich ein Script geschrieben mit dem ich das Gerät ansteuern und auch schalten kann.
    Leider ist es kein klassisches On oder Off Kommando sondern nur ein Switch (gehe in den anderen Zustand) Kommando.

    Nun möchte ich aber den Schalter auf True oder False schalten und versuche ich die Schaltfunktion über eine bestätigte Aktualisierung auszulösen.
    Soweit die Theorie, allerdings wird es auch ausgelöst wenn der Schalter ohne zutun iobroker schaltet. Dann allerdings schaltet der ioBroker den Zustand zurück.

    Woran kann man das Ereignis festmachen das ioBroker schaltet oder das Gerät selbst?
    :man-shrugging:

    viele Grüsse von der Küste

    mickymM Offline
    mickymM Offline
    mickym
    Most Active
    wrote on last edited by
    #2

    @ostseeskipper Normalerweise am ACK Flag, das hast Du schon richtig gedeutet. Der Adapter im iobroker bekommt status aktualisierungen von Gerät und die sind "bestätigt". Schaltet man aus iobroker heraus, macht man dies unbestätigt und der Adapter bestätigt nach Ausführung.
    Ich würde dennoch - so macht man es zum Beispiel im mqtt Umfeld oft unterschiedliche Datenpunkte zur Steuerung und zum Status verwenden - dann gibt es auch nicht so schnell die Gefahr von Endlosschleifen.

    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.

    1 Reply Last reply
    0
    • O ostseeskipper

      Hallo Zusammen,

      hoffe mich verständlich auszudrücken.

      Es gibt ein Script der einen Datenpunkt R1_Status (Boolean) von einem externen Gerät(Schalter) ständig überwacht,
      Der Wert kann sich auch durch Ereignisse ausserhalb des ioBrokers ändern.

      Nun habe ich ein Script geschrieben mit dem ich das Gerät ansteuern und auch schalten kann.
      Leider ist es kein klassisches On oder Off Kommando sondern nur ein Switch (gehe in den anderen Zustand) Kommando.

      Nun möchte ich aber den Schalter auf True oder False schalten und versuche ich die Schaltfunktion über eine bestätigte Aktualisierung auszulösen.
      Soweit die Theorie, allerdings wird es auch ausgelöst wenn der Schalter ohne zutun iobroker schaltet. Dann allerdings schaltet der ioBroker den Zustand zurück.

      Woran kann man das Ereignis festmachen das ioBroker schaltet oder das Gerät selbst?
      :man-shrugging:

      viele Grüsse von der Küste

      paul53P Offline
      paul53P Offline
      paul53
      wrote on last edited by
      #3

      @ostseeskipper sagte: Nun habe ich ein Script geschrieben

      Sollen wir den Inhalt erraten?

      @ostseeskipper sagte in Überwachen und schalten:

      Switch (gehe in den anderen Zustand)

      Toggle?

      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
      0
      • O Offline
        O Offline
        ostseeskipper
        wrote on last edited by ostseeskipper
        #4

        @mickym
        dumme Frage wo finde ich das ACK Flag?👂

        @paul53 Danke Toggle, man lernt nie aus😊

        das Script läuft.
        Mir gehts um die Funktion wo und wie kann ich unterscheiden wer, wann zuletzt geschaltet hat. Wie kann ich die Endlosschleife verhindern bzw. sicherstellen das ein durch ioBroker gewünschter Zustand (an oder aus) erreicht wird.

        mickymM 1 Reply Last reply
        0
        • O ostseeskipper

          @mickym
          dumme Frage wo finde ich das ACK Flag?👂

          @paul53 Danke Toggle, man lernt nie aus😊

          das Script läuft.
          Mir gehts um die Funktion wo und wie kann ich unterscheiden wer, wann zuletzt geschaltet hat. Wie kann ich die Endlosschleife verhindern bzw. sicherstellen das ein durch ioBroker gewünschter Zustand (an oder aus) erreicht wird.

          mickymM Offline
          mickymM Offline
          mickym
          Most Active
          wrote on last edited by mickym
          #5

          @ostseeskipper Im Objekt. In der Objekteübersicht wird ein nicht bestätigter Wert rot dargestellt, grün ein bestätigter Wert.
          Wenn Du einen Wert selbst setzt kannst Du es über die Option im Dialog machen:
          3ec4dec7-e692-4f15-b6f3-576ad2cf37b2-image.png

          Im Blockly kannst Du es damit überprüfen:

          3c56f83b-0cae-4f7f-ab32-c7bf49c6ed57-image.png

          In Node Red

          d0f9eeed-56e4-4276-8b4d-4a542498f50e-image.png

          Über die Option Send only when ack==true

          Das Ack Flag ist Bestandteil des Objektes /Datenpunktes:

          16bc1895-00f7-4276-91e9-3eae90c89f26-image.png

          In Javascript setzt Du so das ACK-Flag:

          setState('counter', 1 + getState('counter'), true/*ack*/);
          

          bzw. prüfst beim Trigger so:

          on({id: 'Hier.der.Datenpunkt', change: 'any', ack:false}, function (obj) {
              // Hier der Code, der aber nur ausgeführt wird, falls aktiv im VIS etc. ausgeführt. ACK ist da standardmäßig immer false.
          });
          

          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.

          O 1 Reply Last reply
          0
          • mickymM mickym

            @ostseeskipper Im Objekt. In der Objekteübersicht wird ein nicht bestätigter Wert rot dargestellt, grün ein bestätigter Wert.
            Wenn Du einen Wert selbst setzt kannst Du es über die Option im Dialog machen:
            3ec4dec7-e692-4f15-b6f3-576ad2cf37b2-image.png

            Im Blockly kannst Du es damit überprüfen:

            3c56f83b-0cae-4f7f-ab32-c7bf49c6ed57-image.png

            In Node Red

            d0f9eeed-56e4-4276-8b4d-4a542498f50e-image.png

            Über die Option Send only when ack==true

            Das Ack Flag ist Bestandteil des Objektes /Datenpunktes:

            16bc1895-00f7-4276-91e9-3eae90c89f26-image.png

            In Javascript setzt Du so das ACK-Flag:

            setState('counter', 1 + getState('counter'), true/*ack*/);
            

            bzw. prüfst beim Trigger so:

            on({id: 'Hier.der.Datenpunkt', change: 'any', ack:false}, function (obj) {
                // Hier der Code, der aber nur ausgeführt wird, falls aktiv im VIS etc. ausgeführt. ACK ist da standardmäßig immer false.
            });
            
            O Offline
            O Offline
            ostseeskipper
            wrote on last edited by ostseeskipper
            #6

            @mickym
            👍 😳 besten Dank

            NodeRed hab ich mich noch nicht mit beschäftigt. Mach ioBroker erst seit Jan. ... und immer noch mehr installieren ist nicht so mein Ding muss erst mal laufen lernen mit dem was da ist.
            JS ist für mich leichter als Blockly.
            Aber dank deines Schema's find ich ja dann auch den grundlegenden JS Befehl
            Hoffe das man ACK auch per JS abfragen kann.

            @mickym Danke fürs Edit :-)

            mickymM 1 Reply Last reply
            0
            • O ostseeskipper

              @mickym
              👍 😳 besten Dank

              NodeRed hab ich mich noch nicht mit beschäftigt. Mach ioBroker erst seit Jan. ... und immer noch mehr installieren ist nicht so mein Ding muss erst mal laufen lernen mit dem was da ist.
              JS ist für mich leichter als Blockly.
              Aber dank deines Schema's find ich ja dann auch den grundlegenden JS Befehl
              Hoffe das man ACK auch per JS abfragen kann.

              @mickym Danke fürs Edit :-)

              mickymM Offline
              mickymM Offline
              mickym
              Most Active
              wrote on last edited by mickym
              #7

              @ostseeskipper Ja ich habe Dir die Javascript Befehle auch unten angehängt

              Sprich in Deinem Fall, sollte bei ack:true dieses Ereignis nur dann Auftreten, wenn der Adapter das setzt, sprich über Taster geschaltet wurde.

              bzw.

              wenn Du über den iobroker schaltest, wird der erst ack:false haben und dann ack:true. Das heißt eigentlich das true in diesem Fall zur Unterscheidung nicht gut ist, in diesem Fall ist false besser.

              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.

              1 Reply Last reply
              0
              • O Offline
                O Offline
                ostseeskipper
                wrote on last edited by
                #8

                @mickym said in Überwachen und schalten:

                @ostseeskipper Ja ich habe Dir die Javascript Befehle auch unten angehängt

                Sprich in Deinem Fall, sollte bei ack:true dieses Ereignis nur dann Auftreten, wenn der Adapter das setzt, sprich über Taster geschaltet wurde.

                Ok, mit dem Edit wird es mir besser verständlich.
                Denn wenn der Zustand durch das Gerät selbst geändert wird, bekommt das ein alle 15sek laufendes ioBrokerScript mit und setzt den Datenpunkt entsprechend des ermittelten Wertes. Und nun wollte ich halt das Objekt schalten und hatte es mit "bestätigt" probiert. Nun denn, versuch ich es anders rum wie du es empfohlen hast.

                Danke für die Denkanstöße👍

                mickymM 1 Reply Last reply
                0
                • O ostseeskipper

                  @mickym said in Überwachen und schalten:

                  @ostseeskipper Ja ich habe Dir die Javascript Befehle auch unten angehängt

                  Sprich in Deinem Fall, sollte bei ack:true dieses Ereignis nur dann Auftreten, wenn der Adapter das setzt, sprich über Taster geschaltet wurde.

                  Ok, mit dem Edit wird es mir besser verständlich.
                  Denn wenn der Zustand durch das Gerät selbst geändert wird, bekommt das ein alle 15sek laufendes ioBrokerScript mit und setzt den Datenpunkt entsprechend des ermittelten Wertes. Und nun wollte ich halt das Objekt schalten und hatte es mit "bestätigt" probiert. Nun denn, versuch ich es anders rum wie du es empfohlen hast.

                  Danke für die Denkanstöße👍

                  mickymM Offline
                  mickymM Offline
                  mickym
                  Most Active
                  wrote on last edited by
                  #9

                  @ostseeskipper Das heißt Du bekommst in diesem Fall nur mit, wenn Du über iobroker schaltest, aber nicht über den Taster. Wenn Du beide Fälle herausfischen möchtest müsstest Du im Prinzip schauen, ob der Wert 2 mal gesetzt wird.

                  Wird er nur einmal mit ack=true gesetzt - dann Taster
                  Wird er zweimal gesetzt ack=false dann ack=true dann über iobroker.

                  Du wirst ja auch feststellen, dass wenn Du über Javascript im iobroker mit ack=true setzt eigentlich kein Schaltvorgang erfolgt.

                  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.

                  O 1 Reply Last reply
                  1
                  • mickymM mickym

                    @ostseeskipper Das heißt Du bekommst in diesem Fall nur mit, wenn Du über iobroker schaltest, aber nicht über den Taster. Wenn Du beide Fälle herausfischen möchtest müsstest Du im Prinzip schauen, ob der Wert 2 mal gesetzt wird.

                    Wird er nur einmal mit ack=true gesetzt - dann Taster
                    Wird er zweimal gesetzt ack=false dann ack=true dann über iobroker.

                    Du wirst ja auch feststellen, dass wenn Du über Javascript im iobroker mit ack=true setzt eigentlich kein Schaltvorgang erfolgt.

                    O Offline
                    O Offline
                    ostseeskipper
                    wrote on last edited by ostseeskipper
                    #10

                    @mickym said in Überwachen und schalten:

                    Du wirst ja auch feststellen, dass wenn Du über Javascript im iobroker mit ack=true setzt eigentlich kein Schaltvorgang erfolgt.

                    Wenn ich vom ioBroker aus die Schaltfunktion ausführen möchte(per Hand über VIS oder per Ergebnis bestimmter Zustände) muss eine Funktion in einem JS-Script aufgerufen werden und dabei ein Wert (welches Relais im Gerät geschaltet werden soll) übergeben werden. Nach dem Schalten so viel weiss ich muss ich noch mal prüfen und ggf noch mal schalten.

                    paul53P 1 Reply Last reply
                    0
                    • O ostseeskipper

                      @mickym said in Überwachen und schalten:

                      Du wirst ja auch feststellen, dass wenn Du über Javascript im iobroker mit ack=true setzt eigentlich kein Schaltvorgang erfolgt.

                      Wenn ich vom ioBroker aus die Schaltfunktion ausführen möchte(per Hand über VIS oder per Ergebnis bestimmter Zustände) muss eine Funktion in einem JS-Script aufgerufen werden und dabei ein Wert (welches Relais im Gerät geschaltet werden soll) übergeben werden. Nach dem Schalten so viel weiss ich muss ich noch mal prüfen und ggf noch mal schalten.

                      paul53P Offline
                      paul53P Offline
                      paul53
                      wrote on last edited by paul53
                      #11

                      @ostseeskipper
                      Um eine Endlosschleife zu vermeiden, überprüft man, ob die Quelle des Triggers nicht ein Skript ist:

                      on({id: id, fromNe: 'system.adapter.javascript.0'}, function(dp) {});
                      

                      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
                      • O Offline
                        O Offline
                        ostseeskipper
                        wrote on last edited by
                        #12

                        @ostseeskipper
                        Um eine Endlosschleife zu vermeiden, überprüft man, ob die Quelle des Triggers nicht ein Skript ist:

                        on({id: id, fromNe: 'system.adapter.javascript.0'}, function(dp) {});
                        

                        @paul53 besten Dank.
                        muss den tollen Input von dir und @mickym nun erst mal verarbeiten.👍
                        fromNe: heisst also "nicht von"?

                        paul53P 1 Reply Last reply
                        0
                        • O ostseeskipper

                          @ostseeskipper
                          Um eine Endlosschleife zu vermeiden, überprüft man, ob die Quelle des Triggers nicht ein Skript ist:

                          on({id: id, fromNe: 'system.adapter.javascript.0'}, function(dp) {});
                          

                          @paul53 besten Dank.
                          muss den tollen Input von dir und @mickym nun erst mal verarbeiten.👍
                          fromNe: heisst also "nicht von"?

                          paul53P Offline
                          paul53P Offline
                          paul53
                          wrote on last edited by
                          #13

                          @ostseeskipper sagte: fromNe: heisst also "nicht von"?

                          Ja, siehe Doku.

                          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
                          • O Offline
                            O Offline
                            ostseeskipper
                            wrote on last edited by
                            #14

                            @mickym said in Überwachen und schalten:

                            Du wirst ja auch feststellen, dass wenn Du über Javascript im iobroker mit ack=true setzt eigentlich kein Schaltvorgang erfolgt.

                            Hab mit den Schaltern (erst mal noch ohne Funktion) rumgespielt und denke das hilft zum erkennen.

                            @paul53 auf dich komm ich bestimmt noch mal zu da es nicht nur 1 Schalter ist sondern 8 wollte ich nur mit einem Trigger arbeiten. "enums" heisst glaub ich das Zauberwort. Dann müsste ich aber in der Trigger Funktion auswerten welcher der 8 nun welchen Wert haben soll.

                            Aber nun bau ich das erst mal nur für einen Schalter bis der funktioniert.

                            Schönen Abend noch.☺

                            O 1 Reply Last reply
                            0
                            • O ostseeskipper

                              @mickym said in Überwachen und schalten:

                              Du wirst ja auch feststellen, dass wenn Du über Javascript im iobroker mit ack=true setzt eigentlich kein Schaltvorgang erfolgt.

                              Hab mit den Schaltern (erst mal noch ohne Funktion) rumgespielt und denke das hilft zum erkennen.

                              @paul53 auf dich komm ich bestimmt noch mal zu da es nicht nur 1 Schalter ist sondern 8 wollte ich nur mit einem Trigger arbeiten. "enums" heisst glaub ich das Zauberwort. Dann müsste ich aber in der Trigger Funktion auswerten welcher der 8 nun welchen Wert haben soll.

                              Aber nun bau ich das erst mal nur für einen Schalter bis der funktioniert.

                              Schönen Abend noch.☺

                              O Offline
                              O Offline
                              ostseeskipper
                              wrote on last edited by
                              #15

                              @paul53 @mickym
                              Dank Eurer Hilfe bin ich soweit das der Trigger über die Funktion den Datenpunkt schaltet.

                              on({id: idVar, fromNe: 'system.adapter.javascript.0', change: 'ne', ack:false}, function (obj) { //nur unbestätigte Änderungen und nicht durch ein javascript geändert
                                      log("AUSGELÖST: Datenpunkt unbestätigt nicht aus Script geändert" ,"info");
                                  setRelais(1)// Hier der Code, der aber nur ausgeführt wird, falls aktiv im VIS etc. ausgeführt. ACK ist da standardmäßig immer false.
                              });
                              

                              Da es 8 Relais gibt würde ich gern alle 8 gleichzeitig in einem Script überwachen lassen.
                              Dafür habe ich schon mal die 8 Datenpunkte in ein Enum zusammengefasst.
                              Wie muss ich varID (Datenpunktvariable) ändern um enum.functions.relaisschalter zu triggern?
                              Wie kann ich dann auslesen welcher der Datenpunkte ausgelöst hat damit ich das in setRelais(x) übergeben kann.

                              (wenn man auf enum nicht triggern kann, meine so was gelesen zu haben, leg ich halt 8 x varID1-8 als Array an) oder gibt ne schlankere Variante

                              paul53P 1 Reply Last reply
                              0
                              • O ostseeskipper

                                @paul53 @mickym
                                Dank Eurer Hilfe bin ich soweit das der Trigger über die Funktion den Datenpunkt schaltet.

                                on({id: idVar, fromNe: 'system.adapter.javascript.0', change: 'ne', ack:false}, function (obj) { //nur unbestätigte Änderungen und nicht durch ein javascript geändert
                                        log("AUSGELÖST: Datenpunkt unbestätigt nicht aus Script geändert" ,"info");
                                    setRelais(1)// Hier der Code, der aber nur ausgeführt wird, falls aktiv im VIS etc. ausgeführt. ACK ist da standardmäßig immer false.
                                });
                                

                                Da es 8 Relais gibt würde ich gern alle 8 gleichzeitig in einem Script überwachen lassen.
                                Dafür habe ich schon mal die 8 Datenpunkte in ein Enum zusammengefasst.
                                Wie muss ich varID (Datenpunktvariable) ändern um enum.functions.relaisschalter zu triggern?
                                Wie kann ich dann auslesen welcher der Datenpunkte ausgelöst hat damit ich das in setRelais(x) übergeben kann.

                                (wenn man auf enum nicht triggern kann, meine so was gelesen zu haben, leg ich halt 8 x varID1-8 als Array an) oder gibt ne schlankere Variante

                                paul53P Offline
                                paul53P Offline
                                paul53
                                wrote on last edited by paul53
                                #16

                                @ostseeskipper sagte: Wie muss ich varID (Datenpunktvariable) ändern um enum.functions.relaisschalter zu triggern?

                                Mit dem $Selector:

                                $('*(functions=relaisschalter)').on(function(dp) {
                                    log('Auslöser: ' + dp.id + ', Wert: ' + dp.state.val);
                                });
                                

                                oder mit RegExp im on(), da die 8 IDs sicherlich eine einheitliche Struktur haben, die sich von anderen Datenpunkt-IDs unterscheidet.

                                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
                                0
                                • O Offline
                                  O Offline
                                  ostseeskipper
                                  wrote on last edited by
                                  #17

                                  @paul53
                                  Danke.
                                  Hab das rüberkopiert aber es löst nicht aus.
                                  Es sieht auch so komisch aus als ob es Text ist
                                  efc3f419-f135-4a8b-a256-bc6096fe5872-grafik.png

                                  Allerdings ehrlich gesagt ist mir leider grad 1 Schritt zu weit. Ist schwer grad, da ich auch keinen Bezug zu meiner enum Liste enum.functions.relaisschalter finde.

                                  Ja die 8 ID's haben eine einheitliche Struktur
                                  Hatte sgrad mit on und dem Array probiert, hab allerdings aktuell die Herausforderung das ich noch nicht weiss wie ich ermitteln kann welches der 8 der Auslöser war.

                                  on({id: [idVar1,idVar2,idVar3,idVar4,idVar5,idVar6,idVar7,idVar8], fromNe: 'system.adapter.javascript.0', change: 'ne', ack:false}, function (obj) { //nur unbestätigte Änderungen und nicht durch ein javascript geändert
                                          log("AUSGELÖST: Datenpunkt unbestätigt nicht aus Script geändert" ,"info");
                                      setRelais(1)// Hier der Code, der aber nur ausgeführt wird, falls aktiv im VIS etc. ausgeführt. ACK ist da standardmäßig immer false.
                                  });
                                  
                                  paul53P 1 Reply Last reply
                                  0
                                  • O ostseeskipper

                                    @paul53
                                    Danke.
                                    Hab das rüberkopiert aber es löst nicht aus.
                                    Es sieht auch so komisch aus als ob es Text ist
                                    efc3f419-f135-4a8b-a256-bc6096fe5872-grafik.png

                                    Allerdings ehrlich gesagt ist mir leider grad 1 Schritt zu weit. Ist schwer grad, da ich auch keinen Bezug zu meiner enum Liste enum.functions.relaisschalter finde.

                                    Ja die 8 ID's haben eine einheitliche Struktur
                                    Hatte sgrad mit on und dem Array probiert, hab allerdings aktuell die Herausforderung das ich noch nicht weiss wie ich ermitteln kann welches der 8 der Auslöser war.

                                    on({id: [idVar1,idVar2,idVar3,idVar4,idVar5,idVar6,idVar7,idVar8], fromNe: 'system.adapter.javascript.0', change: 'ne', ack:false}, function (obj) { //nur unbestätigte Änderungen und nicht durch ein javascript geändert
                                            log("AUSGELÖST: Datenpunkt unbestätigt nicht aus Script geändert" ,"info");
                                        setRelais(1)// Hier der Code, der aber nur ausgeführt wird, falls aktiv im VIS etc. ausgeführt. ACK ist da standardmäßig immer false.
                                    });
                                    
                                    paul53P Offline
                                    paul53P Offline
                                    paul53
                                    wrote on last edited by
                                    #18

                                    @ostseeskipper sagte: Ja die 8 ID's haben eine einheitliche Struktur

                                    Wie sieht die aus?

                                    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

                                    O 1 Reply Last reply
                                    0
                                    • paul53P paul53

                                      @ostseeskipper sagte: Ja die 8 ID's haben eine einheitliche Struktur

                                      Wie sieht die aus?

                                      O Offline
                                      O Offline
                                      ostseeskipper
                                      wrote on last edited by
                                      #19

                                      @paul53

                                      const idVar1 = 'javascript.0.Anel.1.R1.Rel_Status'; // Datenpunkt-ID 
                                      const idVar2 = 'javascript.0.Anel.1.R2.Rel_Status'; // Datenpunkt-ID 
                                      const idVar3 = 'javascript.0.Anel.1.R3.Rel_Status'; // Datenpunkt-ID 
                                      const idVar4 = 'javascript.0.Anel.1.R4.Rel_Status'; // Datenpunkt-ID 
                                      const idVar5 = 'javascript.0.Anel.1.R5.Rel_Status'; // Datenpunkt-ID 
                                      const idVar6 = 'javascript.0.Anel.1.R6.Rel_Status'; // Datenpunkt-ID 
                                      const idVar7 = 'javascript.0.Anel.1.R7.Rel_Status'; // Datenpunkt-ID 
                                      const idVar8 = 'javascript.0.Anel.1.R8.Rel_Status'; // Datenpunkt-ID 
                                      
                                      paul53P 1 Reply Last reply
                                      0
                                      • O ostseeskipper

                                        @paul53

                                        const idVar1 = 'javascript.0.Anel.1.R1.Rel_Status'; // Datenpunkt-ID 
                                        const idVar2 = 'javascript.0.Anel.1.R2.Rel_Status'; // Datenpunkt-ID 
                                        const idVar3 = 'javascript.0.Anel.1.R3.Rel_Status'; // Datenpunkt-ID 
                                        const idVar4 = 'javascript.0.Anel.1.R4.Rel_Status'; // Datenpunkt-ID 
                                        const idVar5 = 'javascript.0.Anel.1.R5.Rel_Status'; // Datenpunkt-ID 
                                        const idVar6 = 'javascript.0.Anel.1.R6.Rel_Status'; // Datenpunkt-ID 
                                        const idVar7 = 'javascript.0.Anel.1.R7.Rel_Status'; // Datenpunkt-ID 
                                        const idVar8 = 'javascript.0.Anel.1.R8.Rel_Status'; // Datenpunkt-ID 
                                        
                                        paul53P Offline
                                        paul53P Offline
                                        paul53
                                        wrote on last edited by paul53
                                        #20

                                        @ostseeskipper
                                        Dann mit RegExp z.B. so:

                                        on({id: /^javascript\.0\.Anel\.1\.R\d\.Rel_Status$/, fromNe: 'system.adapter.javascript.0', change: 'ne', ack:false}, function (obj) { //nur unbestätigte Änderungen und nicht durch ein javascript geändert
                                            log('Auslöser: ' + obj.id);
                                            log("AUSGELÖST: Datenpunkt unbestätigt nicht aus Script geändert" ,"info");
                                            setRelais(1)// Hier der Code, der aber nur ausgeführt wird, falls aktiv im VIS etc. ausgeführt. ACK ist da standardmäßig immer 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

                                        O 2 Replies Last reply
                                        1
                                        • paul53P paul53

                                          @ostseeskipper
                                          Dann mit RegExp z.B. so:

                                          on({id: /^javascript\.0\.Anel\.1\.R\d\.Rel_Status$/, fromNe: 'system.adapter.javascript.0', change: 'ne', ack:false}, function (obj) { //nur unbestätigte Änderungen und nicht durch ein javascript geändert
                                              log('Auslöser: ' + obj.id);
                                              log("AUSGELÖST: Datenpunkt unbestätigt nicht aus Script geändert" ,"info");
                                              setRelais(1)// Hier der Code, der aber nur ausgeführt wird, falls aktiv im VIS etc. ausgeführt. ACK ist da standardmäßig immer false.
                                          })
                                          
                                          O Offline
                                          O Offline
                                          ostseeskipper
                                          wrote on last edited by ostseeskipper
                                          #21

                                          @paul53
                                          Cool danke, du bist genial.👍

                                          Nun muss ich mir die obj.id nur noch zerlegen da ich einfach nur die Zahl von 1-8 brauche.
                                          Das würde ich per Text und parseInt oder so machen. Oder gibts da noch nen schlankeren Trick? (Sorry ich komm aus der SQL Ecke)

                                          paul53P 1 Reply Last reply
                                          0

                                          Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                          Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                          With your input, this post could be even better 💗

                                          Register Login
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          345

                                          Online

                                          32.8k

                                          Users

                                          82.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