Weiter zum Inhalt
  • Home
  • Aktuell
  • Tags
  • 0 Ungelesen 0
  • Kategorien
  • Unreplied
  • Beliebt
  • GitHub
  • Docu
  • Hilfe
Skins
  • Hell
  • Brite
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dunkel
  • 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

  • Neuer ioBroker-Blog online: Monatsrückblick März/April 2026
    BluefoxB
    Bluefox
    6
    1
    203

  • Verwendung von KI bitte immer deutlich kennzeichnen
    HomoranH
    Homoran
    8
    1
    211

  • Monatsrückblick Januar/Februar 2026 ist online!
    BluefoxB
    Bluefox
    18
    1
    888

Tipp zur Programmierung

Geplant Angeheftet Gesperrt Verschoben Blockly
3 Beiträge 3 Kommentatoren 311 Aufrufe 3 Beobachtet
  • Ä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

        Hey! Du scheinst an dieser Unterhaltung interessiert zu sein, hast aber noch kein Konto.

        Hast du es satt, bei jedem Besuch durch die gleichen Beiträge zu scrollen? Wenn du dich für ein Konto anmeldest, kommst du immer genau dorthin zurück, wo du zuvor warst, und kannst dich über neue Antworten benachrichtigen lassen (entweder per E-Mail oder Push-Benachrichtigung). Du kannst auch Lesezeichen speichern und Beiträge positiv bewerten, um anderen Community-Mitgliedern deine Wertschätzung zu zeigen.

        Mit deinem Input könnte dieser Beitrag noch besser werden 💗

        Registrieren Anmelden
        Antworten
        • In einem neuen Thema antworten
        Anmelden zum Antworten
        • Älteste zuerst
        • Neuste zuerst
        • Meiste Stimmen


        Support us

        ioBroker
        Community Adapters
        Donate

        266

        Online

        32.8k

        Benutzer

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