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 start nur bei Status Änderung Variable

NEWS

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

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

  • Weihnachtsangebot 2025! 🎄
    BluefoxB
    Bluefox
    25
    1
    2.1k

[gelöst] Blockly start nur bei Status Änderung Variable

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

    Hallo zusammen

    Ich möchte mir ein Blockly schreiben welches folgendes Vorgehen praktiziert. Wenn es in der Nacht windet und der Wind über 35km/h war wird eine Variable auf true gesetzt. Sobald der Wind wieder kleiner wie 35km/h ist und es immer noch nacht ist, dann warte ich noch 90 minuten um auf nummer sicher zu gehen dass es wirklich nicht mehr windet und sobald die 90minuten um sind und der Wind nie höher wie 35km/h war dann werden die rolläden wieder runter gefahren.

    Damit das Skript nicht immer läuft wenn es kein Wind hat und die Variable auf false steht so würde ich gerne das Blockly nur laufen lassen, wenn der Wert der Variable von true auf false ändert. Nur dann bin ich sicher, dass vorher Wind war der höher wie 35km/h war und es danach wieder aufgehört hat. Der Trigger des gesamten Blockly soll auf den Wind der Wetterstation gelegt werden so kriegt das Blockly alle Windänderungen mit.

    Wie würdet Ihr das mit dem Variablen Statuswechsel lösen?

    Danke Euch

    AsgothianA 1 Antwort Letzte Antwort
    0
    • D drapo

      Hallo zusammen

      Ich möchte mir ein Blockly schreiben welches folgendes Vorgehen praktiziert. Wenn es in der Nacht windet und der Wind über 35km/h war wird eine Variable auf true gesetzt. Sobald der Wind wieder kleiner wie 35km/h ist und es immer noch nacht ist, dann warte ich noch 90 minuten um auf nummer sicher zu gehen dass es wirklich nicht mehr windet und sobald die 90minuten um sind und der Wind nie höher wie 35km/h war dann werden die rolläden wieder runter gefahren.

      Damit das Skript nicht immer läuft wenn es kein Wind hat und die Variable auf false steht so würde ich gerne das Blockly nur laufen lassen, wenn der Wert der Variable von true auf false ändert. Nur dann bin ich sicher, dass vorher Wind war der höher wie 35km/h war und es danach wieder aufgehört hat. Der Trigger des gesamten Blockly soll auf den Wind der Wetterstation gelegt werden so kriegt das Blockly alle Windänderungen mit.

      Wie würdet Ihr das mit dem Variablen Statuswechsel lösen?

      Danke Euch

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

      @drapo

      • Das Blockly sollte generell immer laufen. Ein Skript zu starten und anzuhalten ist nicht notwendig.
      • Die Logik der Trigger sollte deine Bedingungen abdecken, allerdings bin ich mir nicht sicher was du da genau erreichen willst. Ich habe das folgende verstanden:

      Wenn der Wind über 35 km/h steigt willst Du deine Rolläden hoch zwingen.
      Wenn der Wind nachts für einen Zeitraum >90 Minuten unter 35 km/h gefallen ist dürfen die Rolläden wieder runter.

      In diesem Anwendungsfall wäre die Logik meiner Meinung nach so:

      • Eine Variable die den Sollzustand der Rolläden beschreibt (sollen oben sein, sollen unten sein)
      • Ein Trigger auf die Windgeschwindigkeit, auslösen wenn sie sich ändert. Darin:
        -- Sollen die Rolläden oben sein: nichts machen, Ende.
        -- Sollen die Rolläden unten sein:
        --- Test Ist der Wind < 35 km/h und war er vorher >= 35 km/h: Timeout 90 Minuten, darin die Statusvariable auf falsch
        --- Test: Ist der Wind > 35 km/h und war er vorher <= 35 km/h : Deine Statusvariable auf wahr (Hierzu kannst du die Bausteine "Wert" und "vorheriger Wert" aus dem Trigger Bereich nutzen (sind da mit Objekt ID voreingestellt verfügbar). Zusätzlich: Aktuelle Zeit merken, falls vorhanden, Timeout (von oben) löschen.

      Ich hab hier leider kein Blockly zum zusammenbauen. Ich denke das schaffst du aber auch mit der Beschreibung.

      A.

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

      D 2 Antworten Letzte Antwort
      0
      • AsgothianA Asgothian

        @drapo

        • Das Blockly sollte generell immer laufen. Ein Skript zu starten und anzuhalten ist nicht notwendig.
        • Die Logik der Trigger sollte deine Bedingungen abdecken, allerdings bin ich mir nicht sicher was du da genau erreichen willst. Ich habe das folgende verstanden:

        Wenn der Wind über 35 km/h steigt willst Du deine Rolläden hoch zwingen.
        Wenn der Wind nachts für einen Zeitraum >90 Minuten unter 35 km/h gefallen ist dürfen die Rolläden wieder runter.

        In diesem Anwendungsfall wäre die Logik meiner Meinung nach so:

        • Eine Variable die den Sollzustand der Rolläden beschreibt (sollen oben sein, sollen unten sein)
        • Ein Trigger auf die Windgeschwindigkeit, auslösen wenn sie sich ändert. Darin:
          -- Sollen die Rolläden oben sein: nichts machen, Ende.
          -- Sollen die Rolläden unten sein:
          --- Test Ist der Wind < 35 km/h und war er vorher >= 35 km/h: Timeout 90 Minuten, darin die Statusvariable auf falsch
          --- Test: Ist der Wind > 35 km/h und war er vorher <= 35 km/h : Deine Statusvariable auf wahr (Hierzu kannst du die Bausteine "Wert" und "vorheriger Wert" aus dem Trigger Bereich nutzen (sind da mit Objekt ID voreingestellt verfügbar). Zusätzlich: Aktuelle Zeit merken, falls vorhanden, Timeout (von oben) löschen.

        Ich hab hier leider kein Blockly zum zusammenbauen. Ich denke das schaffst du aber auch mit der Beschreibung.

        A.

        D Offline
        D Offline
        drapo
        schrieb am zuletzt editiert von
        #3

        @asgothian Vielen Dank für Deine Rückmeldung. Ich versuch das mal oder mach mal ein Beispiel wie ich es umsetzen würde. allenfalls schaust Du mir dann nochmals drüber :-)

        Dank Dir

        1 Antwort Letzte Antwort
        0
        • AsgothianA Asgothian

          @drapo

          • Das Blockly sollte generell immer laufen. Ein Skript zu starten und anzuhalten ist nicht notwendig.
          • Die Logik der Trigger sollte deine Bedingungen abdecken, allerdings bin ich mir nicht sicher was du da genau erreichen willst. Ich habe das folgende verstanden:

          Wenn der Wind über 35 km/h steigt willst Du deine Rolläden hoch zwingen.
          Wenn der Wind nachts für einen Zeitraum >90 Minuten unter 35 km/h gefallen ist dürfen die Rolläden wieder runter.

          In diesem Anwendungsfall wäre die Logik meiner Meinung nach so:

          • Eine Variable die den Sollzustand der Rolläden beschreibt (sollen oben sein, sollen unten sein)
          • Ein Trigger auf die Windgeschwindigkeit, auslösen wenn sie sich ändert. Darin:
            -- Sollen die Rolläden oben sein: nichts machen, Ende.
            -- Sollen die Rolläden unten sein:
            --- Test Ist der Wind < 35 km/h und war er vorher >= 35 km/h: Timeout 90 Minuten, darin die Statusvariable auf falsch
            --- Test: Ist der Wind > 35 km/h und war er vorher <= 35 km/h : Deine Statusvariable auf wahr (Hierzu kannst du die Bausteine "Wert" und "vorheriger Wert" aus dem Trigger Bereich nutzen (sind da mit Objekt ID voreingestellt verfügbar). Zusätzlich: Aktuelle Zeit merken, falls vorhanden, Timeout (von oben) löschen.

          Ich hab hier leider kein Blockly zum zusammenbauen. Ich denke das schaffst du aber auch mit der Beschreibung.

          A.

          D Offline
          D Offline
          drapo
          schrieb am zuletzt editiert von
          #4

          @asgothian so hast du das gedacht korrekt? ich hab mir noch den Wochentag hinzugefügt. In diesem beispiel ist es nur 1 wochentag als beispiel. dann könnte ich z.b. am wochenende eine andere Zeit einstellen bis wann die rolladen wieder nach unten fahren.

          wenn ich es richtig verstehe brauche ich die Variable Wind grundsätzlich gar nicht mehr, wenn ich die Rolläden alle direkt in diesem Blockly fahre. Hab ich das auch richtig verstanden?

          3b2fb6d2-4830-4d93-a408-7362e058dfb3-grafik.png

          AsgothianA 1 Antwort Letzte Antwort
          0
          • D drapo

            @asgothian so hast du das gedacht korrekt? ich hab mir noch den Wochentag hinzugefügt. In diesem beispiel ist es nur 1 wochentag als beispiel. dann könnte ich z.b. am wochenende eine andere Zeit einstellen bis wann die rolladen wieder nach unten fahren.

            wenn ich es richtig verstehe brauche ich die Variable Wind grundsätzlich gar nicht mehr, wenn ich die Rolläden alle direkt in diesem Blockly fahre. Hab ich das auch richtig verstanden?

            3b2fb6d2-4830-4d93-a408-7362e058dfb3-grafik.png

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

            @drapo sagte in Blockly start nur bei Status Änderung Variable:

            @asgothian so hast du das gedacht korrekt? ich hab mir noch den Wochentag hinzugefügt. In diesem beispiel ist es nur 1 wochentag als beispiel. dann könnte ich z.b. am wochenende eine andere Zeit einstellen bis wann die rolladen wieder nach unten fahren.

            wenn ich es richtig verstehe brauche ich die Variable Wind grundsätzlich gar nicht mehr, wenn ich die Rolläden alle direkt in diesem Blockly fahre. Hab ich das auch richtig verstanden?

            3b2fb6d2-4830-4d93-a408-7362e058dfb3-grafik.png

            nein, so geht das nicht. Jetzt gehen die Rolläden nur zu wenn der Wind von >35 auf <= 35 fällt. Das ist nicht Plan, richtig ?

            Du brauchst eine allgemeine Regel um den Rolladen zu schliessen und zu öffnen. Das sollte NICHT mit dem Wind Trigger verbunden sein, und neben dem Rolladen auch eine Variable "Rolladen_soll_zu_sein" auf wahr setzen.
            Einzig eine Abfrage das der Rolladen physikalisch nur zu geht wenn der Wind Speed < 35 km/h ist kann / sollte da mit rein.

            Screenshot 2024-01-25 at 21.32.05.png
            Das was du über Screenshot 2024-01-25 at 21.21.34.png
            gemacht hat macht man eher so:
            Screenshot 2024-01-26 at 07.48.47.png
            A.

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

            D 1 Antwort Letzte Antwort
            0
            • AsgothianA Asgothian

              @drapo sagte in Blockly start nur bei Status Änderung Variable:

              @asgothian so hast du das gedacht korrekt? ich hab mir noch den Wochentag hinzugefügt. In diesem beispiel ist es nur 1 wochentag als beispiel. dann könnte ich z.b. am wochenende eine andere Zeit einstellen bis wann die rolladen wieder nach unten fahren.

              wenn ich es richtig verstehe brauche ich die Variable Wind grundsätzlich gar nicht mehr, wenn ich die Rolläden alle direkt in diesem Blockly fahre. Hab ich das auch richtig verstanden?

              3b2fb6d2-4830-4d93-a408-7362e058dfb3-grafik.png

              nein, so geht das nicht. Jetzt gehen die Rolläden nur zu wenn der Wind von >35 auf <= 35 fällt. Das ist nicht Plan, richtig ?

              Du brauchst eine allgemeine Regel um den Rolladen zu schliessen und zu öffnen. Das sollte NICHT mit dem Wind Trigger verbunden sein, und neben dem Rolladen auch eine Variable "Rolladen_soll_zu_sein" auf wahr setzen.
              Einzig eine Abfrage das der Rolladen physikalisch nur zu geht wenn der Wind Speed < 35 km/h ist kann / sollte da mit rein.

              Screenshot 2024-01-25 at 21.32.05.png
              Das was du über Screenshot 2024-01-25 at 21.21.34.png
              gemacht hat macht man eher so:
              Screenshot 2024-01-26 at 07.48.47.png
              A.

              D Offline
              D Offline
              drapo
              schrieb am zuletzt editiert von
              #6

              @asgothian dank dir für deine Ausführungen. Also das Blockly möchte ich wirklich nur anwenden wenn nach einem wind von 35km und nach 90minuten ein paar läden (nicht alle) wieder runter gefahren werden sollen.

              Um die läden hoch zu fahren bei wind verwende ich ein anderes blockly.

              Was mir immer noch nicht klar ist für was schaltest du die variable ( bei mir heisst sie Wind) auf true oder false. Damit wird ja dann nichts mehr gemacht?

              AsgothianA CodierknechtC 2 Antworten Letzte Antwort
              0
              • D drapo

                @asgothian dank dir für deine Ausführungen. Also das Blockly möchte ich wirklich nur anwenden wenn nach einem wind von 35km und nach 90minuten ein paar läden (nicht alle) wieder runter gefahren werden sollen.

                Um die läden hoch zu fahren bei wind verwende ich ein anderes blockly.

                Was mir immer noch nicht klar ist für was schaltest du die variable ( bei mir heisst sie Wind) auf true oder false. Damit wird ja dann nichts mehr gemacht?

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

                @drapo sagte in Blockly start nur bei Status Änderung Variable:

                Was mir immer noch nicht klar ist für was schaltest du die variable ( bei mir heisst sie Wind) auf true oder false. Damit wird ja dann nichts mehr gemacht?

                Die wird dann nicht weiter gebraucht. Ich hab das getan weil das bei Dir initial geplant war.

                @drapo sagte in Blockly start nur bei Status Änderung Variable:

                Also das Blockly möchte ich wirklich nur anwenden wenn nach einem wind von 35km und nach 90minuten ein paar läden (nicht alle) wieder runter gefahren werden sollen.

                Wenn du in einem anderen blockly das hochfahren bei Wind abgebildet hast, dann musst du irgendwo her holen ob die Zielposition der Rolläden oben oder unten ist.

                Alleine mit einer Zeit-Abfrage ist das kritisch, da das herunter fahren wenn der Wind nachlässt schwer vorhersagbar ist. Und die gleiche Bedingung mit der du in einem anderen Blockly die Rolläden hochfährst hier zu duplizieren impliziert das Risiko das du (wenn du das mal anpasst) vergisst es an allen Stellen anzupassen. Daher die Variable (kann auch ein State sein) RolladenSollZuSein. Dadurch kennt dieses Skript den Sollzustand des Rolladens, ohne sich um die dazu gehörigen Bedingungen zu kümmern.

                A.

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

                D 1 Antwort Letzte Antwort
                0
                • D drapo

                  @asgothian dank dir für deine Ausführungen. Also das Blockly möchte ich wirklich nur anwenden wenn nach einem wind von 35km und nach 90minuten ein paar läden (nicht alle) wieder runter gefahren werden sollen.

                  Um die läden hoch zu fahren bei wind verwende ich ein anderes blockly.

                  Was mir immer noch nicht klar ist für was schaltest du die variable ( bei mir heisst sie Wind) auf true oder false. Damit wird ja dann nichts mehr gemacht?

                  CodierknechtC Online
                  CodierknechtC Online
                  Codierknecht
                  Developer Most Active
                  schrieb am zuletzt editiert von Codierknecht
                  #8

                  @drapo sagte in Blockly start nur bei Status Änderung Variable:

                  Also das Blockly möchte ich wirklich nur anwenden

                  Scripte laufen immer! Die werden erstellt, gestartet und "horchen" dann auf bestimmte Ereignisse.
                  Dazu sind die Trigger und Zeitpläne da.
                  Keine Sorge: Die fressen kein Brot. Solange die Ereignisse nicht eintreten läuft da nicht etwa eine Art Dauerschleife oder sowas.

                  Um die läden hoch zu fahren bei wind verwende ich ein anderes blockly.

                  Ich persönlich würde das alles in einem Blockly "Rollosteuerung" zusammenfassen.
                  Ob Wind, Zeit oder andere Auslöser (Schalter): Das hängt ja alles mehr oder weniger zusammen - also nur 1 Blockly.

                  Ich fürchte, auch hier ist etwas Starthilfe nötig:
                  https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps

                  "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

                  D 1 Antwort Letzte Antwort
                  0
                  • AsgothianA Asgothian

                    @drapo sagte in Blockly start nur bei Status Änderung Variable:

                    Was mir immer noch nicht klar ist für was schaltest du die variable ( bei mir heisst sie Wind) auf true oder false. Damit wird ja dann nichts mehr gemacht?

                    Die wird dann nicht weiter gebraucht. Ich hab das getan weil das bei Dir initial geplant war.

                    @drapo sagte in Blockly start nur bei Status Änderung Variable:

                    Also das Blockly möchte ich wirklich nur anwenden wenn nach einem wind von 35km und nach 90minuten ein paar läden (nicht alle) wieder runter gefahren werden sollen.

                    Wenn du in einem anderen blockly das hochfahren bei Wind abgebildet hast, dann musst du irgendwo her holen ob die Zielposition der Rolläden oben oder unten ist.

                    Alleine mit einer Zeit-Abfrage ist das kritisch, da das herunter fahren wenn der Wind nachlässt schwer vorhersagbar ist. Und die gleiche Bedingung mit der du in einem anderen Blockly die Rolläden hochfährst hier zu duplizieren impliziert das Risiko das du (wenn du das mal anpasst) vergisst es an allen Stellen anzupassen. Daher die Variable (kann auch ein State sein) RolladenSollZuSein. Dadurch kennt dieses Skript den Sollzustand des Rolladens, ohne sich um die dazu gehörigen Bedingungen zu kümmern.

                    A.

                    D Offline
                    D Offline
                    drapo
                    schrieb am zuletzt editiert von
                    #9

                    @asgothian danke für Deine Hilfe und Unterstützung. Verstehe was Du meinst und ich denke es macht Sinn ein Blockly für die Windsteuerung der Rolläden zu haben. Werd mir das noch umbauen dass ich nur noch eines habe. Somit geht auch nichts vergessen.

                    1 Antwort Letzte Antwort
                    0
                    • CodierknechtC Codierknecht

                      @drapo sagte in Blockly start nur bei Status Änderung Variable:

                      Also das Blockly möchte ich wirklich nur anwenden

                      Scripte laufen immer! Die werden erstellt, gestartet und "horchen" dann auf bestimmte Ereignisse.
                      Dazu sind die Trigger und Zeitpläne da.
                      Keine Sorge: Die fressen kein Brot. Solange die Ereignisse nicht eintreten läuft da nicht etwa eine Art Dauerschleife oder sowas.

                      Um die läden hoch zu fahren bei wind verwende ich ein anderes blockly.

                      Ich persönlich würde das alles in einem Blockly "Rollosteuerung" zusammenfassen.
                      Ob Wind, Zeit oder andere Auslöser (Schalter): Das hängt ja alles mehr oder weniger zusammen - also nur 1 Blockly.

                      Ich fürchte, auch hier ist etwas Starthilfe nötig:
                      https://forum.iobroker.net/topic/70481/blockly-for-dummies-starthilfe-und-tipps

                      D Offline
                      D Offline
                      drapo
                      schrieb am zuletzt editiert von
                      #10

                      @codierknecht ist mir bewusst, dass die skripte immer laufen. da habe ich mich falsch ausgedrückt. ich meinte mehr dass das blockly für die steuerung der rolladen nach unten nach einem wind gedacht ist.

                      danke für deine starthilfe aber ich denke ich habs verstanden ;-)

                      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

                      769

                      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