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

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.2k

[gelöst] Überwachen und schalten

Geplant Angeheftet Gesperrt Verschoben JavaScript
24 Beiträge 3 Kommentatoren 1.4k Aufrufe 2 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.
  • 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
    schrieb am zuletzt editiert von ostseeskipper
    #6

    @mickym
    :+1: :flushed: 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 Antwort Letzte Antwort
    0
    • O ostseeskipper

      @mickym
      :+1: :flushed: 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 Online
      mickymM Online
      mickym
      Most Active
      schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
      0
      • O Offline
        O Offline
        ostseeskipper
        schrieb am zuletzt editiert von
        #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:+1:

        mickymM 1 Antwort Letzte Antwort
        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:+1:

          mickymM Online
          mickymM Online
          mickym
          Most Active
          schrieb am zuletzt editiert von
          #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 Antwort Letzte Antwort
          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
            schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
            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
              schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
              1
              • O Offline
                O Offline
                ostseeskipper
                schrieb am zuletzt editiert von
                #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.:+1:
                fromNe: heisst also "nicht von"?

                paul53P 1 Antwort Letzte Antwort
                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.:+1:
                  fromNe: heisst also "nicht von"?

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #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 Antwort Letzte Antwort
                  1
                  • O Offline
                    O Offline
                    ostseeskipper
                    schrieb am zuletzt editiert von
                    #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.:relaxed:

                    O 1 Antwort Letzte Antwort
                    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.:relaxed:

                      O Offline
                      O Offline
                      ostseeskipper
                      schrieb am zuletzt editiert von
                      #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 Antwort Letzte Antwort
                      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
                        schrieb am zuletzt editiert von 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 Antwort Letzte Antwort
                        0
                        • O Offline
                          O Offline
                          ostseeskipper
                          schrieb am zuletzt editiert von
                          #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 Antwort Letzte Antwort
                          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
                            schrieb am zuletzt editiert von
                            #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 Antwort Letzte Antwort
                            0
                            • paul53P paul53

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

                              Wie sieht die aus?

                              O Offline
                              O Offline
                              ostseeskipper
                              schrieb am zuletzt editiert von
                              #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 Antwort Letzte Antwort
                              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
                                schrieb am zuletzt editiert von 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 Antworten Letzte Antwort
                                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
                                  schrieb am zuletzt editiert von ostseeskipper
                                  #21

                                  @paul53
                                  Cool danke, du bist genial.:+1:

                                  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 Antwort Letzte Antwort
                                  0
                                  • 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
                                    schrieb am zuletzt editiert von
                                    #22

                                    @paul53
                                    Paul, kann ich mir irgendwie einfach das \d\ in eine variable holen?

                                    /^javascript\.0\.Anel\.1\.R\d\.Rel_Status$/
                                    
                                    1 Antwort Letzte Antwort
                                    0
                                    • O ostseeskipper

                                      @paul53
                                      Cool danke, du bist genial.:+1:

                                      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 Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #23

                                      @ostseeskipper sagte: Nun muss ich mir die obj.id nur noch zerlegen

                                          let id = obj.id.split('.');
                                          let relais = parseInt(id[4].substr(1,1));
                                      

                                      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 Antwort Letzte Antwort
                                      1
                                      • paul53P paul53

                                        @ostseeskipper sagte: Nun muss ich mir die obj.id nur noch zerlegen

                                            let id = obj.id.split('.');
                                            let relais = parseInt(id[4].substr(1,1));
                                        
                                        O Offline
                                        O Offline
                                        ostseeskipper
                                        schrieb am zuletzt editiert von
                                        #24

                                        @paul53 said in Überwachen und schalten:

                                        Paul, vielen Dank für eine so tolle Hilfe:+1: :relaxed:

                                        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

                                        566

                                        Online

                                        32.6k

                                        Benutzer

                                        82.2k

                                        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