Skip to content
  • 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
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Frage zu Verknüpfung bei Auslösung eines Scripts

NEWS

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

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

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

Frage zu Verknüpfung bei Auslösung eines Scripts

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
16 Beiträge 4 Kommentatoren 1.3k 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.
  • Z Offline
    Z Offline
    Zippolighter
    schrieb am zuletzt editiert von
    #1

    Hallo, hier noch eine Frage

    Ich habe vier SV in der CCU2, wenn eine von den vieren Ihren Zustand ändert soll eine IF Abfrage erfolgen.

    Hatte das so ausprobiert, was leider nicht funktioniert hat. Die einzelnen IDs habe ich natürlich via var zugewiesen

    on({
        id: (idAnwesenheit || idAbwesendKurz || idAbwesendLang || idAbwesendSpezial),
        change: "any"
    }, function (obj1) {
    

    Oder muss ich wirklich vier Funktionen schreiben.

    Danke mal wieder für Eure Hilfe

    Gruß Zippolighter

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

      @Zippolighter:

      Oder muss ich wirklich vier Funktionen schreiben. `
      Ja, oder Du verwendest einen regulären Ausdruck mit den ID der 4 SV:

      on({id: /^hm-rega.0.(0123|1234|2345|3456)$/, change: "any"}, function(obj) {
         ...
      });
      

      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
      • Z Offline
        Z Offline
        Zippolighter
        schrieb am zuletzt editiert von
        #3

        Ok, danke für die Info

        auch noch eine Idee wie ich das abbilde

        1304_screenshot_161.jpg

        Bzw was ich nicht verstehe. Eine CCU2 Programm wird von oben nach unten abgearbeitet, solange ich "Sonst, wenn" verwende.

        Wie ist das in einem Script??

        Ich habe immer neue If nacheinander angelegt. Führt er die alle aus wenn Sie alle zutreffen oder nur bis zum ersten Treffer??. Wenn er alle ausführt die zutreffen, wie kann ich das verhindern, das sobald die erste gegriffen hat, der Rest nicht mehr abgearbeitet wird??

        Das Problem ist dann natürlich wie im Bild wenn ich dann auf einmal nicht nur auf Änderung in SV Astro prüfe, sondern auf eine ganz anderen SV bei Änderung prüfe. Ich habe keine Idee wie ich das in einem Script mache. Heul

        Hoffe Ihr habe auch hierzu noch eine Idee.

        ! ````
        /* (Gruppe) Deko Licht Aus (Astro Aus Verzögert Offset)
        ! */
        ! var idAstro = "hm-rega.0.7961"; //Astro
        ! on({
        id: idAstro,
        change: "ne"
        }, function (obj1) {
        var gidAnwesenheit = getState('hm-rega.0.950').val;
        var gidAbwesendKurz = getState('hm-rega.0.2330').val;
        var gidAbwesendLang = getState('hm-rega.0.65253').val;
        var gidAbwesendFeiern = getState('hm-rega.0.4797').val;
        var gidRedBullLicht = getState('hm-rpc.0.KEQ0025668.1.STATE').val;
        var gidAstroOffsetWert = getState('hm-rega.0.13987').val;
        var gidAstroAuto = getState('hm-rega.0.14811').val;
        var gidLichthelligkeit = getState('hm-rega.0.19606').val;
        var gidAbwesend_ioBroker = getState("javascript.0.Manuell.Systemvariable.Allgemein.Abwesenheit_ioBroker").val; //Abwesenheit_ioBroker

            if ((obj1.state.val === true) && (gidAstroOffsetWert > 0) && (gidAbwesend_ioBroker === false) && (gidRedBullLicht === true) && (gidAstroAuto === true) && (gidLichthelligkeit === true)){
                setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); //(Gruppe) Deko Licht An/Aus.PRESS_LONG
                setState("javascript.0.Manuell.Systemvariable.Allgemein.(Gruppe)_Deko_Licht_An/Aus", false); //(Gruppe) Deko Licht An/Aus
                setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE
                setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE
                setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE
                setState("hm-rega.0.12875", false); //Cameras Rolieren
        
                setStateDelayed("hm-rega.0.56542", true, 2000); //Lichthelligkeit Anzeige Aus Trigger
            }
            if ((obj1.state.val === true) && (gidAstroOffsetWert = 0) && (gidAbwesend_ioBroker === false) && (gidRedBullLicht === true) && (gidAstroAuto === true) && (gidLichthelligkeit === true)){
                setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); //(Gruppe) Deko Licht An/Aus.PRESS_LONG
                setState("javascript.0.Manuell.Systemvariable.Allgemein.(Gruppe)_Deko_Licht_An/Aus", false); //(Gruppe) Deko Licht An/Aus
                setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE
                setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE
                setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE
                setState("hm-rega.0.12875", false); //Cameras Rolieren
            }
            if (obj1.state.val === true){
                setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE
                setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE
                setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE
                setState("hm-rega.0.12875", false); //Cameras Rolieren
            }
        

        });

        
        Danke Gruß Zippolighter
        1 Antwort Letzte Antwort
        0
        • bahnuhrB Offline
          bahnuhrB Offline
          bahnuhr
          Forum Testing Most Active
          schrieb am zuletzt editiert von
          #4
          Ich habe immer neue If nacheinander angelegt. Führt er die alle aus wenn Sie alle zutreffen oder nur bis zum ersten Treffer??. Wenn er alle ausführt die zutreffen, wie kann ich das verhindern, das sobald die erste gegriffen hat, der Rest nicht mehr abgearbeitet wird??
          

          Beispiel 1:

          if (….) {

          ...

          }

          if (....) {

          ...

          }

          Fazit: Es werden alle if ausgeführt.

          Beispiel 2:

          if (....) {

          ...

          } else if (....) {

          ...

          }

          Fazit: Wenn die 1. if erfüllt ist, wird die 2. else if nicht mehr ausgeführt.

          Probier es mal aus, indem du log einfügst und dann schaust was im log ankommt.

          mfg

          Dieter


          Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
          Danke.
          gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
          ScreenToGif :https://www.screentogif.com/downloads.html

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

            @Zippolighter:

            Wie ist das in einem Script?? `
            Ein JS-Skript wird auch vom oben nach unten abgearbeitet, wobei bei bestimmten Funktionen (mit einer Callback-Funktion) wie setState(), createState(), sendTo() … nicht gewartet wird, bis sie fertig abgearbeitet sind, sondern diese werden nur "angeschubst" und es geht im Skript weiter.

            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
            • bahnuhrB Offline
              bahnuhrB Offline
              bahnuhr
              Forum Testing Most Active
              schrieb am zuletzt editiert von
              #6
              Das Problem ist dann natürlich wie im Bild wenn ich dann auf einmal nicht nur auf Änderung in SV Astro prüfe, sondern auf eine ganz anderen SV bei Änderung prüfe. Ich habe keine Idee wie ich das in einem Script mache.
              

              Das hab ich nicht verstanden.

              Du hasst doch in deinem Beispiel 2 SV die du überprüfst. Soll das nun nicht so sein ?

              Wenn du in einem Script 2 SV bei Änderung prüfen willst, dann nimmst du einfach 2x On(…).

              Wie in unserem anderen Beispiel:

              ! ````
              on({id: "hm-rpc.0.LEQ0029078.1.PRESS_SHORT", val: true, ack: true}, function() { // Klingel HM Taster
              log("Auslöser Klingel-PS");
              weiter ();
              });
              ! on({id: "hm-rpc.0.LEQ0029078.1.PRESS_LONG", val: true, ack: true}, function() { // Klingel HM Taster
              log("Auslöser Klingel-PL");
              weiter ();
              });

              
              Da werden ja auch 2 x on genommen und auf Veränderungen der Variablen geprüft.
              
              mfg

              Wenn ich helfen konnte, dann Daumen hoch (Pfeil nach oben)!
              Danke.
              gute Forenbeiträge: https://forum.iobroker.net/topic/51555/hinweise-f%C3%BCr-gute-forenbeitr%C3%A4ge
              ScreenToGif :https://www.screentogif.com/downloads.html

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

                @Zippolighter:

                wenn ich dann auf einmal nicht nur auf Änderung in SV Astro prüfe, sondern auf eine ganz anderen SV bei Änderung prüfe. Ich habe keine Idee wie ich das in einem Script mache. `

                var idSV1 = '...';
                var idSV2 = '...';
                ...
                
                var sv1 = getState(idSV1).val;  // Initialisierung bei Script start
                var sv2 = getState(idSV2).val;  // Initialisierung bei Script start
                ...
                
                function auswertung() {
                   // hier werden alle sv1..svN ausgewertet
                }
                
                // auswertung();  // nur, wenn bei Script start gewünscht
                
                on(idSV1, function(dp) {
                   sv1 = dp.state.val;
                   auswertung();
                });
                on(idSV2, function(dp) {
                   sv2 = dp.state.val;
                   auswertung();
                });
                ...
                
                

                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
                • Z Offline
                  Z Offline
                  Zippolighter
                  schrieb am zuletzt editiert von
                  #8

                  Erstmal danke an alle. Mich verwirrt das ganze ja auch selbst. Lach. Sind alte funktionierende Programme aus der CCU2 die ich versuche erstmal 1:1 als Script abzubilden, bevor ich die dann hoffentlich irgendwann alle löschen kann.

                  Es ist in dem CCU2 Programm ja so, das von oben nach unten immer "Änderung Astro" der Trigger ist, es wird dann überprüft ob etliche andere Werte da sind und dann was ausgeführt oder zur nächsten "Sonst wenn" Anweisung gesprungen.

                  Nur zum Schluss wie auf dem Bild wird auf Änderung Astro (wie schon die ganze Zeit) oder auf Astro_Offset_Wert 0 geprüft. Dies soll aber nur stattfinden wenn alles andere nicht getroffen hat (so eine Art Rettungsanker). Das Problem ist jetzt für mich das zusätzliche prüfen auf <u>oder</u> wenn alles andere nicht funktioniert hat.

                  Wenn ich das richtig verstehe sind ja zwei "on" Funktionen mit abgeschlossenen Semikolon, zwei eigene Funktionen. So kann ich das nicht als letzte Aktion wenn alles andere nicht funktioniert verwenden.

                  Habe mal im Script versucht, Funktion in Funktion zu packen. Keine Ahnung ob das geht. Kann wegen WAF momentan nicht testen.

                  Hier das Script. Mache dann nochmal Screenshots vom CCU2 Programm

                  ! ````
                  /* (Gruppe) Deko Licht Aus (Astro Aus Verzögert Offset)
                  ! */
                  ! var idAstro = "hm-rega.0.7961"; //Astro
                  ! on({
                  id: idAstro,
                  change: "ne"
                  }, function (obj1) {
                  var gidAnwesenheit = getState('hm-rega.0.950').val;
                  var gidAbwesendKurz = getState('hm-rega.0.2330').val;
                  var gidAbwesendLang = getState('hm-rega.0.65253').val;
                  var gidAbwesendFeiern = getState('hm-rega.0.4797').val;
                  var gidRedBullLicht = getState('hm-rpc.0.KEQ0025668.1.STATE').val;
                  var gidAstroOffsetWert = getState('hm-rega.0.13987').val;
                  var gidAstroAuto = getState('hm-rega.0.14811').val;
                  var gidLichthelligkeit = getState('hm-rega.0.19606').val;
                  var gidAbwesend_ioBroker = getState("javascript.0.Manuell.Systemvariable.Allgemein.Abwesenheit_ioBroker").val; //Abwesenheit_ioBroker

                      if ((obj1.state.val === true) && (gidAstroOffsetWert > 0) && (gidAbwesend_ioBroker === false) && (gidRedBullLicht === true) && (gidAstroAuto === true) && (gidLichthelligkeit === true)){
                          setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); //(Gruppe) Deko Licht An/Aus.PRESS_LONG
                          setState("javascript.0.Manuell.Systemvariable.Allgemein.(Gruppe)_Deko_Licht_An/Aus", false); //(Gruppe) Deko Licht An/Aus
                          setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE
                          setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE
                          setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE
                          setState("hm-rega.0.12875", false); //Cameras Rolieren
                  
                          setStateDelayed("hm-rega.0.56542", true, 2000); //Lichthelligkeit Anzeige Aus Trigger
                      }
                      else if ((obj1.state.val === true) && (gidAstroOffsetWert = 0) && (gidAbwesend_ioBroker === false) && (gidRedBullLicht === true) && (gidAstroAuto === true) && (gidLichthelligkeit === true)){
                          setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); //(Gruppe) Deko Licht An/Aus.PRESS_LONG
                          setState("javascript.0.Manuell.Systemvariable.Allgemein.(Gruppe)_Deko_Licht_An/Aus", false); //(Gruppe) Deko Licht An/Aus
                          setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE
                          setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE
                          setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE
                          setState("hm-rega.0.12875", false); //Cameras Rolieren
                      }
                      else if (obj1.state.val === true){
                          setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE
                          setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE
                          setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE
                          setState("hm-rega.0.12875", false); //Cameras Rolieren
                      }
                      else if (on({id: 'hm-rega.0.13987', change: 'ne'}, function() {
                          setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE
                          setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE
                          setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE
                          setState("hm-rega.0.12875", false); //Cameras Rolieren
                          })){
                      }
                  

                  });

                  ! ````

                  CCU2 Programm:
                  1304_screenshot_162.jpg
                  1304_screenshot_163.jpg
                  1304_screenshot_164.jpg

                  1 Antwort Letzte Antwort
                  0
                  • Y Offline
                    Y Offline
                    ykuendig
                    schrieb am zuletzt editiert von
                    #9

                    Vielleicht machst Du ein Beispiel, was genau machen möchtest.

                    Gruss Yves

                    1 Antwort Letzte Antwort
                    0
                    • Z Offline
                      Z Offline
                      Zippolighter
                      schrieb am zuletzt editiert von
                      #10

                      @ykuendig:

                      Vielleicht machst Du ein Beispiel, was genau machen möchtest. `
                      Ziel ist es das abgebildete CCU2 Programm als Script abzubilden.

                      Denke habe es auch soweit hinbekommen, bis auf die letzte "Sonst wenn". Hier habe ich keine Ahnung ob das funktioniert und ein Abbild des CCU2 Programms an der Stelle ist.

                      Danke

                      Gruß Zippolighter

                      1 Antwort Letzte Antwort
                      0
                      • Y Offline
                        Y Offline
                        ykuendig
                        schrieb am zuletzt editiert von
                        #11

                        Das hat sich überschnitten. Das Beispiel ist ja nun da 🙂

                        Aber das mit der letzten eingeschachtelten on-subscription wird kaum funktionieren.

                        Hab Dein Script mal zerpflückt und neu zusammengebaut.

                        Die Idee war, die on-subscriptions von den Funktionen zu trennen; So haben wir Anfänger mehr Übersicht.

                        Das Script regisitriert mit den 0n einen Trigger, welcher die gewünschte Funktion zur Zeit auslöst.

                        /* (Gruppe) Deko Licht Aus (Astro Aus Verzögert Offset)
                        
                         */
                        
                        var idAstro = "hm-rega.0.7961"; //Astro
                        var irgendwas = "hm-rega.0.13987"
                        
                        on({id: idAstro,change: "ne"}, AstroDingens(obj1));
                        on({id: irgendwas, change: "ne"}, AstroSowieso())
                        
                        function AstroDingens(obj1) {
                        	var gidAnwesenheit = getState('hm-rega.0.950').val;
                        	var gidAbwesendKurz = getState('hm-rega.0.2330').val;
                        	var gidAbwesendLang = getState('hm-rega.0.65253').val;
                        	var gidAbwesendFeiern = getState('hm-rega.0.4797').val;
                        	var gidRedBullLicht = getState('hm-rpc.0.KEQ0025668.1.STATE').val;
                        	var gidAstroOffsetWert = getState('hm-rega.0.13987').val;
                        	var gidAstroAuto = getState('hm-rega.0.14811').val;
                        	var gidLichthelligkeit = getState('hm-rega.0.19606').val;
                        	var gidAbwesend_ioBroker = getState("javascript.0.Manuell.Systemvariable.Allgemein.Abwesenheit_ioBroker").val; //Abwesenheit_ioBroker
                        
                        	if (obj1.state.val === true) { // Wird immer ausführt sobald 'state.val' TRUE ist
                        		setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE
                        		setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE
                        		setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE
                        		setState("hm-rega.0.12875", false); //Cameras Rolieren	
                        	}	// Theoretisch könntest Du auch hier statt dem if Block direkt die Funktion AstroSowieso() aufrufen
                        
                        	if ((obj1.state.val === true) && (gidAstroOffsetWert > 0) && (gidAbwesend_ioBroker === false) && (gidRedBullLicht === true) && (gidAstroAuto === true) && (gidLichthelligkeit === true)) {
                        		setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); //(Gruppe) Deko Licht An/Aus.PRESS_LONG
                        		setState("javascript.0.Manuell.Systemvariable.Allgemein.(Gruppe)_Deko_Licht_An/Aus", false); //(Gruppe) Deko Licht An/Aus
                        		setStateDelayed("hm-rega.0.56542", true, 2000); //Lichthelligkeit Anzeige Aus Trigger
                        
                        	} else if ((obj1.state.val === true) && (gidAstroOffsetWert = 0) && (gidAbwesend_ioBroker === false) && (gidRedBullLicht === true) && (gidAstroAuto === true) && (gidLichthelligkeit === true)) {
                        		setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); //(Gruppe) Deko Licht An/Aus.PRESS_LONG
                        		setState("javascript.0.Manuell.Systemvariable.Allgemein.(Gruppe)_Deko_Licht_An/Aus", false); //(Gruppe) Deko Licht An/Aus
                        
                        	} else {
                        	// Sonst, wenn sonst nichts zutrifft
                        	}
                        }
                        
                        function AstroSowieso() {
                        			setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE
                        			setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE
                        			setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE
                        			setState("hm-rega.0.12875", false); //Cameras Rolieren
                        

                        Gruss Yves

                        1 Antwort Letzte Antwort
                        0
                        • Z Offline
                          Z Offline
                          Zippolighter
                          schrieb am zuletzt editiert von
                          #12

                          Danke, das muss ich mir jetzt mal in Ruhe anschauen und dann sobald es geht testen.

                          Perfekt. Daumen hoch

                          1 Antwort Letzte Antwort
                          0
                          • Y Offline
                            Y Offline
                            ykuendig
                            schrieb am zuletzt editiert von
                            #13

                            Hab auch nur im Editor etwas dran rumkopiert. Das kann immer noch viele Fehler haben. Also lass den Daumen mal auf Halbmast! Aber danke für die Blumen :lol:

                            Gruss Yves

                            1 Antwort Letzte Antwort
                            0
                            • Z Offline
                              Z Offline
                              Zippolighter
                              schrieb am zuletzt editiert von
                              #14

                              Brauche doch nochmal Hilfe. Kriege immer nen Referenz Error

                              > javascript.0 script.js.Allgemein.(Gruppe)_Deko_Licht_Aus_(Astro_Aus_Verzögert_Offset: TypeError: Cannot read property 'state' of undefined at AstroDingens (script.js.Allgemein.(Gruppe)_Deko_Licht_Aus_(Astro_Aus_Verzögert_Offset:28:12) at script.js.Allgemein.(Gruppe)_Deko_Licht_Aus_(Astro_Aus_Verzögert_Offset:13:33

                              Zeile 13 ist

                              on({id: idAstro, change: "ne"}, AstroDingens(obj1));
                              

                              ! ` > /* (Gruppe) Deko Licht Aus (Astro Aus Verzögert Offset)

                              */

                              /* (Gruppe) Deko Licht Aus (Astro Aus Verzögert Offset)

                              */

                              var idAstro = "hm-rega.0.7961"; //Astro

                              var irgendwas = "hm-rega.0.13987";

                              on({id: idAstro, change: "ne"}, AstroDingens(obj1));

                              on({id: irgendwas, change: "ne"}, AstroSowieso());

                              function AstroDingens(obj1) {

                              var gidAnwesenheit = getState('hm-rega.0.950').val;

                              var gidAbwesendKurz = getState('hm-rega.0.2330').val;

                              var gidAbwesendLang = getState('hm-rega.0.65253').val;

                              var gidAbwesendFeiern = getState('hm-rega.0.4797').val;

                              var gidRedBullLicht = getState('hm-rpc.0.KEQ0025668.1.STATE').val;

                              var gidAstroOffsetWert = getState('hm-rega.0.13987').val;

                              var gidAstroAuto = getState('hm-rega.0.14811').val;

                              var gidLichthelligkeit = getState('hm-rega.0.19606').val;

                              var gidAbwesend_ioBroker = getState("javascript.0.Manuell.Systemvariable.Allgemein.Abwesenheit_ioBroker").val; //Abwesenheit_ioBroker

                              if (obj1.state.val === true) { // Wird immer ausführt sobald 'state.val' TRUE ist

                              setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE

                              setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE

                              setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE

                              setState("hm-rega.0.12875", false); //Cameras Rolieren

                              } // Theoretisch könntest Du auch hier statt dem if Block direkt die Funktion AstroSowieso() aufrufen

                              if ((obj1.state.val === true) && (gidAstroOffsetWert > 0) && (gidAbwesend_ioBroker === false) && (gidRedBullLicht === true) && (gidAstroAuto === true) && (gidLichthelligkeit === true)) {

                              setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); //(Gruppe) Deko Licht An/Aus.PRESS_LONG

                              setState("javascript.0.Manuell.Systemvariable.Allgemein.(Gruppe)_Deko_Licht_An/Aus", false); //(Gruppe) Deko Licht An/Aus

                              setStateDelayed("hm-rega.0.56542", true, 2000); //Lichthelligkeit Anzeige Aus Trigger

                              } else if ((obj1.state.val === true) && (gidAstroOffsetWert = 0) && (gidAbwesend_ioBroker === false) && (gidRedBullLicht === true) && (gidAstroAuto === true) && (gidLichthelligkeit === true)) {

                              setState("hm-rpc.1.CUX4000002.2.PRESS_LONG", true); //(Gruppe) Deko Licht An/Aus.PRESS_LONG

                              setState("javascript.0.Manuell.Systemvariable.Allgemein.(Gruppe)_Deko_Licht_An/Aus", false); //(Gruppe) Deko Licht An/Aus

                              } else {

                              // Sonst, wenn sonst nichts zutrifft

                              }

                              }

                              function AstroSowieso() {

                              setState("hm-rpc.0.KEQ0926589.2.STATE", false); //Teichlicht.STATE

                              setState("hm-rpc.0.KEQ0926570.2.STATE", false); //Balkon (BlumenRGB-Stripe).STATE

                              setState("hm-rpc.0.MEQ1711639.1.STATE", false); //Balkon (Kugelnlampen):1.STATE

                              setState("hm-rega.0.12875", false); //Cameras Rolieren

                              } `

                              1 Antwort Letzte Antwort
                              0
                              • Y Offline
                                Y Offline
                                ykuendig
                                schrieb am zuletzt editiert von
                                #15

                                Ev. brauchts AstroDingens und (obj) ein Leerzeichen

                                Dann würde ich die id überprüfen.

                                Gruss Yves

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

                                  @Zippolighter:

                                  on({id: idAstro, change: "ne"}, AstroDingens(obj1));
                                  on({id: irgendwas, change: "ne"}, AstroSowieso());
                                  
                                  ```` `  
                                  

                                  –->

                                  on({id: idAstro, change: "ne"}, AstroDingens);
                                  on({id: irgendwas, change: "ne"}, AstroSowieso);
                                  
                                  

                                  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
                                  Antworten
                                  • In einem neuen Thema antworten
                                  Anmelden zum Antworten
                                  • Älteste zuerst
                                  • Neuste zuerst
                                  • Meiste Stimmen


                                  Support us

                                  ioBroker
                                  Community Adapters
                                  Donate

                                  303

                                  Online

                                  32.4k

                                  Benutzer

                                  81.4k

                                  Themen

                                  1.3m

                                  Beiträge
                                  Community
                                  Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                                  ioBroker Community 2014-2025
                                  logo
                                  • Anmelden

                                  • Du hast noch kein Konto? Registrieren

                                  • Anmelden oder registrieren, um zu suchen
                                  • Erster Beitrag
                                    Letzter Beitrag
                                  0
                                  • Aktuell
                                  • Tags
                                  • Ungelesen 0
                                  • Kategorien
                                  • Unreplied
                                  • Beliebt
                                  • GitHub
                                  • Docu
                                  • Hilfe