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. [gelöst] Frage zu Intervall als Wartezeit

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst] Frage zu Intervall als Wartezeit

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
42 Beiträge 7 Kommentatoren 5.0k 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.
  • D Offline
    D Offline
    daniello
    schrieb am zuletzt editiert von
    #1

    Hallo allerseits,

    wird das im Intervall sofort ein erstes Mal ausgeführt oder erst nach t?

    Ich möchte grad eine Wartezeit einrichten nach dem Motto "ok .. Satus erkannt .. mach aber erst was, wenn es nach 30 Sekunden immer noch so ist.

    Würde eine Variable vorher auf 0 setzen und im Intervall (30s) dann schauen wollen ob 1 ist .. ggf. aber auch 2 wenn das Intervall sofort ein erstes Mal ausgeführt wird.

    Schönen Gruß

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

      Benutze dafür Time-out anstatt Intervall

      Sent from my iPhone using Tapatalk

      1 Antwort Letzte Antwort
      0
      • D Offline
        D Offline
        daniello
        schrieb am zuletzt editiert von
        #3

        Danke .. wollte ich zuerst .. aber Timeout kam mir dann unlogisch vor.

        Ich möchte prüfen ob die Leistung am Stecker kleiner 5W ist und erst wenn der Zustand 30 Sekunden hält etwas tun. Dann ist das Gerät (hoffentlich) wirklich aus. Beim Timeout würde jedes Mal der Zustand Wahr wenn im Zeitfenster was geändert wird.

        Passt doch nicht .. oder?

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

          Nein!

          Wen du innerhalb des timeout einen Wert (zB timeout 30sec, If Wert ist xxx) Dan prüft er nach 30 Sekunden diesen Wert.

          Sent from my iPhone using Tapatalk

          1 Antwort Letzte Antwort
          0
          • D Offline
            D Offline
            daniello
            schrieb am zuletzt editiert von
            #5

            Danke .. hatte nach einer Erklärung gesucht .. und wohl die falsche gefunden .. dann passt mein Skript ja :-) Super!

            1 Antwort Letzte Antwort
            0
            • D Offline
              D Offline
              daniello
              schrieb am zuletzt editiert von
              #6

              Trotzdem vielleicht noch die Antwort auf die Frage ob Intervall nach dem Ablauf der Zeit ein erstes Mal was tut oder sofort?

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

                @Dutchman:

                Dan prüft er nach 30 Sekunden diesen Wert. `
                Das bedeutet nicht, dass zwischenzeitlich der Wert überschritten wurde.
                @daniello:

                erst wenn der Zustand 30 Sekunden hält etwas tun. `
                Bei Wertüberschreitung (else): clearTimeout(timer). Beispiel:

                var timer = null;
                on(idPower, function(dp) {
                   if(dp.state.val < 5) {
                      timer = setTimeout(function() {
                         // etwas tun
                      }, 30000); // 30 s
                   } else if(timer) clearTimeout(timer);
                });
                

                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
                • paul53P Offline
                  paul53P Offline
                  paul53
                  schrieb am zuletzt editiert von
                  #8

                  @daniello:

                  die Frage ob Intervall nach dem Ablauf der Zeit ein erstes Mal was tut oder sofort? `
                  Erst nach Ablauf der Zeit wird das erste Mal etwas ausgeführt.

                  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
                  • D Offline
                    D Offline
                    daniello
                    schrieb am zuletzt editiert von
                    #9

                    prima .. hätte es dann so umgesetzt .. müsste passen …

                    4418_2018-09-29_132626_timout.png

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

                      Ich würde den 2ten falls im timeout Weck lassen und im ersten falls einen Stop timeout einbauen.

                      Ändert sich der wert Dan innerhalb der 30 Sekunden wieder > xx stopst du damit den Timer und nichts wird ausgeführt

                      Sent from my iPhone using Tapatalk

                      1 Antwort Letzte Antwort
                      0
                      • D Offline
                        D Offline
                        daniello
                        schrieb am zuletzt editiert von
                        #11

                        danke .. muss ich mal schauen ob ich das umgesetz bekomme .. dachte das passt so .. wegen der Hysterese.

                        Weiß gar nicht warum ich hier "Professional" bin .. vermutlich die Anzahl meiner Newbiefragen :-)

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

                          493_blockly_wm_verz_gert_aus.jpg
                          Ist der Datenpunkt "waschmaschine" ein virtueller Datenpunkt (z.B. für Vis), dann aktualisiere verwenden; wird der Wert aber versendet (z.B eine SV der HM CCU), dann steuere verwenden.

                          EDIT KORREKTUR: und durch zweites falls ersetzt

                          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
                          • D Offline
                            D Offline
                            daniello
                            schrieb am zuletzt editiert von
                            #13

                            Danke Paul .. das ist ja sehr schlank :-)

                            1 Antwort Letzte Antwort
                            0
                            • D Offline
                              D Offline
                              daniello
                              schrieb am zuletzt editiert von
                              #14

                              wenn das mal so schlicht läuft .. bin gespannt ;-)

                              1 Antwort Letzte Antwort
                              0
                              • J Offline
                                J Offline
                                Jan1
                                schrieb am zuletzt editiert von
                                #15

                                Mal ne Frage zum Stop des timeout. Warum stoppe ich was, dass durch die falls Bedingung gar nicht gestartet wurde, oder steh ich gerade auf dem Schlauch?

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

                                  @Jan1:

                                  Warum stoppe ich was, dass durch die falls Bedingung gar nicht gestartet wurde `
                                  Der Timer wird gestoppt, wenn die Falls-Bedingung erfüllt war, aber innerhalb der Verzögerungszeit sie nicht erfüllt bleibt. Beispiel:

                                  Waschmaschine läuft –> Leistung 3 W (Start Timer) --> nach 10 s Leistung 50 W (Stopp Timer) --> nach 20 s Leistung wieder 3 W (Start Timer) --> nach 40 s Leistung 50 W (Stopp Timer) --> nach 50 s 3 W (Start Timer) --> nach 80 s Wachmaschine fertig.

                                  Ohne den Stopp Timer würden nach 20 s und 50 s weitere Timer gestartet, der erste Timer würde weiterlaufen und nach 30 s fertig melden, der zweite Timer nach 50 s und der dritte Timer nach 80 s.

                                  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
                                  • D Offline
                                    D Offline
                                    daniello
                                    schrieb am zuletzt editiert von
                                    #17

                                    Zwei Dinge sind blöd .. zum einen steht die Waschmaschine still trotzdem "ist sie fertig" .. kommt grad so alle paar Minuten. Kein einziger Val ist über 0.3. Und die W_kWh und W_Euro sind NaN (Not a Number) .. müssten sie doch aber sein.

                                    17:36:39.598	[info]	javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970444.2.POWER, timerId=0) => {"val":0.25,"ack":true,"ts":1538235399594,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538235279350}
                                    17:36:39.599	[info]	javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970444.2.POWER, timerId=0) => {"val":0.25,"ack":true,"ts":1538235399594,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538235279350}
                                    17:36:39.599	[info]	javascript.0 script.js.common.waschmaschine_trockner: setTimeout(ms=30000)
                                    17:37:06.963	[info]	javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970432.2.POWER, timerId=0) => {"val":0.28,"ack":true,"ts":1538235426957,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538235426957}
                                    17:37:06.964	[info]	javascript.0 script.js.common.waschmaschine_trockner: setTimeout(ms=30000)
                                    17:37:09.599	[info]	javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970444.2.POWER, timerId=0) => {"val":0.25,"ack":true,"ts":1538235399594,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538235279350}
                                    17:37:09.599	[info]	javascript.0 script.js.common.waschmaschine_trockner: setForeignState(id=.eigene.wäschetrockner, state=false)
                                    17:37:36.965	[info]	javascript.0 script.js.common.waschmaschine_trockner: getState(id=hm-rpc.0.KEQ0970432.2.ENERGY_COUNTER, timerId=0) => {"val":2359.5,"ack":true,"ts":1538235426950,"q":0,"from":"system.adapter.hm-rpc.0","lc":1538234215211}
                                    17:37:36.965	[info]	javascript.0 script.js.common.waschmaschine_trockner: sendTo(adapter=email, cmd=send, msg={"text":"Verbrauch heute: NaN kWh. In Euro: NaN","to":"xx@xx.com","subject":"Waschmaschine heute"})
                                    17:37:36.965	[info]	javascript.0 script.js.common.waschmaschine_trockner: setForeignState(id=alexa2.0.Echo-Devices.G090LF107207028R.Commands.speak, state="Die Waschmaschine ist fertig")
                                    
                                    1 Antwort Letzte Antwort
                                    0
                                    • paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von
                                      #18

                                      @daniello:

                                      kommt grad so alle paar Minuten. Kein einziger Val ist über 0.3. `
                                      Aber auch nicht konstant. Deshalb die Abfrage erweitern auf

                                      falls Wert < 4 und vorheriger Wert >= 4

                                      EDIT: falls Wert < 4 falls vorheriger Wert >= 4

                                      @daniello:

                                      Und die W_kWh und W_Euro sind NaN (Not a Number) `
                                      Die Variable Wstart wurde sicherlich noch nicht initialisiert, da der sonst-Zweig noch nie erreicht wurde. Initialisiere die Variable <u>zusätzlich</u> außerhalb des Triggerblocks:

                                      setze Wstart auf Wert vom Objekt Waschmaschine:2.ENERGY_COUNTER

                                      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
                                      • J Offline
                                        J Offline
                                        Jan1
                                        schrieb am zuletzt editiert von
                                        #19

                                        @paul53:

                                        @Jan1:

                                        Warum stoppe ich was, dass durch die falls Bedingung gar nicht gestartet wurde `
                                        Der Timer wird gestoppt, wenn die Falls-Bedingung erfüllt war, aber innerhalb der Verzögerungszeit sie nicht erfüllt bleibt. Beispiel:

                                        Waschmaschine läuft –> Leistung 3 W (Start Timer) --> nach 10 s Leistung 50 W (Stopp Timer) --> nach 20 s Leistung wieder 3 W (Start Timer) --> nach 40 s Leistung 50 W (Stopp Timer) --> nach 50 s 3 W (Start Timer) --> nach 80 s Wachmaschine fertig.

                                        Ohne den Stopp Timer würden nach 20 s und 50 s weitere Timer gestartet, der erste Timer würde weiterlaufen und nach 30 s fertig melden, der zweite Timer nach 50 s und der dritte Timer nach 80 s. `

                                        OK, jetzt weiß ich auch warum sich einige meiner Blocklys komisch verhalten, eigentlich logisch.

                                        1 Antwort Letzte Antwort
                                        0
                                        • D Offline
                                          D Offline
                                          daniello
                                          schrieb am zuletzt editiert von
                                          #20

                                          > falls Wert < 4 und vorheriger Wert >= 4

                                          Wie macht mann denn das mit dem vorherigen Wert? Ist das "letzte Änderung" ?

                                          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

                                          382

                                          Online

                                          32.6k

                                          Benutzer

                                          82.1k

                                          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