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. Status negiert übertragen

NEWS

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

  • 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

Status negiert übertragen

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
34 Beiträge 11 Kommentatoren 3.7k Aufrufe 3 Watching
  • Älteste zuerst
  • Neuste zuerst
  • Meiste Stimmen
Antworten
  • In einem neuen Thema antworten
Anmelden zum Antworten
Dieses Thema wurde gelöscht. Nur Nutzer mit entsprechenden Rechten können es sehen.
  • T Offline
    T Offline
    TOBO
    schrieb am zuletzt editiert von
    #19

    Nun zwei letzte Fragen 🙂

    Wie kann man mehrere logische Verknüpfungen machen ?

    Also

    ist Eingang 1 = 1

    und Eingang 2 = 1

    und Eingang 3 = 0

    Setze Ausgang 1 = 1

    und ich hätte gern einen "Stromstoßschalter" in Javascript

    Eingang = 1

    setze Ausgang

    Eingang geht nach 0

    mache nix

    Eingang geht wieder 1

    Rücksetze Ausgang

    Hoffe ich konnte mich erklären 🙂

    1 Antwort Letzte Antwort
    0
    • DutchmanD Offline
      DutchmanD Offline
      Dutchman
      Developer Most Active Administrators
      schrieb am zuletzt editiert von
      #20

      @TOBO:

      Nun zwei letzte Fragen 🙂

      Wie kann man mehrere logische Verknüpfungen machen ?

      Also

      ist Eingang 1 = 1

      und Eingang 2 = 1

      und Eingang 3 = 0

      Setze Ausgang 1 = 1

      und ich hätte gern einen "Stromstoßschalter" in Javascript

      Eingang = 1

      setze Ausgang

      Eingang geht nach 0

      mache nix

      Eingang geht wieder 1

      Rücksetze Ausgang

      Hoffe ich konnte mich erklären 🙂 `

      du meinst verschieden states mit einander vergleichen ? z.b.:

      IF ( value_1 == "1" && value_2 == "1") {
            setstate(hier was du willst oder)
            log("Value 1 und 2 sind 1")
      };
      

      Hast du dir die javascript adapter documentation mal angeschaut ?

      && z.b. bedeuted UND, || bedeutet oder usw, ansonsten mal mit blockly anfangen und damit rumspielen dan sieht man auch welche code generiert wird.

      ~Dutch

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

        @TOBO:

        ist Eingang 1 = 1

        und Eingang 2 = 1

        und Eingang 3 = 0 `

        if(Eingang_1 && Eingang_2 && !Eingang_3) {...}
        

        @TOBO:

        Eingang = 1

        setze Ausgang

        Eingang geht nach 0

        mache nix

        Eingang geht wieder 1

        Rücksetze Ausgang `

        // Toggle
        on({id: idEingang, val: 1}, function() {
           Ausgang = !Ausgang;
        });
        

        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

        Z 1 Antwort Letzte Antwort
        0
        • paul53P paul53

          @TOBO:

          ist Eingang 1 = 1

          und Eingang 2 = 1

          und Eingang 3 = 0 `

          if(Eingang_1 && Eingang_2 && !Eingang_3) {...}
          

          @TOBO:

          Eingang = 1

          setze Ausgang

          Eingang geht nach 0

          mache nix

          Eingang geht wieder 1

          Rücksetze Ausgang `

          // Toggle
          on({id: idEingang, val: 1}, function() {
             Ausgang = !Ausgang;
          });
          
          Z Offline
          Z Offline
          Zimbl
          schrieb am zuletzt editiert von Homoran
          #22

          @paul53

          irgendwie komme ich nun hier bei den ganzen etwas durcheinander.
          Aber ich habe etwas ähnlich, es ist auch mit mehr oder minder unterschiedlichen Typen. Bei dem der Ausgang auch negiert werden muss.

          Aber da aber irgendwie den Faden verloren.

          Ich habe eine Variable die den Name hat vom Typ Number "close 1 or. open 0"

          Diese muss ich auf einen GPIO schalten....nur in umgekehrter Reihenfolge....

          Das heisst wenn TRUE ist, soll nicht geschaltet werden und wenn FALSE soll geschaltet werden...

          Typ Number Open 0 = Typ Bool FALSE
          Typ Number Close 1 = Typ Bool TRUE

          Wenn ich das mit diesem mache, funktioniert das ja nicht, aber was muss ich ändern ?

          var idSrc = "tuya.0.658013063c6105ee34fe.36";
          
          var idDst = "rpi2.0.gpio.11.state";
          
           
          
          on(idSrc, function(dp) {  // Triggern bei Änderung
          
             setState(idDst, !dp.state.val);
          
          });
          
          
          // Script start
          
          setState(idDst, !getState(idSrc).val);
          

          MOD-EDIT: Code in code-tags gesetzt!

          HomoranH bahnuhrB paul53P 3 Antworten Letzte Antwort
          0
          • Z Zimbl

            @paul53

            irgendwie komme ich nun hier bei den ganzen etwas durcheinander.
            Aber ich habe etwas ähnlich, es ist auch mit mehr oder minder unterschiedlichen Typen. Bei dem der Ausgang auch negiert werden muss.

            Aber da aber irgendwie den Faden verloren.

            Ich habe eine Variable die den Name hat vom Typ Number "close 1 or. open 0"

            Diese muss ich auf einen GPIO schalten....nur in umgekehrter Reihenfolge....

            Das heisst wenn TRUE ist, soll nicht geschaltet werden und wenn FALSE soll geschaltet werden...

            Typ Number Open 0 = Typ Bool FALSE
            Typ Number Close 1 = Typ Bool TRUE

            Wenn ich das mit diesem mache, funktioniert das ja nicht, aber was muss ich ändern ?

            var idSrc = "tuya.0.658013063c6105ee34fe.36";
            
            var idDst = "rpi2.0.gpio.11.state";
            
             
            
            on(idSrc, function(dp) {  // Triggern bei Änderung
            
               setState(idDst, !dp.state.val);
            
            });
            
            
            // Script start
            
            setState(idDst, !getState(idSrc).val);
            

            MOD-EDIT: Code in code-tags gesetzt!

            HomoranH Nicht stören
            HomoranH Nicht stören
            Homoran
            Global Moderator Administrators
            schrieb am zuletzt editiert von
            #23

            @zimbl sagte in Status negiert übertragen:

            irgendwie komme ich nun hier bei den ganzen etwas durcheinander.

            wäre nach über 5 Jahren Ruhe im Thread nicht ein neuer angesagt?

            kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

            Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

            der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

            Z 1 Antwort Letzte Antwort
            0
            • HomoranH Homoran

              @zimbl sagte in Status negiert übertragen:

              irgendwie komme ich nun hier bei den ganzen etwas durcheinander.

              wäre nach über 5 Jahren Ruhe im Thread nicht ein neuer angesagt?

              Z Offline
              Z Offline
              Zimbl
              schrieb am zuletzt editiert von
              #24

              @homoran

              ja sorry, wollte nicht unnötig wieder etwas neues beginne. Da das Thema ja ähnlich bzw. fast das gleiche ist.

              aber bei dem nächsten mal werde ich mich dran halten, es wird ja immer gesagt. Ob man die SuFu auch benutzt.

              Aber werde mich beim nächsten mal dran halten. Versprochen...

              1 Antwort Letzte Antwort
              0
              • Z Zimbl

                @paul53

                irgendwie komme ich nun hier bei den ganzen etwas durcheinander.
                Aber ich habe etwas ähnlich, es ist auch mit mehr oder minder unterschiedlichen Typen. Bei dem der Ausgang auch negiert werden muss.

                Aber da aber irgendwie den Faden verloren.

                Ich habe eine Variable die den Name hat vom Typ Number "close 1 or. open 0"

                Diese muss ich auf einen GPIO schalten....nur in umgekehrter Reihenfolge....

                Das heisst wenn TRUE ist, soll nicht geschaltet werden und wenn FALSE soll geschaltet werden...

                Typ Number Open 0 = Typ Bool FALSE
                Typ Number Close 1 = Typ Bool TRUE

                Wenn ich das mit diesem mache, funktioniert das ja nicht, aber was muss ich ändern ?

                var idSrc = "tuya.0.658013063c6105ee34fe.36";
                
                var idDst = "rpi2.0.gpio.11.state";
                
                 
                
                on(idSrc, function(dp) {  // Triggern bei Änderung
                
                   setState(idDst, !dp.state.val);
                
                });
                
                
                // Script start
                
                setState(idDst, !getState(idSrc).val);
                

                MOD-EDIT: Code in code-tags gesetzt!

                bahnuhrB Online
                bahnuhrB Online
                bahnuhr
                Forum Testing Most Active
                schrieb am zuletzt editiert von
                #25

                @zimbl sagte in Status negiert übertragen:

                on(idSrc, function(dp) { // Triggern bei Änderung setState(idDst, !dp.state.val); });

                Ich habs nicht richtig verstanden was du willst.
                Aber baue doch einfach if Abfragen rein.

                z.B. so:

                var idSrc = "tuya.0.658013063c6105ee34fe.36";
                var idDst = "rpi2.0.gpio.11.state";
                  
                on(idSrc, function(dp) {  // Triggern bei Änderung
                   if (dp.state.val == 0) {
                      setState(idDst, false);
                   } else {
                      setState(idDst, true);
                   }
                });
                

                Wie gesagt, habe deine Bedingungen nicht ganz verstanden.
                Aber vielleicht ist dies ja ne Grundlage für dich.


                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
                • Z Zimbl

                  @paul53

                  irgendwie komme ich nun hier bei den ganzen etwas durcheinander.
                  Aber ich habe etwas ähnlich, es ist auch mit mehr oder minder unterschiedlichen Typen. Bei dem der Ausgang auch negiert werden muss.

                  Aber da aber irgendwie den Faden verloren.

                  Ich habe eine Variable die den Name hat vom Typ Number "close 1 or. open 0"

                  Diese muss ich auf einen GPIO schalten....nur in umgekehrter Reihenfolge....

                  Das heisst wenn TRUE ist, soll nicht geschaltet werden und wenn FALSE soll geschaltet werden...

                  Typ Number Open 0 = Typ Bool FALSE
                  Typ Number Close 1 = Typ Bool TRUE

                  Wenn ich das mit diesem mache, funktioniert das ja nicht, aber was muss ich ändern ?

                  var idSrc = "tuya.0.658013063c6105ee34fe.36";
                  
                  var idDst = "rpi2.0.gpio.11.state";
                  
                   
                  
                  on(idSrc, function(dp) {  // Triggern bei Änderung
                  
                     setState(idDst, !dp.state.val);
                  
                  });
                  
                  
                  // Script start
                  
                  setState(idDst, !getState(idSrc).val);
                  

                  MOD-EDIT: Code in code-tags gesetzt!

                  paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von paul53
                  #26

                  @zimbl sagte:

                  Typ Number Open 0 = Typ Bool FALSE
                  Typ Number Close 1 = Typ Bool TRUE

                  setState(idDst, !!dp.state.val);
                  

                  @zimbl sagte in Status negiert übertragen:

                  nur in umgekehrter Reihenfolge....

                  Oder ist Quelle vom Typ "boolean" und Ziel vom Typ "number"? Dann

                  setState(idDst, dp.state.val ? 1 : 0);
                  

                  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

                  Z 1 Antwort Letzte Antwort
                  0
                  • Z Offline
                    Z Offline
                    Zimbl
                    schrieb am zuletzt editiert von
                    #27

                    @bahnuhr

                    das ist schon sehr gut.
                    Es scheint auch zu funktionieren, ich sehe das an anderer Stelle, das er einen Wertänderung mitbekommen hat. Aber wenn ich im RPI2 unter GPIO schaue, wird der Wert nicht geändert.
                    Obwohl er dazu einen Befehl bekommt.

                    Woran könnte das noch liegen ?

                    1 Antwort Letzte Antwort
                    0
                    • paul53P paul53

                      @zimbl sagte:

                      Typ Number Open 0 = Typ Bool FALSE
                      Typ Number Close 1 = Typ Bool TRUE

                      setState(idDst, !!dp.state.val);
                      

                      @zimbl sagte in Status negiert übertragen:

                      nur in umgekehrter Reihenfolge....

                      Oder ist Quelle vom Typ "boolean" und Ziel vom Typ "number"? Dann

                      setState(idDst, dp.state.val ? 1 : 0);
                      
                      Z Offline
                      Z Offline
                      Zimbl
                      schrieb am zuletzt editiert von
                      #28

                      @paul53

                      genau rumgedreht.
                      Das andere ist vom Typ Number und das Ziel ist ein GPIO...also vom Typ Bool.

                      1 Antwort Letzte Antwort
                      0
                      • T TOBO

                        Das habe ich verstanden und schon mit Tante Google rausgefunden.

                        Ich habe noch eine prinzipielle Verständnisfrage zur Abarbeitung von Scripts. Ich erstelle ein Script, speichere es und drücke auf Ablauf. Ich denke mal, dann wird das Script einmal abgearbeitet. Wie gehts dann weiter? Wird es Zyklusweise wieder aufgerufen? Dieses zum Beispiel besteht aus dem oberen Teil mit einer bedingten Aufgabe. Bei Änderung des Wertes mache was. Der untere Teil ist aber meiner Ansicht nach unbedingt und sagt, mache was ohne Bedingung. setState(idDst, !getState(idSrc).val);

                        Wird dieser Teil nun zyklisch abgearbeitet?

                        Und was bedeutet das dp in Klammern nach function?

                        Sorry, noch eine Frage zur Zykluszeit, bzw. Pollzeit. Ich habe an IOBroker eine Homematic und eine SPS. Wenn ich nun auf ein Signal reagieren möchte. Zum Beispiel eine Lichtschranke, die an einem SPS Eingang angeschlossen ist. Wie lange muss das Signal anstehen, dass es überhaupt bemerkt wird?

                        CodierknechtC Online
                        CodierknechtC Online
                        Codierknecht
                        Developer Most Active
                        schrieb am zuletzt editiert von
                        #29

                        @tobo sagte in Status negiert übertragen:

                        Ich habe noch eine prinzipielle Verständnisfrage zur Abarbeitung von Scripts. Ich erstelle ein Script, speichere es und drücke auf Ablauf. Ich denke mal, dann wird das Script einmal abgearbeitet. Wie gehts dann weiter?

                        Nur für den Fall, dass die Funktionsweise noch nicht so klar wurde:

                        ioBroker arbeitet Scripte prinzipiell nicht zyklisch ab, wie man das bei prozeduraler Programmierung gewohnt ist.
                        Mit dem on() wird ein Trigger deklariert. In dem Sinne, dass hier eine Ereignisbehandlung registriert wird. Der Trigger "abonniert" also quasi Nachrichten, die bei Änderungen an einem Objekt gesendet werden.

                        Hier mal @paul53 's Vorschlag etwas kommentiert:

                        // In den Variablen werden die Namen der Datenpunkte gehalten
                        // Könnte man durchaus auch als const deklarieren
                        // Diese beiden Zeilen werden 1x beim Start des Scripts ausgeführt
                        var idSrc = "hm-rpc.0.OEQ0119091.1.STATE";
                        var idDst = "s7.0.Outputs.0.Status_Haustür";
                         
                        // hier wird ein Trigger "registriert"
                        // er reagiert auf Änderungen am DP "idScr" und ruft dann die hier hinterlegte ANONYME Funktion auf
                        // Diese Funktion setzt den DP "idDest" auf den gewünschten Wert (Wert des triggernden "dp" negiert)
                        on(idSrc, function(dp) {  // Triggern bei Änderung
                           setState(idDst, !dp.state.val);
                        });
                         
                        // auch die folgende Zeile wird nur einmal beim Start des Scripts ausgeführt und setzt den Zieldatenpunkt initial auf einen definierten Wert (NICHT idSrc)
                        setState(idDst, !getState(idSrc).val);
                        

                        Man muss sich grundsätzlich davon verabschieden, dass Programme (Scripte) Zeile für Zeile abgearbeitet werden.
                        Was sich nicht innerhalb eines Triggers oder Zeitplans befindet, wird nur 1x beim Start des Script ausgeführt.
                        Alles andere reagiert entweder auf Ereignisse (Trigger) oder wird zyklisch bzw. zu bestimmten Zeiten (Zeitplan) ausgeführt.
                        Das heißt dann aber auch: Ein Script wird gespeichert und dann auch gestartet, Es wird in der Regel nicht gestoppt! Sonst könnte die Ereignisbehandlung ja nicht mehr reagieren.

                        Insbesondere wenn man von SPS kommt, sollte man sich von zyklischen Dingen verabschieden.
                        In ioBroker prüft man nicht zyklisch bestimmte Zustände.
                        Man registriert Trigger, die genau dann feuern wenn sich ein Zustand ändert.
                        Wozu sollte man auch z.B. alle 10 Sekunden einen Zustand überwachen, der sich möglicherweise nur alle paar Tage ändert?

                        Signale müssen dazu auch nicht eine bestimmte Zeit lang anliegen. Ändert sich ein Wert, wird das erkannt und der Trigger feuert. Dazu reichen Mikrosekunden.
                        Wenn ein Signal eine bestimmte Zeit lang anliegen muss, bevor eine Reaktion erfolgen soll, muss man da gesondert reagieren. Das kommt dann später.

                        Auch von mir der Tipp: Fang erstmal mit Blockly an und schau Dir dann an, was da an JS-Code generiert wird.

                        "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                        Proxmox 9.0.17 LXC|8 GB|Core i7-6700
                        HmIP|ZigBee|Tasmota|Unifi
                        Zabbix Cerrtified Specialist
                        Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                        Z 1 Antwort Letzte Antwort
                        1
                        • CodierknechtC Codierknecht

                          @tobo sagte in Status negiert übertragen:

                          Ich habe noch eine prinzipielle Verständnisfrage zur Abarbeitung von Scripts. Ich erstelle ein Script, speichere es und drücke auf Ablauf. Ich denke mal, dann wird das Script einmal abgearbeitet. Wie gehts dann weiter?

                          Nur für den Fall, dass die Funktionsweise noch nicht so klar wurde:

                          ioBroker arbeitet Scripte prinzipiell nicht zyklisch ab, wie man das bei prozeduraler Programmierung gewohnt ist.
                          Mit dem on() wird ein Trigger deklariert. In dem Sinne, dass hier eine Ereignisbehandlung registriert wird. Der Trigger "abonniert" also quasi Nachrichten, die bei Änderungen an einem Objekt gesendet werden.

                          Hier mal @paul53 's Vorschlag etwas kommentiert:

                          // In den Variablen werden die Namen der Datenpunkte gehalten
                          // Könnte man durchaus auch als const deklarieren
                          // Diese beiden Zeilen werden 1x beim Start des Scripts ausgeführt
                          var idSrc = "hm-rpc.0.OEQ0119091.1.STATE";
                          var idDst = "s7.0.Outputs.0.Status_Haustür";
                           
                          // hier wird ein Trigger "registriert"
                          // er reagiert auf Änderungen am DP "idScr" und ruft dann die hier hinterlegte ANONYME Funktion auf
                          // Diese Funktion setzt den DP "idDest" auf den gewünschten Wert (Wert des triggernden "dp" negiert)
                          on(idSrc, function(dp) {  // Triggern bei Änderung
                             setState(idDst, !dp.state.val);
                          });
                           
                          // auch die folgende Zeile wird nur einmal beim Start des Scripts ausgeführt und setzt den Zieldatenpunkt initial auf einen definierten Wert (NICHT idSrc)
                          setState(idDst, !getState(idSrc).val);
                          

                          Man muss sich grundsätzlich davon verabschieden, dass Programme (Scripte) Zeile für Zeile abgearbeitet werden.
                          Was sich nicht innerhalb eines Triggers oder Zeitplans befindet, wird nur 1x beim Start des Script ausgeführt.
                          Alles andere reagiert entweder auf Ereignisse (Trigger) oder wird zyklisch bzw. zu bestimmten Zeiten (Zeitplan) ausgeführt.
                          Das heißt dann aber auch: Ein Script wird gespeichert und dann auch gestartet, Es wird in der Regel nicht gestoppt! Sonst könnte die Ereignisbehandlung ja nicht mehr reagieren.

                          Insbesondere wenn man von SPS kommt, sollte man sich von zyklischen Dingen verabschieden.
                          In ioBroker prüft man nicht zyklisch bestimmte Zustände.
                          Man registriert Trigger, die genau dann feuern wenn sich ein Zustand ändert.
                          Wozu sollte man auch z.B. alle 10 Sekunden einen Zustand überwachen, der sich möglicherweise nur alle paar Tage ändert?

                          Signale müssen dazu auch nicht eine bestimmte Zeit lang anliegen. Ändert sich ein Wert, wird das erkannt und der Trigger feuert. Dazu reichen Mikrosekunden.
                          Wenn ein Signal eine bestimmte Zeit lang anliegen muss, bevor eine Reaktion erfolgen soll, muss man da gesondert reagieren. Das kommt dann später.

                          Auch von mir der Tipp: Fang erstmal mit Blockly an und schau Dir dann an, was da an JS-Code generiert wird.

                          Z Offline
                          Z Offline
                          Zimbl
                          schrieb am zuletzt editiert von
                          #30

                          @codierknecht

                          Ja du hast da völlig recht, im Blockly sollte man erstmal beginnen.

                          Hast du auch alles wirklich gut erklärt....vielen Dank für deine Mühe.

                          Ich habe ja nun das Skript angenommen, es funktioniert ja auch.

                          Könnte es jetzt wirklich sein, das dass Signal zu kurz nur ansteht ?
                          Weil ich sehe ja in einem anderem Skript das die Funktion ausgeführt wird, da die Änderung dort registriert wird. Aber wenn ich in den Objekten schaue, ist der Wechsel von FALSE zu TRUE oder rumgedreht nicht ausgeführt.

                          Muss der Befehl dann länger anstehen ? wie kann man das machen ? oder hast du für mich generell eine vereinfachte Blockly ausführung, wo ich vielleicht dann noch ein paar Dinge hinzufügen kann...zu einem späteren Zeitpunkt...

                          CodierknechtC HomoranH 2 Antworten Letzte Antwort
                          0
                          • Z Zimbl

                            @codierknecht

                            Ja du hast da völlig recht, im Blockly sollte man erstmal beginnen.

                            Hast du auch alles wirklich gut erklärt....vielen Dank für deine Mühe.

                            Ich habe ja nun das Skript angenommen, es funktioniert ja auch.

                            Könnte es jetzt wirklich sein, das dass Signal zu kurz nur ansteht ?
                            Weil ich sehe ja in einem anderem Skript das die Funktion ausgeführt wird, da die Änderung dort registriert wird. Aber wenn ich in den Objekten schaue, ist der Wechsel von FALSE zu TRUE oder rumgedreht nicht ausgeführt.

                            Muss der Befehl dann länger anstehen ? wie kann man das machen ? oder hast du für mich generell eine vereinfachte Blockly ausführung, wo ich vielleicht dann noch ein paar Dinge hinzufügen kann...zu einem späteren Zeitpunkt...

                            CodierknechtC Online
                            CodierknechtC Online
                            Codierknecht
                            Developer Most Active
                            schrieb am zuletzt editiert von
                            #31

                            @zimbl
                            Das wäre so ziemlich das einfachste Blockly für diesen Zweck.
                            7f237d90-7624-4194-b1d3-b8ca4d2ddf70-image.png
                            Die passenden Objekte musst Du allerdings noch selbst auswählen.

                            <xml xmlns="https://developers.google.com/blockly/xml">
                             <block type="on" id="9U[w!yJt78v$!lb!TS!/" x="-212" y="-388">
                               <field name="OID">Object ID</field>
                               <field name="CONDITION">ne</field>
                               <field name="ACK_CONDITION"></field>
                               <statement name="STATEMENT">
                                 <block type="debug" id="v?A*66$aiHG;Z4N59J;$">
                                   <field name="Severity">log</field>
                                   <value name="TEXT">
                                     <shadow type="text" id="wZRVQ6SNaRdcOWw}t)OC">
                                       <field name="TEXT">test</field>
                                     </shadow>
                                     <block type="on_source" id="b6P{{7~HJfK/|AaKEg-L">
                                       <field name="ATTR">state.val</field>
                                     </block>
                                   </value>
                                   <next>
                                     <block type="control" id="OK0XhMdTXH04zJwz(~,o">
                                       <mutation xmlns="http://www.w3.org/1999/xhtml" delay_input="false"></mutation>
                                       <field name="OID">Object ID</field>
                                       <field name="WITH_DELAY">FALSE</field>
                                       <value name="VALUE">
                                         <block type="logic_negate" id="^;vQx/ZTOH6`r$LPLf$G">
                                           <value name="BOOL">
                                             <block type="on_source" id="Usf86VZt5:lU1dZJUba(">
                                               <field name="ATTR">state.val</field>
                                             </block>
                                           </value>
                                         </block>
                                       </value>
                                     </block>
                                   </next>
                                 </block>
                               </statement>
                             </block>
                            </xml>
                            

                            "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                            Proxmox 9.0.17 LXC|8 GB|Core i7-6700
                            HmIP|ZigBee|Tasmota|Unifi
                            Zabbix Cerrtified Specialist
                            Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                            1 Antwort Letzte Antwort
                            0
                            • Z Zimbl

                              @codierknecht

                              Ja du hast da völlig recht, im Blockly sollte man erstmal beginnen.

                              Hast du auch alles wirklich gut erklärt....vielen Dank für deine Mühe.

                              Ich habe ja nun das Skript angenommen, es funktioniert ja auch.

                              Könnte es jetzt wirklich sein, das dass Signal zu kurz nur ansteht ?
                              Weil ich sehe ja in einem anderem Skript das die Funktion ausgeführt wird, da die Änderung dort registriert wird. Aber wenn ich in den Objekten schaue, ist der Wechsel von FALSE zu TRUE oder rumgedreht nicht ausgeführt.

                              Muss der Befehl dann länger anstehen ? wie kann man das machen ? oder hast du für mich generell eine vereinfachte Blockly ausführung, wo ich vielleicht dann noch ein paar Dinge hinzufügen kann...zu einem späteren Zeitpunkt...

                              HomoranH Nicht stören
                              HomoranH Nicht stören
                              Homoran
                              Global Moderator Administrators
                              schrieb am zuletzt editiert von
                              #32

                              @zimbl sagte in Status negiert übertragen:

                              Muss der Befehl dann länger anstehen ?

                              was meinst du damit?
                              Sobald die Änderung des DP in ioBroker ankommt, würde ein darauf triggerndes Skript auch arbeiten.

                              @zimbl sagte in Status negiert übertragen:

                              Ich habe ja nun das Skript angenommen, es funktioniert ja auch.

                              welches Skript?

                              und wo ist das Problem wenn es funktioniert?

                              kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                              Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                              der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                              1 Antwort Letzte Antwort
                              0
                              • Z Offline
                                Z Offline
                                Zimbl
                                schrieb am zuletzt editiert von
                                #33

                                @homoran

                                mein Problem ist derzeit egal welche Änderung ansteht.
                                Beim GPIO..state...switch findet keine Änderung statt....

                                Der steht immer auf dem gleichen Wert....ich kann ihn
                                von Hand aus umschalten...sowohl über APP als auch direkt
                                unter Objekte...aber das Skript scheint nichts zu bewirken...

                                HomoranH 1 Antwort Letzte Antwort
                                0
                                • Z Zimbl

                                  @homoran

                                  mein Problem ist derzeit egal welche Änderung ansteht.
                                  Beim GPIO..state...switch findet keine Änderung statt....

                                  Der steht immer auf dem gleichen Wert....ich kann ihn
                                  von Hand aus umschalten...sowohl über APP als auch direkt
                                  unter Objekte...aber das Skript scheint nichts zu bewirken...

                                  HomoranH Nicht stören
                                  HomoranH Nicht stören
                                  Homoran
                                  Global Moderator Administrators
                                  schrieb am zuletzt editiert von
                                  #34

                                  @zimbl sagte in Status negiert übertragen:

                                  Beim GPIO..state...switch findet keine Änderung statt....

                                  heisst genau was?
                                  https://forum.iobroker.net/topic/51555/hinweise-für-gute-forenbeiträge/1

                                  @zimbl sagte in Status negiert übertragen:

                                  das Skript scheint nichts zu bewirken...

                                  nochmal:

                                  @homoran sagte in Status negiert übertragen:

                                  welches Skript?

                                  @zimbl sagte in Status negiert übertragen:

                                  ich kann ihn
                                  von Hand aus umschalten...direkt unter Objekte.

                                  wie genau?

                                  alles zeigen!
                                  so istcdas ein großes Rätselraten.

                                  kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

                                  Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

                                  der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

                                  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

                                  764

                                  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