Skip to content
  • Home
  • 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

Community Forum

donate donate
  1. ioBroker Community Home
  2. Deutsch
  3. Skripten / Logik
  4. Timeout Zeit über VIS an variable übegeben

NEWS

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    23
    1
    1.3k

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    14
    1
    2.5k

Timeout Zeit über VIS an variable übegeben

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
5 Beiträge 4 Kommentatoren 1.5k Aufrufe 1 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.
  • E Offline
    E Offline
    ErazorVIP
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich versuche ein Wert x via VIS an eine Variable zu übergeben um somit die Zeit eine timouts zu ändern:

    ~~![](</s><URL url=)http://up.picr.de/31751474ml.png" />

    Leider funktioniert das ganze irgendwie nicht. Der Wert wird nicht übernommen. Hat jemand eine Idee?

    :geek:

     <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="Be)ry,e1ZV:S@Nh_+54w" x="-113" y="-462"><mutation items="1"></mutation>
        <field name="CONDITION">ne</field>
    
        <value name="OID0"><shadow type="field_oid" id=")b}K..it,nrY)e@N}g*K"><field name="oid">javascript.0.Tageszeit.Sonnenuntergang_Start</field></shadow></value> 
        <statement name="STATEMENT"><block type="timeouts_cleartimeout" id="MR(hie#A)WM2k3N#Olp:"><field name="NAME">timeout</field>
            <next><block type="debug" id="gXnGhPFKt,dVzC0H7_Vd"><field name="Severity">log</field>
                <value name="TEXT"><shadow type="text" id="?)L2hh0bPu)v]=(DtBFI"><field name="TEXT">test</field></shadow></value> 
                <next><block type="variables_set" id="]U%ngZDiTwX]V:uiaS(H"><field name="VAR">timeout</field>
                    <value name="VALUE"><block type="get_value" id="@lq,Yw0TIWL-4MfJ~a!g"><field name="ATTR">val</field>
                        <field name="OID">javascript.0.Visuobjekte.Auto_Licht_Flur_unten</field></block></value> 
                    <next><block type="timeouts_settimeout" id="7^Jq0oM0:G=cL9a_e)h6"><field name="NAME">timeout</field>
                        <field name="DELAY">timeout</field>
                        <field name="UNIT">min</field>
                        <statement name="STATEMENT"><block type="debug" id="p~I2-oG)(xCePp+M3%uc"><field name="Severity">warn</field>
                            <value name="TEXT"><shadow type="text" id="}=4;SQ}]mViUhQtlrRj#"><field name="TEXT">Timeout</field></shadow></value></block></statement></block></next></block></next></block></next></block></statement></block></xml> 
    
    ````~~
    padrinoP 1 Antwort Letzte Antwort
    0
    • paul53P Offline
      paul53P Offline
      paul53
      schrieb am zuletzt editiert von
      #2

      Blockly erlaubt offenbar nur konstante Werte für die Verzögerungszeit. Bleibt Javascript.

      const idDelay = '...';  // Datenpunkt mit Verzögerungszeit in Minuten
      const idEreignis = '...';  // Datenpunkt mit Ereignis, das die verzögerte Reaktion auslöst
      
      var timer = null;
      var delay = getState(idDelay).val;
      
      on(idDelay, function(dp) {  // Änderung der Verzögerungszeit
         if(timer) { 
            clearTimeout(timer);
            timer = null;
         }    
         delay = dp.state.val;
      });
      
      function meineFunktion() {
         // Mache was (verzögert)
         timer = null;
      }
      
      on(idEreignis, function() {
         if(timer) {
            clearTimeout(timer);
            timer = null;
         }   
         timer = setTimeout(meineFunktion, 60000 * delay);  // delay Minuten verzögert
      });
      
      

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

      1 Antwort Letzte Antwort
      0
      • M Offline
        M Offline
        Moing
        schrieb am zuletzt editiert von
        #3

        Da Skript klappt bei mir super und der Timer macht seinen Job.

        Ich starte damit einen Prozess den ich nach x Minuten beende und mittels einer Lampe signalisiere das der Job beendet wurde.

        Nur möchte ich zusätzlich noch eine Funktionalität 'Abbruch' einbauen.

        Sobald der Abbruch aktiviert wird, soll der Timer stoppen und die Funktionalität sofort ausführen.

        Sodas mein Prozess sofort beendet wird.

        Aber es darf nicht alles was in "function meineFunktion" steht ausgeführt werden.

        Denn die Lampe, die normalerweise, dass Ende signalisiert, soll bei einen Abbruch nicht leuchten.

        Ist dafür eine einfach Implementierung möglich?

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

          @Moing:

          Aber es darf nicht alles was in "function meineFunktion" steht ausgeführt werden. `
          Dann müssen die Aktivitäten in 2 Funktionen aufgeteilt werden: Im Timeout-Callback werden beide Funktionen aufgerufen, bei Abbruch wird der Timer gestoppt und nur eine Funktion aufgerufen.

             timer = setTimeout(function() {
                Funktion1();
                Funktion2();
             }, 60000 * delay);  // delay Minuten verzögert
          
          

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

          1 Antwort Letzte Antwort
          0
          • E ErazorVIP

            Hallo,

            ich versuche ein Wert x via VIS an eine Variable zu übergeben um somit die Zeit eine timouts zu ändern:

            ~~![](</s><URL url=)http://up.picr.de/31751474ml.png" />

            Leider funktioniert das ganze irgendwie nicht. Der Wert wird nicht übernommen. Hat jemand eine Idee?

            :geek:

             <xml xmlns="http://www.w3.org/1999/xhtml"><block type="on_ext" id="Be)ry,e1ZV:S@Nh_+54w" x="-113" y="-462"><mutation items="1"></mutation>
                <field name="CONDITION">ne</field>
            
                <value name="OID0"><shadow type="field_oid" id=")b}K..it,nrY)e@N}g*K"><field name="oid">javascript.0.Tageszeit.Sonnenuntergang_Start</field></shadow></value> 
                <statement name="STATEMENT"><block type="timeouts_cleartimeout" id="MR(hie#A)WM2k3N#Olp:"><field name="NAME">timeout</field>
                    <next><block type="debug" id="gXnGhPFKt,dVzC0H7_Vd"><field name="Severity">log</field>
                        <value name="TEXT"><shadow type="text" id="?)L2hh0bPu)v]=(DtBFI"><field name="TEXT">test</field></shadow></value> 
                        <next><block type="variables_set" id="]U%ngZDiTwX]V:uiaS(H"><field name="VAR">timeout</field>
                            <value name="VALUE"><block type="get_value" id="@lq,Yw0TIWL-4MfJ~a!g"><field name="ATTR">val</field>
                                <field name="OID">javascript.0.Visuobjekte.Auto_Licht_Flur_unten</field></block></value> 
                            <next><block type="timeouts_settimeout" id="7^Jq0oM0:G=cL9a_e)h6"><field name="NAME">timeout</field>
                                <field name="DELAY">timeout</field>
                                <field name="UNIT">min</field>
                                <statement name="STATEMENT"><block type="debug" id="p~I2-oG)(xCePp+M3%uc"><field name="Severity">warn</field>
                                    <value name="TEXT"><shadow type="text" id="}=4;SQ}]mViUhQtlrRj#"><field name="TEXT">Timeout</field></shadow></value></block></statement></block></next></block></next></block></next></block></statement></block></xml> 
            
            ````~~
            padrinoP Offline
            padrinoP Offline
            padrino
            Most Active
            schrieb am zuletzt editiert von
            #5

            @ErazorVIP
            Nur um das Thema komplett abzuschließen... =)

            Das geht mit Variablen in Blockly schon, aber die Einheit der Zeit muss. "ms" sein, mit "sek" und "min" geht es nicht.
            Soweit ich das sehe, liegt es daran, dass die beiden intern durch eine Formel mit "ms" ersetzt werden, was zu Problemen führt. :)

            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

            606

            Online

            32.5k

            Benutzer

            81.7k

            Themen

            1.3m

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

            • Du hast noch kein Konto? Registrieren

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