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. Nach Änderung von Wert -> Timer, Re-Check & Aktion

NEWS

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

  • Monatsrückblick – September 2025
    BluefoxB
    Bluefox
    13
    1
    2.2k

  • Neues Video "KI im Smart Home" - ioBroker plus n8n
    BluefoxB
    Bluefox
    16
    1
    3.3k

Nach Änderung von Wert -> Timer, Re-Check & Aktion

Geplant Angeheftet Gesperrt Verschoben Blockly
6 Beiträge 2 Kommentatoren 392 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.
  • H Offline
    H Offline
    Hagbard
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    noch recht neu bei Blockly und Iobroker habe ich eine Frage:

    Ich habe Steckdosen, die alle 10 Sekunden per MQTT Ihre Werte an den Broker übermitteln. An einer der Steckdosen hängt die Waschmaschine. Ich möchte bei jeder Veränderung des Wertes prüfen, ob er zb. den Wert von 1 (=1 Watt hat). Wenn er dieses hat, möchte ich 15 Minuten warten und dann erneut prüfen, ob der dann in der Datenbank stehende Wert (bis dahin sind ja 150 weitere Datensätze gekommen) sich verändert hat oder immer noch unverändert bei 1W steht. Wenn ja, möchte ich eine Aktion (zb. Mail oder Signal Nachricht) auslösen.

    Was möchte ich erreichen? Bei 1W dauerhaft ist das Waschprogramm durchgelaufen und er steht im "END" Status und verbraucht dort gem. Steckdose konstant 1W. Jedoch kann auch im laufenden Waschbetrieb einmal 1W erreicht werden und dann möchte ich nicht adhoc abschalten, sondern einfach warten ob der Wert nach 15 Minuten unverändert ist.

    Dafür suche ich Ansätze wie sowas aussehen kann und wie man mit Timern und aktuellen Werten arbeitet.
    Mein bisheriger Ansatz hat nicht wirklich funktioniert. Er hat nach den 10 Minuten einfach die "alten" Werte erneut in der "Falls" Bedingung genommen, auch wenn real dort der Verbrauch schon wieder höher war. Auch wenn der Ansatz sicherlich nicht korrekt ist, zeige ich ihn hier mal. Ich kann mir aber dennoch gut vorstellen, dass ein neuer Ansatz davon massiv abweicht - ich habe einfach noch zu wenig Erfahrung mit Timern und wie die Skripte laufen und wann die Werte gesetzt werden.

    a5c4c350-3ed0-4b06-a62c-619e165fd68c-image.png

    paul53P 1 Antwort Letzte Antwort
    0
    • H Hagbard

      Hallo zusammen,

      noch recht neu bei Blockly und Iobroker habe ich eine Frage:

      Ich habe Steckdosen, die alle 10 Sekunden per MQTT Ihre Werte an den Broker übermitteln. An einer der Steckdosen hängt die Waschmaschine. Ich möchte bei jeder Veränderung des Wertes prüfen, ob er zb. den Wert von 1 (=1 Watt hat). Wenn er dieses hat, möchte ich 15 Minuten warten und dann erneut prüfen, ob der dann in der Datenbank stehende Wert (bis dahin sind ja 150 weitere Datensätze gekommen) sich verändert hat oder immer noch unverändert bei 1W steht. Wenn ja, möchte ich eine Aktion (zb. Mail oder Signal Nachricht) auslösen.

      Was möchte ich erreichen? Bei 1W dauerhaft ist das Waschprogramm durchgelaufen und er steht im "END" Status und verbraucht dort gem. Steckdose konstant 1W. Jedoch kann auch im laufenden Waschbetrieb einmal 1W erreicht werden und dann möchte ich nicht adhoc abschalten, sondern einfach warten ob der Wert nach 15 Minuten unverändert ist.

      Dafür suche ich Ansätze wie sowas aussehen kann und wie man mit Timern und aktuellen Werten arbeitet.
      Mein bisheriger Ansatz hat nicht wirklich funktioniert. Er hat nach den 10 Minuten einfach die "alten" Werte erneut in der "Falls" Bedingung genommen, auch wenn real dort der Verbrauch schon wieder höher war. Auch wenn der Ansatz sicherlich nicht korrekt ist, zeige ich ihn hier mal. Ich kann mir aber dennoch gut vorstellen, dass ein neuer Ansatz davon massiv abweicht - ich habe einfach noch zu wenig Erfahrung mit Timern und wie die Skripte laufen und wann die Werte gesetzt werden.

      a5c4c350-3ed0-4b06-a62c-619e165fd68c-image.png

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

      @hagbard sagte: Dafür suche ich Ansätze

      Die Suche nach "Waschmaschine fertig" liefert schnell das Prinzip.

      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

      H 1 Antwort Letzte Antwort
      0
      • paul53P paul53

        @hagbard sagte: Dafür suche ich Ansätze

        Die Suche nach "Waschmaschine fertig" liefert schnell das Prinzip.

        H Offline
        H Offline
        Hagbard
        schrieb am zuletzt editiert von
        #3

        @paul53
        Danke. Das werde ich mal bei der nächsten Wäsche ausprobieren.
        Aber könntest Du noch etwas beschreiben, wie ich mir das vom Ablauf des Skriptes vorstellen muss?

        Bei jeder Änderung wird geprüft, ob der Wert über 4W (also gem. Deines Beispiels). Wenn ja, wird der Timeout "fertig" gestoppt.
        Wenn nicht: Was bedeute da "nicht Verzögerung 'fertig'"?

        Ultimativ wird dann nach 5 Minuten die Meldung generiert ...?

        paul53P 1 Antwort Letzte Antwort
        0
        • H Hagbard

          @paul53
          Danke. Das werde ich mal bei der nächsten Wäsche ausprobieren.
          Aber könntest Du noch etwas beschreiben, wie ich mir das vom Ablauf des Skriptes vorstellen muss?

          Bei jeder Änderung wird geprüft, ob der Wert über 4W (also gem. Deines Beispiels). Wenn ja, wird der Timeout "fertig" gestoppt.
          Wenn nicht: Was bedeute da "nicht Verzögerung 'fertig'"?

          Ultimativ wird dann nach 5 Minuten die Meldung generiert ...?

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

          @hagbard sagte: Was bedeute da "nicht Verzögerung 'fertig'"?

          Das ist eine Sperre per Timer-Variable, die verhindert, dass bei Leistungen kleiner als der Grenzwert weitere Timer gestartet werden, die sich nicht mehr stoppen lassen. Bei "stop timeout" wird die Timer-Variable auf null zurück gesetzt.

          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

          H 1 Antwort Letzte Antwort
          0
          • paul53P paul53

            @hagbard sagte: Was bedeute da "nicht Verzögerung 'fertig'"?

            Das ist eine Sperre per Timer-Variable, die verhindert, dass bei Leistungen kleiner als der Grenzwert weitere Timer gestartet werden, die sich nicht mehr stoppen lassen. Bei "stop timeout" wird die Timer-Variable auf null zurück gesetzt.

            H Offline
            H Offline
            Hagbard
            schrieb am zuletzt editiert von
            #5

            @paul53

            Danke. Damit werde ich es mal probieren.

            Kann man mit Blockly auch sowas prüfen, wie: "Durchschnittswerte der letzten 100 Aktualisierungen" oder so? Denn manchmal gibts quasi "Zuckungen" wo ggfs. wenn die Maschine schon fertig ist und eigentlich dauerhaft 1W verbraucht (und schon 1x die Meldung dann gekommen ist), ein Update mal kurz 5W oder so sagt und dann gehts wieder auf 1W -> Sowas würde dann zu einer erneuten Meldung führen. Wenn ich prüfen könnte, dass es zb. x Minuten vorher immer einen Durchschnitt von 1W gab, muss ich nich nochmal alarmieren ...

            H 1 Antwort Letzte Antwort
            0
            • H Hagbard

              @paul53

              Danke. Damit werde ich es mal probieren.

              Kann man mit Blockly auch sowas prüfen, wie: "Durchschnittswerte der letzten 100 Aktualisierungen" oder so? Denn manchmal gibts quasi "Zuckungen" wo ggfs. wenn die Maschine schon fertig ist und eigentlich dauerhaft 1W verbraucht (und schon 1x die Meldung dann gekommen ist), ein Update mal kurz 5W oder so sagt und dann gehts wieder auf 1W -> Sowas würde dann zu einer erneuten Meldung führen. Wenn ich prüfen könnte, dass es zb. x Minuten vorher immer einen Durchschnitt von 1W gab, muss ich nich nochmal alarmieren ...

              H Offline
              H Offline
              Hagbard
              schrieb am zuletzt editiert von
              #6

              Als Abschluss für den Thread und weil ich mich bedanken möchte und interessierten Lesern später zeigen möchte, wie ich das zb. für meine Spülmaschine gelöst habe:

              e45dc7df-9d84-4250-8d5c-f60b6bfb3da3-image.png

              Da ich zum einen ab und an komische Werte > 0W hatte, die entweder an dem Gerät, der Steckdose oder einfach daran liegen, dass jemand kurz die Maschine startet und das Programm dann doch nicht aktiviert, habe ich mich entschlossen einen Mechanismus einzubauen, der eben auch berücksichtigt, ob die Maschine bzw. das Programm ernsthaft gelaufen ist:

              • Wenn ein Wert sich ändert und er ist über 100W (als Beispiel), dann können wir davon ausgehen, dass ein Programm läuft => Wir setzen eine definierte Variable auf "WAHR".
              • Wenn ein Wert >0 aber < 100W als Veränderung gesehen wird, wird ein ggfs. laufender Timer gestoppt - ansonsten passiert nichts.
              • Wenn eine Veränderung des Wertes dazu führt, dass der Wert 0 ist UND die definierte Variable "WAHR" ist, wird eine Nachricht geschickt - die Variable wird dann wieder auf "FALSCH" gesetzt.

              In dem Stil werde ich es auch mit der Waschmaschine machen und anderen Geräten, die in einem Programm ablaufen und als Kennzeichen haben einen gewissen Schwellwert (zb. für das Heizen) stets zu überschreiten - kleine Verbräuche die aus unterschiedlichsten Gründen auftauchen können, werden ignoriert.

              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

              874

              Online

              32.4k

              Benutzer

              81.5k

              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