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. Timerfunktion

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.8k

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

Timerfunktion

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
14 Beiträge 3 Kommentatoren 2.5k 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.
  • SefinaS Offline
    SefinaS Offline
    Sefina
    schrieb am zuletzt editiert von
    #1

    Hi zusammen,

    Ich habe Folgendes Problem :

    Ich habe 2 Eingangsvariablen :

    Nr. 1 Zahl in Minuten

    Nr. 2 Schalter

    Ich möchte wenn der Schalter betätigt wird die Zeit abläuft,

    sollte der Schalter während der Zeit Aus- geschalten werden, soll der Timer gelöscht werden und wenn ich ihn dann wieder

    anschalte die Zeit von neuen beginnen.

    Ist die Zeit auf 0 gestellt wird der Timer nicht gestartet.

    Bis jetzt klappt alles bis auf das reseten des Timers.

    Da ich schon einige zusatz Nodes installiert habe bei den genau das scheitert bin ich mit mein Latein am ende.

    Warum keiner einfach ein Node erstellt was mit Topics geregelt wird erschliesst sich mir nicht.

    Hier mein Funktionsnode :

    var delay = context.delay || 0;
    var timer;
    
    if (msg.topic === "reset") 
    {
        if (timer) 
        {
            clearTimeout(timer);
            return msg;
        }
    }
    if (msg.topic === "delay") 
    {
        delay = msg.payload * 1000;
        context.delay = delay;
    }
    if (msg.topic === "test")
    {
        if (delay > 0)
        {
            timer = setTimeout(function() 
            {
                node.send(msg);
            }, delay);
        return null;
        }
    }
    

    Also er muss schon zu "clearTimeout(timer);" kommen da danach die msg mir Mitgeteilt wird.

    Kann mir wer helfen ?

    Wie gesagt schon etliche Timer probiert : BigTimer, mytimeout, stoptimer usw.

    MfG

    1 Antwort Letzte Antwort
    0
    • liv-in-skyL Offline
      liv-in-skyL Offline
      liv-in-sky
      schrieb am zuletzt editiert von
      #2

      weiss nicht ob es hilft - dieser flow beinhaltet eine function. als eingabe dient zwar das dashboard - aber das läßt sich sicher ändern

      [{"id":"ce5534a3.3f8b98","type":"function","z":"be10358d.5f3058","name":"","func":"\nvar value  = context.get('value') || 60000;\n\nif (msg.topic == \"value\")\n{\n  value = msg.payload * 60000;\n  context.set('value',value);  \n}\n\nelse if (msg.topic == \"start\")\n{\n\nvar timer = setTimeout(function(){msg.payload = \"now\";node.send([msg,{ payload: \"Ende\" }]);var countdownstop  = context.get('countdown');clearInterval(countdownstop)},value);\ncontext.set('timer',timer); \n\nvar count = value/60000;\n//count = count -1 ;\nmsg.payload=count;\nnode.send([null,msg]);\nvar countdown = setInterval(function() {count=count-1;msg.payload=count; node.send([null,msg]) }, 60000);\ncontext.set('countdown',countdown);\n\n}\n\nelse if (msg.topic == \"stop\")\n{\nvar timerstop  = context.get('timer')\nclearTimeout(timerstop);\n\nvar countdownstop  = context.get('countdown')\nclearInterval(countdownstop);\n\n}\n\n\n","outputs":"2","noerr":0,"x":410,"y":220,"wires":[["a70f86ce.c18f58"],["fa7c7eb.15f9d8"]]},{"id":"a70f86ce.c18f58","type":"debug","z":"be10358d.5f3058","name":"","active":true,"console":"false","complete":"payload","x":590,"y":180,"wires":[]},{"id":"6c4f84d8.656ebc","type":"ui_button","z":"be10358d.5f3058","name":"","group":"637d8cb3.d53d74","order":0,"width":0,"height":0,"label":"Start","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"start","x":190,"y":200,"wires":[["ce5534a3.3f8b98"]]},{"id":"1f4a748.bcd498c","type":"ui_numeric","z":"be10358d.5f3058","name":"","label":"Minuten","group":"637d8cb3.d53d74","order":0,"width":0,"height":0,"passthru":true,"topic":"value","format":"{{value}}","min":"1","max":"300","step":1,"x":180,"y":280,"wires":[["ce5534a3.3f8b98"]]},{"id":"8dba67c8.f2a418","type":"ui_button","z":"be10358d.5f3058","name":"","group":"637d8cb3.d53d74","order":0,"width":0,"height":0,"label":"Stop","color":"","bgcolor":"","icon":"","payload":"","payloadType":"str","topic":"stop","x":190,"y":240,"wires":[["ce5534a3.3f8b98"]]},{"id":"fa7c7eb.15f9d8","type":"ui_text","z":"be10358d.5f3058","group":"637d8cb3.d53d74","order":0,"width":0,"height":0,"name":"","label":"Restzeit","format":"{{msg.payload}} Minuten","layout":"row-spread","x":600,"y":240,"wires":[]},{"id":"637d8cb3.d53d74","type":"ui_group","z":"","name":"Default","tab":"7fe8c0a9.8eebd","disp":true,"width":"6"},{"id":"7fe8c0a9.8eebd","type":"ui_tab","z":"","name":"tests","icon":"dashboard"}]
      

      das ist von https://groups.google.com/forum/#!topic … fa8qSIE82I

      vielleicht kannst du davon etwas gebrauchen

      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

      1 Antwort Letzte Antwort
      0
      • liv-in-skyL Offline
        liv-in-skyL Offline
        liv-in-sky
        schrieb am zuletzt editiert von
        #3

        ich hab es so umgesetzt
        4447_timernodered.png

        nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

        1 Antwort Letzte Antwort
        0
        • liv-in-skyL Offline
          liv-in-skyL Offline
          liv-in-sky
          schrieb am zuletzt editiert von
          #4

          hab es noch etwas angepasst - jetzt werden die start- und stop-objects auch noch zurückgesetzt. das ganze läuft mit sekunden. die beiden switch sorgen dafür, das nur bei true etwas weitergegeben wird.

          code für funktion:

          var value  = context.get('value') || 10000;
          
          if (msg.topic == "value")
          {
            value = msg.payload * 1000;
            context.set('value',value);  
          }
          
          else if (msg.topic == "start")
          {
          
          var timer = setTimeout(function(){msg.payload = "now";
          node.send([msg,{ payload: false }]);
          msg.payload = false;
          node.send([null,null,msg,{ payload: false }]);
          var countdownstop  = context.get('countdown');
          clearInterval(countdownstop)},value);
          context.set('timer',timer); 
          
          var count = value/1000;
          //count = count -1 ;
          msg.payload=count;
          node.send([null,msg]);
          var countdown = setInterval(function() {count=count-1;
          msg.payload=count;
          node.send([null,msg]) }, 1000);
          context.set('countdown',countdown);
          
          }
          
          else if (msg.topic == "stop")
          {
          var timerstop  = context.get('timer')
          clearTimeout(timerstop);
          msg.payload = false;
          node.send([null,null,null,msg,{ payload: false }]);
          node.send([null,null,msg,{ payload: false }]);
          
          var countdownstop  = context.get('countdown')
          clearInterval(countdownstop);
          
          }
          
          

          4447_timernodered.png

          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

          1 Antwort Letzte Antwort
          0
          • G Offline
            G Offline
            Garf
            schrieb am zuletzt editiert von
            #5

            @liv-in-sky:

            hab es noch etwas angepasst - jetzt werden die start- und stop-objects auch noch zurückgesetzt. das ganze läuft mit sekunden. die beiden switch sorgen dafür, das nur bei true etwas weitergegeben wird. `
            In der Zeit wo ich noch versucht habe das Javascript zu verstehen, hast Du es schon verändert und deutlich verbessert. 😮

            Mein Respekt dafür. :mrgreen:

            @liv-in-sky:

            jetzt werden die start- und stop-objects auch noch zurückgesetzt. das ganze läuft mit sekunden. die beiden switch sorgen dafür, das nur bei true etwas weitergegeben wird. `
            Im Dashboard läuft es noch nicht so ganz rund, aber grundsätzlich sind die Funktionen schon gegeben. Ein Javascript in dieser Form habe ich so auch noch nicht gesehen.

            1 Antwort Letzte Antwort
            0
            • SefinaS Offline
              SefinaS Offline
              Sefina
              schrieb am zuletzt editiert von
              #6

              Klasse es läuft,

              Die nächste Frage währe was müsste man ändern das der Payload von Start weitergegeben wird und nicht ein Fixer wert.

              Theoretisch Müsste ich ja den Payload in einer Variable Speichern und dann ausgeben ?

              Kann mir da nochmal wer helfen ?

              Warum benötigt man aber nun noch ein Counter, die Funktion ist ja jetzt wesentlich größer ?

              MfG

              1 Antwort Letzte Antwort
              0
              • liv-in-skyL Offline
                liv-in-skyL Offline
                liv-in-sky
                schrieb am zuletzt editiert von
                #7

                @garf

                habe mich mehr auf vis für die ausgabe konzentriert - mehr benötige ich nicht
                4447_erstes.gif

                nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                1 Antwort Letzte Antwort
                0
                • liv-in-skyL Offline
                  liv-in-skyL Offline
                  liv-in-sky
                  schrieb am zuletzt editiert von
                  #8

                  @selfina

                  vielleicht zu früh am morgen aber kannst du das anders erklären! was meinst du mit fixer wert von start. start ist entweder true oder false - gestartet oder eben nicht.

                  anbei die ansicht von iobroker-objekte - alle infos sind vorhanden (bild2). falls du die start info aber auch noch für etwas anderes in nodered brauchst musst du eine nodered variable anlegen. die functionnode "Start als variable" erstellt eine variable, die im ganzen flow gültig ist

                  var test = msg.payload;
                  if (test == "true") {
                       flow.set('startvar',true);
                       msg.payload = flow.get('startvar')
                  }
                  else {
                      flow.set('startvar',false);
                      msg.payload = flow.get('startvar')
                  }
                  return msg;
                  
                  

                  4447_2tes.gif
                  4447_startvar.png

                  nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                  1 Antwort Letzte Antwort
                  0
                  • SefinaS Offline
                    SefinaS Offline
                    Sefina
                    schrieb am zuletzt editiert von
                    #9

                    Du schreibst ja msg.payload = "now" das kommt als String ja am Ende Raus. Ich benötige aber den String der beim Topic mitgeschickt wird.

                    Da ich true oder false nicht benötige.

                    Also muss ich am Anfang sagen

                    var Test = msg.payload

                    und dann im Timer

                    msg.payload= Test

                    Ist das Richtig ?

                    MfG

                    1 Antwort Letzte Antwort
                    0
                    • liv-in-skyL Offline
                      liv-in-skyL Offline
                      liv-in-sky
                      schrieb am zuletzt editiert von
                      #10

                      wenn du das topic benötigst

                      var test = msg.topic

                      du kannst hinter jede node eine debug (grün)setzen - in der definition dieser debug node kannst du auswählen: complete msg object - darin siehst du dann, was du für möglichkeiten hast.

                      msg = ein object - hat verschiedene "unterpunkte" - mit punkten getrennt.

                      msg.topic, msg.title, msg.payload sind teile davon

                      nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                      1 Antwort Letzte Antwort
                      0
                      • SefinaS Offline
                        SefinaS Offline
                        Sefina
                        schrieb am zuletzt editiert von
                        #11

                        Hi erstmal und vielen dank für deine/eure Hilfe,

                        da ich momentan anfange zu verstehen wie es geht bitte ich dich etwas einfacher mir mein Fehler zu erklären.

                        Zur Info :

                        Deine Funktion habe ich etwas angepasst, Variablen geändert und die Funktion etwas angepasst.

                        3 Eingänge :

                        A = start/"Nachricht"

                        B = stop

                        C= TimerZeit/"Zeit in Sekunden"

                        3 Ausgänge

                        A = sendet die Nachricht ohne Topic nach abgeschlossenen Timer

                        B = zählt die Sekunden herunter und beim stop wird die Nachricht "Abbruch" geschrieben

                        C = gibt am anfang ein true und beim beenden (egal ob Manuel oder Automatisch) ein false

                        An sich funktioniert es schon recht gut, leider bekomme ich viel zu viele Meldungen und ich weiß nicht woher.

                        Ich hoffe du kannst mir da etwas erklären ….

                        Zum Importieren :

                        [{"id":"344d0103.95f4be","type":"function","z":"45099a56.32a174","name":"Timer","func":"var TimerZeit  = context.get('TimerZeit') || 10000;\n\nif (msg.topic == \"TimerZeit\")\n{\n  TimerZeit = msg.payload * 1000;\n  context.set('TimerZeit',TimerZeit);  \n}\n\nif (msg.topic == \"start\")\n{\n    node.send([null,msg,{ payload: true }]);\n    var msgStart = msg.payload\n    var timer = setTimeout(function()\n    {\n        var countdownstop  = context.get('countdown');\n        msg.payload = msgStart;\n        msg.topic = \"\";\n        node.send([null,msg,{ payload: false }]);\n        node.send([msg,{ payload: 0 }]);\n        clearInterval(countdownstop)},TimerZeit);\n        context.set('timer',timer); \n\n        //Abwärtzzähler !!!! (Mitte) ;\n        var count = TimerZeit/1000;\n        msg.payload=count;\n        node.send([null,msg]);\n        var countdown = setInterval(function() \n        {\n            count=count-1;\n            msg.payload=count;\n            node.send([null,msg]) }, 1000);\n            context.set('countdown',countdown);\n}\n\nif (msg.topic == \"stop\")\n{\n    var timerstop  = context.get('timer')\n    clearTimeout(timerstop);\n    node.send([msg,{ payload: \"Abbruch\" }]);\n    node.send([null,msg,{ payload: false }]);\n\n    var countdownstop  = context.get('countdown')\n    clearInterval(countdownstop);\n}\n","outputs":3,"noerr":0,"x":250,"y":280,"wires":[["3dd89880.551ff8"],["af2b75eb.13f0c8"],["d6058e9c.fb98f"]]},{"id":"da490012.aee8e","type":"inject","z":"45099a56.32a174","name":"","topic":"start","payload":"ON","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":240,"wires":[["344d0103.95f4be"]]},{"id":"17ace082.518b3f","type":"inject","z":"45099a56.32a174","name":"","topic":"stop","payload":"","payloadType":"str","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":110,"y":280,"wires":[["344d0103.95f4be"]]},{"id":"9327c7b8.15d208","type":"inject","z":"45099a56.32a174","name":"","topic":"TimerZeit","payload":"2","payloadType":"num","repeat":"","crontab":"","once":false,"onceDelay":0.1,"x":120,"y":320,"wires":[["344d0103.95f4be"]]},{"id":"3dd89880.551ff8","type":"debug","z":"45099a56.32a174","name":"Oben","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":370,"y":240,"wires":[]},{"id":"d6058e9c.fb98f","type":"debug","z":"45099a56.32a174","name":"Unten","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":370,"y":320,"wires":[]},{"id":"af2b75eb.13f0c8","type":"debug","z":"45099a56.32a174","name":"Mitte","active":true,"tosidebar":true,"console":false,"tostatus":false,"complete":"payload","x":370,"y":280,"wires":[]}]
                        

                        Zum lesen :

                        var TimerZeit  = context.get('TimerZeit') || 10000;
                        
                        if (msg.topic == "TimerZeit")
                        {
                          TimerZeit = msg.payload * 1000;
                          context.set('TimerZeit',TimerZeit);  
                        }
                        
                        if (msg.topic == "start")
                        {
                            node.send([null,msg,{ payload: true }]);
                            var msgStart = msg.payload
                            var timer = setTimeout(function()
                            {
                                var countdownstop  = context.get('countdown');
                                msg.payload = msgStart;
                                msg.topic = "";
                                node.send([null,msg,{ payload: false }]);
                                node.send([msg,{ payload: 0 }]);
                                clearInterval(countdownstop)},TimerZeit);
                                context.set('timer',timer); 
                        
                                //Abwärtzzähler !!!! (Mitte) ;
                                var count = TimerZeit/1000;
                                msg.payload=count;
                                node.send([null,msg]);
                                var countdown = setInterval(function() 
                                {
                                    count=count-1;
                                    msg.payload=count;
                                    node.send([null,msg]) }, 1000);
                                    context.set('countdown',countdown);
                        }
                        
                        if (msg.topic == "stop")
                        {
                            var timerstop  = context.get('timer')
                            clearTimeout(timerstop);
                            node.send([msg,{ payload: "Abbruch" }]);
                            node.send([null,msg,{ payload: false }]);
                        
                            var countdownstop  = context.get('countdown')
                            clearInterval(countdownstop);
                        }
                        
                        

                        MfG

                        1 Antwort Letzte Antwort
                        0
                        • liv-in-skyL Offline
                          liv-in-skyL Offline
                          liv-in-sky
                          schrieb am zuletzt editiert von
                          #12

                          soll es so aussehen? (zum importieren)

                          [
                              {
                                  "id": "339cf0c4.15d68",
                                  "type": "function",
                                  "z": "39af8664.6b097a",
                                  "name": "Timer",
                                  "func": "var TimerZeit  = context.get('TimerZeit') || 10000;\n\nif (msg.topic == \"TimerZeit\")\n{\n  TimerZeit = msg.payload * 1000;\n  context.set('TimerZeit',TimerZeit);  \n  msg.payload=TimerZeit / 1000;\n  node.send([null,msg]);\n}\n\nif (msg.topic == \"start\")\n{\n    msg.payload = true;\n    node.send([null,null,msg]);\n    var msgStart = msg.payload\n    var timer = setTimeout(function()\n    {\n        var countdownstop  = context.get('countdown');\n        msg.payload = \"FERTIG\";\n        msg.topic = null;\n        node.send([msg]);\n        //node.send([msg,{ payload: 0 }]);\n        clearInterval(countdownstop)},TimerZeit);\n        context.set('timer',timer); \n\n        //Abwärtzzähler !!!! (Mitte) ;\n        var count = TimerZeit/1000;\n        msg.payload=count;\n        node.send([null,msg]);\n        var countdown = setInterval(function() \n        {\n            count=count-1;\n            msg.payload=count;\n            node.send([null,msg]) }, 1000);\n            context.set('countdown',countdown);\n}\n\nif (msg.topic == \"stop\")\n{\n    var timerstop  = context.get('timer')\n    clearTimeout(timerstop);\n    msg.payload = \"ABBRUCH\";\n    node.send([null,msg]);\n    //node.send([null,null,msg,{ payload: false }]);\n\n    var countdownstop  = context.get('countdown')\n    clearInterval(countdownstop);\n}\n",
                                  "outputs": 3,
                                  "noerr": 0,
                                  "x": 690,
                                  "y": 360,
                                  "wires": [
                                      [
                                          "bf530166.7c0da"
                                      ],
                                      [
                                          "8bb4f1d4.80d58"
                                      ],
                                      [
                                          "cda4bbdb.7efd18"
                                      ]
                                  ]
                              },
                              {
                                  "id": "d760f75f.a6c378",
                                  "type": "inject",
                                  "z": "39af8664.6b097a",
                                  "name": "",
                                  "topic": "start",
                                  "payload": "ON",
                                  "payloadType": "str",
                                  "repeat": "",
                                  "crontab": "",
                                  "once": false,
                                  "onceDelay": 0.1,
                                  "x": 560,
                                  "y": 320,
                                  "wires": [
                                      [
                                          "339cf0c4.15d68"
                                      ]
                                  ]
                              },
                              {
                                  "id": "191100f2.c033cf",
                                  "type": "inject",
                                  "z": "39af8664.6b097a",
                                  "name": "",
                                  "topic": "stop",
                                  "payload": "",
                                  "payloadType": "str",
                                  "repeat": "",
                                  "crontab": "",
                                  "once": false,
                                  "onceDelay": 0.1,
                                  "x": 550,
                                  "y": 360,
                                  "wires": [
                                      [
                                          "339cf0c4.15d68"
                                      ]
                                  ]
                              },
                              {
                                  "id": "8952b490.9967f8",
                                  "type": "inject",
                                  "z": "39af8664.6b097a",
                                  "name": "",
                                  "topic": "TimerZeit",
                                  "payload": "4",
                                  "payloadType": "num",
                                  "repeat": "",
                                  "crontab": "",
                                  "once": false,
                                  "onceDelay": 0.1,
                                  "x": 560,
                                  "y": 400,
                                  "wires": [
                                      [
                                          "339cf0c4.15d68"
                                      ]
                                  ]
                              },
                              {
                                  "id": "bf530166.7c0da",
                                  "type": "debug",
                                  "z": "39af8664.6b097a",
                                  "name": "Oben",
                                  "active": true,
                                  "tosidebar": true,
                                  "console": false,
                                  "tostatus": false,
                                  "complete": "true",
                                  "x": 810,
                                  "y": 320,
                                  "wires": []
                              },
                              {
                                  "id": "cda4bbdb.7efd18",
                                  "type": "debug",
                                  "z": "39af8664.6b097a",
                                  "name": "Unten",
                                  "active": true,
                                  "tosidebar": true,
                                  "console": false,
                                  "tostatus": false,
                                  "complete": "true",
                                  "x": 810,
                                  "y": 400,
                                  "wires": []
                              },
                              {
                                  "id": "8bb4f1d4.80d58",
                                  "type": "debug",
                                  "z": "39af8664.6b097a",
                                  "name": "Mitte",
                                  "active": true,
                                  "tosidebar": true,
                                  "console": false,
                                  "tostatus": false,
                                  "complete": "true",
                                  "x": 810,
                                  "y": 360,
                                  "wires": []
                              }
                          ]
                          

                          was mir auffiel:

                          du hast die function mit 3 ausgängen definiert - du hast aber nur 2 benutzt - der driite wurde nie eingesetzt.

                          habe noch ein paar zeilen auskommentiert - brauchst du nicht.

                          habe timerzeit beim setzen auch ausgegeben.

                          PS: ich bin übrigens kein prograsmmierprofi - ich benutze in iobroker eigentlich nur blockly, da mir die javascripts zu unübersichtlich sind. in node-red spiele ich etwas mit den scripts - da kürzer und übersichtlicher - für mich. bin in node-red java-technisch irgendwie effektiver ? ich kann dir nicht sagen, ob das alles optimal oder resoucen-schonend programmiert ist - vielleicht gibt es bessere wege, so etwas zu machen 🙂

                          nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                          1 Antwort Letzte Antwort
                          0
                          • SefinaS Offline
                            SefinaS Offline
                            Sefina
                            schrieb am zuletzt editiert von
                            #13

                            Und ich nutze als Hauptsystem OpenHab und möchte von den Rules weg.

                            Da ich mit Javascripts und NodeJS kein Plan habe Versuche ich es halt zu lernen.

                            Leider lernt man bei Node Red nen neues Protokoll was halt nicht immer einfach ist.

                            Danke dir schaue es mir nachher mal an.

                            MfG

                            1 Antwort Letzte Antwort
                            0
                            • liv-in-skyL Offline
                              liv-in-skyL Offline
                              liv-in-sky
                              schrieb am zuletzt editiert von
                              #14

                              kenne openhab nicht

                              habe mit iobroker begonnen, weil blockly darin war - damit kann ich erstmal alles wichtige schnell und einfach machen - javascript wir über die "jahre" besser werden - zumindest kann ich scripts kopieren und verstehe etwas.

                              letztlich macht man sich auch nur "regeln" im iobroker (wenn dann) - sind halt in js etwas flexibler und weiter ausbaubar - denke ich

                              nach einem gelösten Thread wäre es sinnvoll dies in der Überschrift des ersten Posts einzutragen [gelöst]-... Bitte benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat. Forum-Tools: PicPick https://picpick.app/en/download/ und ScreenToGif https://www.screentogif.com/downloads.html

                              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

                              661

                              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