Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Triggern von Scripten

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Triggern von Scripten

    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      hmanfred last edited by

      Hallo zusammen,

      wenn in einem Script ein Trigger angegeben ist - bedeutet das, dass bei Erfüllung dieses Triggers das Script ausgeführt wird?

      Oder anders gefragt: kann ich die Zustandsänderung eines Objektes direkt als Trigger zum Start eines Scriptes benutzen?

      Hintergrund:

      Ich stelle gerade von CCU1 auf CCU2 um. Die beiden laufen derzeit parallel. Es gibt einige Systemvariablen, die Aktionen auslösen, die in beiden CCU's laufen sollen. Dazu möchte ich - bis die CCU1 ausrangiert wird - einige Systemvariablen von der CCU1 auf die CCU2 "spiegeln".

      Folgenden Script habe ich mir dazu im javascript-adapter geschrieben:

      var value1;
      
      console.log('script SV_Anwesend läuft');
      on({id: "hm-rega.0.41913"/*Anwesend*/, change: "ne"}, function (obj) {
        var value = obj.state.val;
        var oldValue = obj.oldState.val;
        value1 = getState("hm-rega.0.41913").val;
      });
      setState("hm-rega.1.1881"/*Anwesend*/, value1, true);
      

      Das Script ist aktiv.

      Ich dachte, das Script läuft, sobald die SV Anwesend in der CCU1 (hm-rega.0) ihren Status ändert. Das tut es aber nicht.

      Wo mache ich einen (Denk)Fehler?

      1 Reply Last reply Reply Quote 0
      • Jey Cee
        Jey Cee Developer last edited by

        Dein Script läuft schon es macht nur einfach nix. Die Log Meldung taucht nur auf wenn dein Script im Javascript adapter aktiviert wird und dann nicht mehr. Das gleiche gilt für dein setState am ende.

        Das was innerhalb deiner Subscription ist wird ausgeführt.

        Dein Script muss dann so aussehen:

        var value1;
        
        on({id: "hm-rega.0.41913"/*Anwesend*/, change: "ne"}, function (obj) {
          console.log('script SV_Anwesend läuft');
          var value = obj.state.val;
          var oldValue = obj.oldState.val;
          value1 = getState("hm-rega.0.41913").val;
          setState("hm-rega.1.1881"/*Anwesend*/, value1, true);
        });
        
        
        1 Reply Last reply Reply Quote 0
        • H
          hmanfred last edited by

          Danke!

          So langsam werden die Zusammenhänge klar. 😄

          1 Reply Last reply Reply Quote 0
          • paul53
            paul53 last edited by

            Das kann man vereinfachen:

            on("hm-rega.0.41913", function (obj) {  
              setState("hm-rega.1.1881"/*Anwesend*/, obj.state.val, true);
            });
            
            1 Reply Last reply Reply Quote 0
            • P
              pix last edited by

              Hallo zusammen,

              wenn ich die Skripte richtig lese, dann wird die Anwesenheit auf CCU2 auf true gesetzt, wenn sich die Anwesenheit auf CCU1 ändert. Also bei jeder Änderung, auch bei Änderung zu false.

              @hmanfred:

              CCU1 auf die CCU2 "spiegeln". `
              Laut iobroker.javascript-Github readme ist die einfachste Art, zwei States zu synchronisieren doch so (vom ersten zum zweiten State):

              on("hm-rega.0.41913"/*Anwesend*/, "hm-rega.1.1881"/*Anwesend*/);
              ````oder für mehr Übersichtlichkeit:
              

              var ccu1anwesenheit = "hm-rega.0.41913"/Anwesend/,
              ccu2anwesenheit = "hm-rega.1.1881"/Anwesend/;

              on(ccu1anwesenheit, ccu2anwesenheit);

              
              Gruß
              
              Pix
              1 Reply Last reply Reply Quote 0
              • First post
                Last post

              Support us

              ioBroker
              Community Adapters
              Donate

              975
              Online

              31.7k
              Users

              79.7k
              Topics

              1.3m
              Posts

              4
              5
              4115
              Loading More Posts
              • Oldest to Newest
              • Newest to Oldest
              • Most Votes
              Reply
              • Reply as topic
              Log in to reply
              Community
              Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
              The ioBroker Community 2014-2023
              logo