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. Blockly
  5. [gelöst] Blockly schaltet zu oft

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.5k

[gelöst] Blockly schaltet zu oft

Geplant Angeheftet Gesperrt Verschoben Blockly
34 Beiträge 4 Kommentatoren 2.9k Aufrufe 3 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.
  • C Chris777

    @homoran siehe oben mein screenshoot. Bevor der eine timeout startet wird der jeweils andere gestoppt und bis jetzt kommen saubere Signale.

    HomoranH Nicht stören
    HomoranH Nicht stören
    Homoran
    Global Moderator Administrators
    schrieb am zuletzt editiert von Homoran
    #16

    @chris777 kann es nicht!
    Da ich immer noch nicht weiß was hinter den DPs steckt, natürlich nur auf Glaskugelbasis

    der Timeout2 würde mehrfach gestartet, wenn öfter ein Wert >3000 kommt (3004, 3007, 3003,......) und gleichzeitig der andere unbekannte DP true ist.
    Danach kannst du den Timeout2 nicht mehr stoppen.

    kein Support per PN! - Fragen im Forum stellen - es gibt fast nichts, was nicht auch für andere interessant ist.

    Benutzt das Voting rechts unten im Beitrag wenn er euch geholfen hat.

    der Installationsfixer: curl -fsL https://iobroker.net/fix.sh | bash -

    CodierknechtC 1 Antwort Letzte Antwort
    0
    • HomoranH Homoran

      @chris777 kann es nicht!
      Da ich immer noch nicht weiß was hinter den DPs steckt, natürlich nur auf Glaskugelbasis

      der Timeout2 würde mehrfach gestartet, wenn öfter ein Wert >3000 kommt (3004, 3007, 3003,......) und gleichzeitig der andere unbekannte DP true ist.
      Danach kannst du den Timeout2 nicht mehr stoppen.

      CodierknechtC Offline
      CodierknechtC Offline
      Codierknecht
      Developer Most Active
      schrieb am zuletzt editiert von
      #17

      @homoran sagte in [gelöst] Blockly schaltet zu oft:

      der Timeout2 würde mehrfach gestartet, wenn öfter ein Wert >3000 kommt (3004, 3007, 3003,......) und gleichzeitig der andere unbekannte DP true ist.
      Danach kannst du den Timeout2 nicht mehr stoppen.

      Genau darum stoppe ich (so ich denn mal welche verwende) jeden Timeout bevor ich ihn starte.
      In der Regel will man ja etwas bewirken, wenn ein Zustand länger als x andauert.

      Will man nach einer Zeit x etwas bewirken, sobald sich ein Zustand das erste mal ändert und sich dies innerhalb der Zeit auch so bleibt, nimmt man entweder eine Verriegelungs-Variable oder prüft, ob der Timer noch nicht läuft, bevor man einen neuen startet.

      Mehrere Instanzen eines Timeouts gilt es auf jeden Fall zu vermeiden.

      "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

      Proxmox 9.1.1 LXC|8 GB|Core i7-6700
      HmIP|ZigBee|Tasmota|Unifi
      Zabbix Certified Specialist
      Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

      C 1 Antwort Letzte Antwort
      0
      • C Offline
        C Offline
        Chris777
        schrieb am zuletzt editiert von
        #18

        Ihr habt recht, jetzt kommen wieder die Signale in kurzen Abständen...

        1 Antwort Letzte Antwort
        0
        • C Offline
          C Offline
          Chris777
          schrieb am zuletzt editiert von Chris777
          #19

          Und so? Da stoppe ich ja jeden Timeout, bevor der neue startet.
          SG Aktiv.JPG

          oder eher so?
          SG Aktiv 2.JPG

          1 Antwort Letzte Antwort
          0
          • CodierknechtC Codierknecht

            @homoran sagte in [gelöst] Blockly schaltet zu oft:

            der Timeout2 würde mehrfach gestartet, wenn öfter ein Wert >3000 kommt (3004, 3007, 3003,......) und gleichzeitig der andere unbekannte DP true ist.
            Danach kannst du den Timeout2 nicht mehr stoppen.

            Genau darum stoppe ich (so ich denn mal welche verwende) jeden Timeout bevor ich ihn starte.
            In der Regel will man ja etwas bewirken, wenn ein Zustand länger als x andauert.

            Will man nach einer Zeit x etwas bewirken, sobald sich ein Zustand das erste mal ändert und sich dies innerhalb der Zeit auch so bleibt, nimmt man entweder eine Verriegelungs-Variable oder prüft, ob der Timer noch nicht läuft, bevor man einen neuen startet.

            Mehrere Instanzen eines Timeouts gilt es auf jeden Fall zu vermeiden.

            C Offline
            C Offline
            Chris777
            schrieb am zuletzt editiert von
            #20

            @codierknecht Was ist eine Verriegelungsvariable und den timeout kann ich prüfen mit falls nicht timeout?

            Gruß

            paul53P 1 Antwort Letzte Antwort
            0
            • C Chris777

              @codierknecht Was ist eine Verriegelungsvariable und den timeout kann ich prüfen mit falls nicht timeout?

              Gruß

              paul53P Offline
              paul53P Offline
              paul53
              schrieb am zuletzt editiert von paul53
              #21

              @chris777 sagte: Was ist eine Verriegelungsvariable

              Die Verriegelung gegen erneuten Timerstart ist "nicht Verzögerung timeout2", also ist timeout2 die Verriegelungsvariable.

              @chris777 sagte in [gelöst] Blockly schaltet zu oft:

              oder eher so?

              So wird nicht mehr auf false geschaltet und die Logik ist umgedreht.

              Weshalb nicht so, wie hier gezeigt ("Switch" = "SG Aktiv")?

              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
              1
              • C Offline
                C Offline
                Chris777
                schrieb am zuletzt editiert von Chris777
                #22

                Ok, dann werde ich es mal so probieren.

                Für mich nochmal: es starten jedes Mal Timeouts, wenn die Bedingung erfüllt ist und der Trigger auslöst? Es ist nicht wie in einer SPS, dass solange das Signal anliegt die Bedingung erfüllt ist und der Timer läuft?
                Es können viele gleiche Timeouts gestartet werden?
                Wenn viele Timeouts gestartet sind, kann ich nicht alle stoppen?
                Kann man die Funktionen iwo nachlesen? Bei Verzögerung timeout wäre ich nie darauf gekommen, dass ich damit das aktiv-Signal vom timeout abfrage

                Erstmal allen vielen Dank!

                CodierknechtC 1 Antwort Letzte Antwort
                0
                • C Chris777

                  Ok, dann werde ich es mal so probieren.

                  Für mich nochmal: es starten jedes Mal Timeouts, wenn die Bedingung erfüllt ist und der Trigger auslöst? Es ist nicht wie in einer SPS, dass solange das Signal anliegt die Bedingung erfüllt ist und der Timer läuft?
                  Es können viele gleiche Timeouts gestartet werden?
                  Wenn viele Timeouts gestartet sind, kann ich nicht alle stoppen?
                  Kann man die Funktionen iwo nachlesen? Bei Verzögerung timeout wäre ich nie darauf gekommen, dass ich damit das aktiv-Signal vom timeout abfrage

                  Erstmal allen vielen Dank!

                  CodierknechtC Offline
                  CodierknechtC Offline
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von
                  #23

                  @chris777 sagte in [gelöst] Blockly schaltet zu oft:

                  Es ist nicht wie in einer SPS, dass solange das Signal anliegt die Bedingung erfüllt ist und der Timer läuft?

                  Nein - auf keinen Fall.

                  Es können viele gleiche Timeouts gestartet werden?

                  Ja!

                  Wenn viele Timeouts gestartet sind, kann ich nicht alle stoppen?

                  Wenn die einzeln per Name ansprechbar sind: Ja.
                  Wenn Du einen Timer mehrfach nacheinander gestartet hast: Soweit mir bekannt - Nein.

                  Bedenke immer, dass Du hier keine nacheinander ablaufende Prozesssteuerung hast, sondern ein Ereignisgesteuertes System, bei dem Prozesse auch noch asynchron ablaufen können.

                  https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md

                  "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                  Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                  HmIP|ZigBee|Tasmota|Unifi
                  Zabbix Certified Specialist
                  Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                  CodierknechtC 1 Antwort Letzte Antwort
                  1
                  • CodierknechtC Codierknecht

                    @chris777 sagte in [gelöst] Blockly schaltet zu oft:

                    Es ist nicht wie in einer SPS, dass solange das Signal anliegt die Bedingung erfüllt ist und der Timer läuft?

                    Nein - auf keinen Fall.

                    Es können viele gleiche Timeouts gestartet werden?

                    Ja!

                    Wenn viele Timeouts gestartet sind, kann ich nicht alle stoppen?

                    Wenn die einzeln per Name ansprechbar sind: Ja.
                    Wenn Du einen Timer mehrfach nacheinander gestartet hast: Soweit mir bekannt - Nein.

                    Bedenke immer, dass Du hier keine nacheinander ablaufende Prozesssteuerung hast, sondern ein Ereignisgesteuertes System, bei dem Prozesse auch noch asynchron ablaufen können.

                    https://github.com/ioBroker/ioBroker.javascript/blob/master/docs/en/javascript.md

                    CodierknechtC Offline
                    CodierknechtC Offline
                    Codierknecht
                    Developer Most Active
                    schrieb am zuletzt editiert von
                    #24

                    @Chris777

                    ein Ereignisgesteuertes System, bei dem Prozesse auch noch asynchron ablaufen können.

                    Stichwort: https://www.google.com/search?q=nebenläufige+programmierung

                    "Any fool can write code that a computer can understand. Good programmers write code that humans can understand." (Martin Fowler, "Refactoring")

                    Proxmox 9.1.1 LXC|8 GB|Core i7-6700
                    HmIP|ZigBee|Tasmota|Unifi
                    Zabbix Certified Specialist
                    Konnte ich Dir helfen? Dann benutze bitte das Voting unten rechts im Beitrag

                    1 Antwort Letzte Antwort
                    0
                    • C Offline
                      C Offline
                      Chris777
                      schrieb am zuletzt editiert von
                      #25

                      Könnte es jetzt so funktionieren? Mir ist noch nicht klar, ob ich so SG Aktiv in true und false setzen kann oder ob es sich gegenseitig beeinflusst.

                      SG Aktiv.JPG

                      paul53P 1 Antwort Letzte Antwort
                      0
                      • C Chris777

                        Könnte es jetzt so funktionieren? Mir ist noch nicht klar, ob ich so SG Aktiv in true und false setzen kann oder ob es sich gegenseitig beeinflusst.

                        SG Aktiv.JPG

                        paul53P Offline
                        paul53P Offline
                        paul53
                        schrieb am zuletzt editiert von paul53
                        #26

                        @chris777 sagte: Könnte es jetzt so funktionieren?

                        Keine zwei gleiche Trigger! Mache es besser so:

                        Blockly_temp.JPG

                        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
                        • C Offline
                          C Offline
                          Chris777
                          schrieb am zuletzt editiert von
                          #27

                          Und wie schalte ich SG Aktiv wieder auf false?

                          paul53P 1 Antwort Letzte Antwort
                          0
                          • C Chris777

                            Und wie schalte ich SG Aktiv wieder auf false?

                            paul53P Offline
                            paul53P Offline
                            paul53
                            schrieb am zuletzt editiert von paul53
                            #28

                            @chris777 sagte: Und wie schalte ich SG Aktiv wieder auf false?

                            Wenn die Variable aktiv auf false wechselt und dann 30 Minuten auf false bleibt, schaltet "SG Aktiv" auf false (Variablenwert).

                            Blockly_temp.JPG

                            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
                            • C Offline
                              C Offline
                              Chris777
                              schrieb am zuletzt editiert von
                              #29

                              SG Aktiv.JPG

                              Ich versuche es mal kurz in Worte zu fassen:
                              Falls sich value ändert setze aktiv 1 auf true, wenn die Bedingungen Hausb.. etc. erfüllt sind. Wenn Aktiv 1 gleich SG Aktiv ist (egal ob true oder false) stoppe timeout3. Sonst, falls timeout3 nicht true ist, führe timeout3 aus und schalte nach 5 Minuten SG Aktiv auf den Wert von aktiv 1 (hier mit true). Das gleiche, wenn Aktiv 1 auf false wechselt.
                              Korrekt?

                              paul53P 1 Antwort Letzte Antwort
                              0
                              • C Chris777

                                SG Aktiv.JPG

                                Ich versuche es mal kurz in Worte zu fassen:
                                Falls sich value ändert setze aktiv 1 auf true, wenn die Bedingungen Hausb.. etc. erfüllt sind. Wenn Aktiv 1 gleich SG Aktiv ist (egal ob true oder false) stoppe timeout3. Sonst, falls timeout3 nicht true ist, führe timeout3 aus und schalte nach 5 Minuten SG Aktiv auf den Wert von aktiv 1 (hier mit true). Das gleiche, wenn Aktiv 1 auf false wechselt.
                                Korrekt?

                                paul53P Offline
                                paul53P Offline
                                paul53
                                schrieb am zuletzt editiert von
                                #30

                                @chris777 sagte: Wenn Aktiv 1 gleich SG Aktiv ist (egal ob true oder false) stoppe timeout3. Sonst, falls timeout3 nicht true ist, führe timeout3 aus und schalte nach 5 Minuten SG Aktiv auf den Wert von aktiv 1 (hier mit true). Das gleiche, wenn Aktiv 1 auf false wechselt.

                                Korrekt?

                                Fast korrekt: falls timeout3 null oder undefined ist,

                                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
                                • C Offline
                                  C Offline
                                  Chris777
                                  schrieb am zuletzt editiert von
                                  #31

                                  @paul53 said in Blockly schaltet zu oft:

                                  undefined

                                  Danke für eure Geduld und schönen Abend!

                                  1 Antwort Letzte Antwort
                                  0
                                  • C Offline
                                    C Offline
                                    Chris777
                                    schrieb am zuletzt editiert von
                                    #32

                                    Also der Blockly funktioniert nicht. Er schaltet nicht auf aktiv true obwohl die Bedingung erfüllt sind.
                                    Aktiv.JPG

                                    paul53P 1 Antwort Letzte Antwort
                                    0
                                    • C Chris777

                                      Also der Blockly funktioniert nicht. Er schaltet nicht auf aktiv true obwohl die Bedingung erfüllt sind.
                                      Aktiv.JPG

                                      paul53P Offline
                                      paul53P Offline
                                      paul53
                                      schrieb am zuletzt editiert von paul53
                                      #33

                                      @chris777 sagte: schaltet nicht auf aktiv true obwohl die Bedingung erfüllt sind.

                                      Sicher, dass die Bedingungen 5 Minuten lang erfüllt sind? Bau einen Debug-Block ein, um es zu prüfen.

                                      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
                                      • C Offline
                                        C Offline
                                        Chris777
                                        schrieb am zuletzt editiert von
                                        #34

                                        So scheint es erstmal heute funktioniert zu haben. Jeweils nur ein sauberes True oder False für die entsprechende Zeit..

                                        Aktiv.JPG

                                        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

                                        593

                                        Online

                                        32.7k

                                        Benutzer

                                        82.4k

                                        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