Skip to content
  • Home
  • Recent
  • Tags
  • 0 Unread 0
  • Categories
  • Unreplied
  • Popular
  • GitHub
  • Docu
  • Hilfe
Skins
  • Light
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • Default (No Skin)
  • No Skin
Collapse
ioBroker Logo

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Hilfe beim skripten

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

Hilfe beim skripten

Scheduled Pinned Locked Moved Skripten / Logik
47 Posts 6 Posters 6.7k Views
  • Oldest to Newest
  • Newest to Oldest
  • Most Votes
Reply
  • Reply as topic
Log in to reply
This topic has been deleted. Only users with topic management privileges can see it.
  • F Offline
    F Offline
    freeki
    wrote on last edited by
    #2

    Auch bei meinen Test komme ich nicht wirklich weiter….

    z.B.

    function test ()
    {
        if("system.adapter.javascript.1.TEST1".val == 1)    {setState("system.adapter.javascript.1.TEST2","system.adapter.javascript.1.TEST1")}
        if("system.adapter.javascript.1.TEST1".val == 5)    {setState("system.adapter.javascript.1.TEST2".val,99)}
    }
    
    on("system.adapter.javascript.1.TEST1",test)
    

    funktioniert auch nicht.

    Ob ich .val benutze, oder nicht, spielt keine Rolle. Keine Kombi geht.

    Was funktioniert ist:

    on("system.adapter.javascript.1.TEST1,"system.adapter.javascript.1.TEST2")
    

    Gibt es irgendwo Quelle, mit denen mit sich hier informieren kann?

    Ist das reguläres Java Script?

    Komme mir schon bald vor, wie ein Dummy….. :cry:

    1 Reply Last reply
    0
    • P Offline
      P Offline
      pix
      wrote on last edited by
      #3

      Hallo freeki,@freeki:

      Hallo.

      Ich benötige bitte noch einmal hilfe….

      Ich versuche die Änderung einer Variablen aus JS auf eine Systemvariable auf der CCU zu replizieren.

      Aber irgendwie funktioniert das nicht...

      Die JS Variable ändert sich, wie erwartet. Die CCU Variable allerdings nicht.

      vielleicht kann mir jemand helfen....

      Das ist das Skript:

      on('javascript.0.zählen_Fenster.anzahlFensterauf.state', function(obj) {
          setState('hm-rega.0.6298.state', obj.newState.val);
      });
      

      Besten Dank!!! `

      on('javascript.0.zählen_Fenster.anzahlFensterauf', function(obj) {
          setState('hm-rega.0.6298.state', obj.newState.val);
      });
      ````das .state ist nur der Type der Variable, gehört nicht zum Namen.
      
      Geht auch kürzer:
      

      on('javascript.0.zählen_Fenster.anzahlFensterauf', 'hm-rega.0.6298.state');

      
      Pix

      ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

      1 Reply Last reply
      0
      • P Offline
        P Offline
        pix
        wrote on last edited by
        #4

        @freeki:

        Gibt es irgendwo Quelle, mit denen mit sich hier informieren kann?

        : `
        ja, hier: https://github.com/iobroker/ioBroker.javascript

        @freeki:

        function test ()
        {
            if("system.adapter.javascript.1.TEST1".val == 1)    {setState("system.adapter.javascript.1.TEST2","system.adapter.javascript.1.TEST1")}
            if("system.adapter.javascript.1.TEST1".val == 5)    {setState("system.adapter.javascript.1.TEST2".val,99)}
        }
        
        on("system.adapter.javascript.1.TEST1",test)
        

        funktioniert auch nicht.

        Ob ich .val benutze, oder nicht, spielt keine Rolle. Keine Kombi geht. `

        function test ()
        {
            if ( getState("javascript.1.TEST1").val == 1) setState("javascript.1.TEST2","javascript.1.TEST1"); // nur ein Befehl Ausführbereich der If-Abfrage, das geht ohne die {}-Klammern
            if ( getState("javascript.1.TEST1").val == 5)    { // mehr als einen Befehl dann in die Klammer packen und Semikolon am Zeilenende nicht vergessen
                setState("javascript.1.TEST2", 99);
               log ( 'Test2 hat jetzt den Wert ' + getState("javascript.1.TEST2").val);
            }
        }
        ````So funktioniert der Code. Bin nicht sicher, ob du Variablen in diesem Bereich "system.adapter.javascript.1" nutzen kannst. Die Instanz des Javascripts liegt im "root" der Objekte in Admin. Hast du die Variable mit createState vorher angelegt?
        
        Gruß
        
        Pix

        ioBroker auf Ubuntu in Proxmox (früher Mac mini (bis OS X 10.12.6 Sierra), VIS via iOS; angeschlossen: Homematic CCU2, Homepilot 1, ConBee II, einige Wemos, Sonos, Unifi CK+Protect, Homekit, Homebridge; KEIN blockly! Github-Profil

        1 Reply Last reply
        0
        • F Offline
          F Offline
          freeki
          wrote on last edited by
          #5

          Vielen Dank für dei schnelle Antwort!

          Das hat mir wirklich sehr geholfen!!!

          Das Skript funktioniert so wie von Dir beschreiben leider nicht direkt bei mir.

          Ich musste einige Änderung vornehmen.

          Ich musste "system.adapter." z.B. wieder mit aufnehmen, damit das Skript funktioniert.

          Ich habe diese Vars direkt über das keine PLUS in den Objekten angelegt.

          Kann ich das so machen? Oder sollte ich lieber über createState gehen?

          So läuft es nun:

          function test ()
          {
              if(getState("system.adapter.javascript.1.TEST1").val == 5)    {
                  setState("system.adapter.javascript.1.TEST2",99);
                  log('KEBOOOM');
              } else {
                 setState("system.adapter.javascript.1.TEST2",getState("system.adapter.javascript.1.TEST1").val);
              }
          }
          
          on("system.adapter.javascript.1.TEST1",test);
          
          1 Reply Last reply
          0
          • paul53P Offline
            paul53P Offline
            paul53
            wrote on last edited by
            #6

            @freeki:

            Ich habe diese Vars direkt über das keine PLUS in den Objekten angelegt.

            Kann ich das so machen? Oder sollte ich lieber über createState gehen? `
            Das kannst Du so machen (Ich bevorzuge diese Mathode). Allerding solltest Du keine Objekte unter "system.adapter.javascript.1" anlegen, sondern nur unter der Javascript-Instanz "javascript.1" (erst selektieren und anschließend PLUS).

            Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
            Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

            1 Reply Last reply
            0
            • F Offline
              F Offline
              freeki
              wrote on last edited by
              #7

              Danke für diesen Tipp!

              Mane Frage,

              könnte ich jetzt auch irgendwie eine Gruppe mit verschiedenen stats bilden und dann mit einem "on" auf Änderung einer Variablen überwachen?

              Ich habe bereit ein enum angelegt, aber was nun?

              Geht das überhaupt??

              1 Reply Last reply
              0
              • R Offline
                R Offline
                rascal
                wrote on last edited by
                #8

                Sch…. javascript :(

                kann mir jemand verraten, warum er nicht in die if Bedingung reingeht? weder in die true noch in die false?

                im Log gibt er mir "regenshit allgemein" aus, nicht jedoch die anderen "regenshits" ...

                //log("regen","info");
                
                function regen() 
                { 
                    log("regenshit allgemein", "info");
                    if(getState("hm-rpc.0.JEQ0156528.3.STATE") === true)
                    {
                        log("regenshit ein", "info");
                        setState("hm-rega.0.23708", false);
                        setState("telegram.0.communicate.response", "Es regnet und ich schließe die Rolläden");
                    }
                    if(getState("hm-rpc.0.JEQ0156528.3.STATE") === false)
                    { 
                        log("regenshit aus", "info");
                        setState("hm-rega.0.23708", true);
                        setState("telegram.0.communicate.response", "Es hat aufgehört zu regnen und die Rolläden werden geöffnet");
                    }
                }
                
                //on("hm-rpc.0.JEQ0156528.3.STATE"/*Regensensor zu/leer=trocken.STATE*/, regen);
                regen();
                
                1 Reply Last reply
                0
                • paul53P Offline
                  paul53P Offline
                  paul53
                  wrote on last edited by
                  #9

                  Du vergleichst ein Objekt mit boolean.

                  function regen()
                  {
                      log("regenshit allgemein", "info");
                      if(getState("hm-rpc.0.JEQ0156528.3.STATE").val)
                      {
                          log("regenshit ein", "info");
                          setState("hm-rega.0.23708", false);
                          setState("telegram.0.communicate.response", "Es regnet und ich schließe die Rolläden");
                      }
                      else
                      {
                          log("regenshit aus", "info");
                          setState("hm-rega.0.23708", true);
                          setState("telegram.0.communicate.response", "Es hat aufgehört zu regnen und die Rolläden werden geöffnet");
                      }
                  }
                  
                  

                  Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                  Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                  1 Reply Last reply
                  0
                  • paul53P Offline
                    paul53P Offline
                    paul53
                    wrote on last edited by
                    #10

                    Damit man nicht jedesmal innerhalb der Funktion den Datenpunkt mit getState() holen muss, geht es auch so:

                    function regen(state)
                    {
                        log("regenshit allgemein", "info");
                        if(state.val)
                        {
                            log("regenshit ein", "info");
                            setState("hm-rega.0.23708", false);
                            setState("telegram.0.communicate.response", "Es regnet und ich schließe die Rolläden");
                        }
                        else
                        {
                            log("regenshit aus", "info");
                            setState("hm-rega.0.23708", true);
                            setState("telegram.0.communicate.response", "Es hat aufgehört zu regnen und die Rolläden werden geöffnet");
                        }
                    }
                    
                    on("hm-rpc.0.JEQ0156528.3.STATE"/*Regensensor zu/leer=trocken.STATE*/, function(dp) {
                    regen(dp.state);
                    });
                    regen(getState("hm-rpc.0.JEQ0156528.3.STATE"));  //Scriptstart
                    

                    Bitte verzichtet auf Chat-Nachrichten, denn die Handhabung ist grauenhaft !
                    Produktiv: RPi 2 mit S.USV, HM-MOD-RPI und SLC-USB-Stick mit root fs

                    1 Reply Last reply
                    0
                    • R Offline
                      R Offline
                      rascal
                      wrote on last edited by
                      #11

                      danke für deine Hilfe

                      1 Reply Last reply
                      0
                      • R Offline
                        R Offline
                        rascal
                        wrote on last edited by
                        #12

                        Hey again :)

                        darf ich Euch Profis nochmals (mehrmals vermutlich) anzapfen?

                        Wie gebe ich mit log eine Variable aus?

                        log("db", "info"); geht nicht

                        log(db, "info"); geht nicht

                        soweit ich gesehen habe gibt man Variablen in javascript auch nicht mit $db oder so an.. also wie bitte?

                        1 Reply Last reply
                        0
                        • BluefoxB Offline
                          BluefoxB Offline
                          Bluefox
                          wrote on last edited by
                          #13

                          @rascal:

                          Hey again :)

                          darf ich Euch Profis nochmals (mehrmals vermutlich) anzapfen?

                          Wie gebe ich mit log eine Variable aus?

                          log("db", "info"); geht nicht

                          log(db, "info"); geht nicht

                          soweit ich gesehen habe gibt man Variablen in javascript auch nicht mit $db oder so an.. also wie bitte? `
                          log(db, "info");

                          sollte gehen wie heisst deine Variable?

                          1 Reply Last reply
                          0
                          • R Offline
                            R Offline
                            rascal
                            wrote on last edited by
                            #14

                            meine Var heisst "db_tageszeit"

                            das log gibt mir folgendes aus mit: log(db_tageszeit, "info");

                            javascript.0	2016-02-25 19:26:32	error	javascript.0 script.js.Regenvariable_setzen_und_Meldung: script.js.Regenvariable_setzen_und_Meldung:6 log(db_tageszeit, "info"); ^ ReferenceError: db_tageszeit is not defined at regen
                            
                            1 Reply Last reply
                            0
                            • R Offline
                              R Offline
                              rascal
                              wrote on last edited by
                              #15

                              so sieht der Scriptteil aus:

                              function regen(dp_regensensor) 
                              { 
                                  var dp_tageszeit = getState("hm-rega.0.23707"/*Tageszeit*/);
                                  log(db_tageszeit, "info");
                              
                              
                              1 Reply Last reply
                              0
                              • blauholstenB Offline
                                blauholstenB Offline
                                blauholsten
                                Developer
                                wrote on last edited by
                                #16

                                @rascal:

                                so sieht der Scriptteil aus:

                                function regen(dp_regensensor) 
                                { 
                                    var dp_tageszeit = getState("hm-rega.0.23707"/*Tageszeit*/);
                                    log(db_tageszeit, "info");
                                    
                                ```` `  
                                

                                Hi,

                                du hast .val vergessen.

                                 var dp_tageszeit = getState("hm-rega.0.23707"/*Tageszeit*/).val;
                                

                                Bin aber Rookie und habe keine Ahnung… :cry:
                                1146_easymeter.jpg

                                Entwickler vom: - Viessman Adapter
                                - Alarm Adapter

                                1 Reply Last reply
                                0
                                • R Offline
                                  R Offline
                                  rascal
                                  wrote on last edited by
                                  #17

                                  nope, das war's auch nicht :)

                                  1 Reply Last reply
                                  0
                                  • blauholstenB Offline
                                    blauholstenB Offline
                                    blauholsten
                                    Developer
                                    wrote on last edited by
                                    #18

                                    Schreib mal was anderes in die Variable = "Hallo Welt"

                                    Entwickler vom: - Viessman Adapter
                                    - Alarm Adapter

                                    1 Reply Last reply
                                    0
                                    • R Offline
                                      R Offline
                                      rascal
                                      wrote on last edited by
                                      #19

                                      mh.. "Hello World" wird im log ausgegeben

                                      1 Reply Last reply
                                      0
                                      • R Offline
                                        R Offline
                                        rascal
                                        wrote on last edited by
                                        #20

                                        ok.. ich brings nicht hin, dass die CCU Variable ausgegeben wird :(

                                        was anderes, wie funktioniert das mit dem on({"hm-rpc.0.JEQ0156528.3.STATE", "change": "ne"}, function()); ?

                                        egal ob ich da "ne", "eq" oder was anderes stehen habe.. er führt die Funktion trotzdem aus

                                        1 Reply Last reply
                                        0
                                        • blauholstenB Offline
                                          blauholstenB Offline
                                          blauholsten
                                          Developer
                                          wrote on last edited by
                                          #21

                                          Auf was willst du denn reagieren?

                                          on({"hm-rpc.0.JEQ0156528.3.STATE", "change": "ne"}, function());
                                          

                                          hier könnte id fehlen!

                                          on({id: "hm-rpc.0.JEQ0156528.3.STATE", "change": "ne"}, function());
                                          

                                          Entwickler vom: - Viessman Adapter
                                          - Alarm Adapter

                                          1 Reply Last reply
                                          0
                                          Reply
                                          • Reply as topic
                                          Log in to reply
                                          • Oldest to Newest
                                          • Newest to Oldest
                                          • Most Votes


                                          Support us

                                          ioBroker
                                          Community Adapters
                                          Donate

                                          413

                                          Online

                                          32.7k

                                          Users

                                          82.4k

                                          Topics

                                          1.3m

                                          Posts
                                          Community
                                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen | Einwilligungseinstellungen
                                          ioBroker Community 2014-2025
                                          logo
                                          • Login

                                          • Don't have an account? Register

                                          • Login or register to search.
                                          • First post
                                            Last post
                                          0
                                          • Home
                                          • Recent
                                          • Tags
                                          • Unread 0
                                          • Categories
                                          • Unreplied
                                          • Popular
                                          • GitHub
                                          • Docu
                                          • Hilfe