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. Tipp zur Programmierung

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.0k

Tipp zur Programmierung

Geplant Angeheftet Gesperrt Verschoben Blockly
3 Beiträge 3 Kommentatoren 280 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.
  • K Offline
    K Offline
    krodon
    schrieb am zuletzt editiert von
    #1

    Hallo,

    ich benötige einen Tipp.
    Ich möchte eine Variable auf true setzen wenn ein Event N mal in einem Zeitraum t geschehen ist.

    Das ganze soll ungefähr so funktionieren:

    Auslöser für Events = 3
    Zeit = 5 Minuten

    Event 1 0:00
    Event 2 4:00
    Event 3 5:01

    Es wird nichts ausgelöst, aber nun sollen die Events auf 2 gesetzt werden und 4:00 als Beginn für das 1. Event gesetz werden.
    Bei Auslösung soll alles wieder auf null gesetzt werden.

    VG

    Krodon

    OliverIOO AsgothianA 2 Antworten Letzte Antwort
    0
    • K krodon

      Hallo,

      ich benötige einen Tipp.
      Ich möchte eine Variable auf true setzen wenn ein Event N mal in einem Zeitraum t geschehen ist.

      Das ganze soll ungefähr so funktionieren:

      Auslöser für Events = 3
      Zeit = 5 Minuten

      Event 1 0:00
      Event 2 4:00
      Event 3 5:01

      Es wird nichts ausgelöst, aber nun sollen die Events auf 2 gesetzt werden und 4:00 als Beginn für das 1. Event gesetz werden.
      Bei Auslösung soll alles wieder auf null gesetzt werden.

      VG

      Krodon

      OliverIOO Offline
      OliverIOO Offline
      OliverIO
      schrieb am zuletzt editiert von
      #2

      @krodon

      Ich denke bei jedem Event was den Kriterien entspricht das es potentiell was auslösen könnte muss ein Timer gestartet werden. Alle nachfolgenden Events müssen für alle laufenden Timer gezählt werden bis entweder die Max Anzahl erreicht ist, dass dann die Aktion ausgelöst wird oder wenn die Max Zeit erreicht wird, das der Timer dann vergessen/gelöscht wird.
      Das heißt zum gleichen Zeit laufen mehrere Timer, falls innerhalb der Messeturm mehrere Events auftreten

      Meine Adapter und Widgets
      TVProgram, SqueezeboxRPC, OpenLiga, RSSFeed, MyTime,, pi-hole2, vis-json-template, skiinfo, vis-mapwidgets, vis-2-widgets-rssfeed
      Links im Profil

      1 Antwort Letzte Antwort
      1
      • K krodon

        Hallo,

        ich benötige einen Tipp.
        Ich möchte eine Variable auf true setzen wenn ein Event N mal in einem Zeitraum t geschehen ist.

        Das ganze soll ungefähr so funktionieren:

        Auslöser für Events = 3
        Zeit = 5 Minuten

        Event 1 0:00
        Event 2 4:00
        Event 3 5:01

        Es wird nichts ausgelöst, aber nun sollen die Events auf 2 gesetzt werden und 4:00 als Beginn für das 1. Event gesetz werden.
        Bei Auslösung soll alles wieder auf null gesetzt werden.

        VG

        Krodon

        AsgothianA Offline
        AsgothianA Offline
        Asgothian
        Developer
        schrieb am zuletzt editiert von Asgothian
        #3

        @krodon Ich würde das so lösen:

        • eine Variable definieren, als leere Liste initialisieren
        • im Trigger den Zeitstempel der aktuellen Änderung als letzten in die Liste setzen
        • Sofern die Liste mehr als 2 Elemente hat:
          -- pruefen ob der erste Zeitstempel länger als n Minuten her ist. Wenn ja, aus der Liste entfernen. Das ganze wiederholen, bis die Bedingung nicht mehr erfüllt ist.
        • Hat die Liste immer noch mehr als 2 Elemente: Wert auf Wahr, dann Liste leeren.

        Screenshot 2025-06-14 at 16.25.35.png

        Ohne die Liste zu leeren entfällt der 'reset'

        A.
        Nachtrag: warum so und nicht mit Timern ? Weil bei Timern letztendlich bei jeder Änderung ein Timer notwendig werden würde. Beispiel:
        Event tritt ein bei:
        T=0,
        T=3,
        T=6,
        T=9,
        T=10
        Man hat also immer 2 Timeouts laufen, und erst wenn der Event eintritt wenn beide laufen darf gestartet werden. Da ist die Liste dann doch die Option mit weniger Ressourcen.

        ioBroker auf RPi4 - Hardware soweit wie möglich via Zigbee.
        "Shit don't work" ist keine Fehlermeldung, sondern ein Fluch.

        1 Antwort Letzte Antwort
        2
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        748

        Online

        32.6k

        Benutzer

        82.0k

        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