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: Präsenztimer

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.2k

Blockly: Präsenztimer

Geplant Angeheftet Gesperrt Verschoben Skripten / Logik
10 Beiträge 3 Kommentatoren 1.2k Aufrufe
  • Ä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.
  • T Offline
    T Offline
    tscheerio
    schrieb am zuletzt editiert von
    #1

    Hallo zusammen,

    ich habe jetzt erstmals meinen Deconz adapter und meine Mqtt Geräte mit iobroker verbunden und die ersten Blocklys gebaut, aber derzeit komme ich nicht weiter, evtl kann mir jemand auf die Sprünge helfen.

    Und zwar ich habe einen Bewegungsmelder in der Küche, dieser soll das Licht einschalten wenn sich jemand darin Befindet und nach 5 Minuten ausschalten wenn sich keiner darin befindet. Ich habe also einmal den Zustandswert des Bewegungsmelders den ich alle 60 Sekunden bekomme und einmal den Zustandswert der Lampe (An/Aus) über Mqtt.
    5045_test.jpg

    Nachdem ich aber die Zustandswerte vom Bewegungsmelder nur alle 60 Sekunden bekomme springt er von "es ist jemand da" zu "es ist niemand da" hin und her und erfüllt somit die "Ausschaltprozedur" (rechts).

    In der Praxis heißt das, das Licht geht kurz aus wenn sich jemand in der Küche befindet und gleich wieder an.

    Jemand tipps wie ich das vermeiden kann? :mrgreen:

    1 Antwort Letzte Antwort
    0
    • J Offline
      J Offline
      Jan1
      schrieb am zuletzt editiert von
      #2

      Beide Blöcke sind falsch. Beim ersten hast keine Bedingung angegeben "falls wahr". Ja was denn überhaupt. Im zweiten ist der interne Trigger ohne Funktion, weil da eine Fallsbedingung rein muss.

      1 Antwort Letzte Antwort
      0
      • J Offline
        J Offline
        J Riemann
        schrieb am zuletzt editiert von
        #3

        Ich habe Ähnliches wie folgt gelöst (gekürzte Version)…

        Es wäre sogar noch kürzer möglich, z.B. ohne Gegenprüfung des aktuellen Schaltzustands und im "falls" bzw. "sonst falls" würde "Wert von Objekt ID - default" auch ausreichen.

        6696_bildschirmfoto_2018-11-16_um_10.05.53.png :

        ****Viele Grüße!

        Jörg****

        1 Antwort Letzte Antwort
        0
        • T Offline
          T Offline
          tscheerio
          schrieb am zuletzt editiert von
          #4

          @j Riemann

          Ehrlich gesagt steige ich da nicht so ganz durch.

          Nehmen wir an du verlässt die Küche und der Bewegungsmelder sagt da ist nichts mehr, jetzt fängt die Logik an zu laufen … Innerhalb dieser Zeit betrittst du wieder die Küche und der Bewegungsmelder sagt da ist doch jemand.

          Wird dann der erste Wert der sich in der Logik befindet gelöscht? Sonst hast du doch auch eine kurze Zeit in der das Licht ausgeschaltet wird oder!?

          1 Antwort Letzte Antwort
          0
          • J Offline
            J Offline
            J Riemann
            schrieb am zuletzt editiert von
            #5

            Ganz einfach:

            Der Präsenzmelder ändert seinen Status egal zu welchem Zustand (Bewegung/keine Bewegung).

            Das ist der Trigger "Falls Objekt PIR - wurde geändert" der den Skriptdurchlauf startet.

            Fall 1: Der PIR wechselt von "Bewegung erkannt" zu "keine Bewegung"

            Das Skript startet und der blaue "prüfen-Block" wird abgearbeitet. Die Bedingung: "keine Bewegung erkannt" ist erfüllt und der "mache-Bolck" wird abgearbeitet. Hier steht übersetzt: Wenn der PIR "keine Bewgung" meldet starte eine Verzögerung (Timeout) von 5 Minuten nach der die Aktion innerhalb der Timeout-Klammer ausgeführt wird. Die Aufgabe lautet: Prüfe ob das Licht an ist und schalte es aus wenn es eingeschaltet ist.

            Nun läuft quasi eine eine Ausschaltverzögerung von 5 Minuten nachdem der PIR "keine Bewegung" gemeldet hat.

            Das Skript läuft weiter zum "sonst-falls-Block" und die Bedingung: "Bewegung erkannt" ist nicht erfüllt. Darum wird der "mache" Teil übersprungen und das Skript endet.

            Fall 2: Der PIR wechselt von "keine Bewegung" zu "Bewegung erkannt"

            Das Skript startet und der blaue "prüfen-Block" wird abgearbeitet. Die Bedingung: "keine Bewegung erkannt" ist nicht erfüllt und der "mache-Bolck" wird übersprungen. Weiter geht es im "sonst-falls-Block". Die Bedingung "Bewegung erkannt" ist jetzt erfüllt und der dazugehörige "mache-Block" wird abgearbeitet. Hier wird jetzt zuerst ein evtl. vorher gestarteter Timeout abgebrochen. Also wird ein evtl. durch das obere "falls" verzögert (Timeout) gesetzter Ausschaltbefehl gelöscht. Außerdem wird jetzt ein ausgeschaltetes Licht eingeschaltet.

            ****Viele Grüße!

            Jörg****

            1 Antwort Letzte Antwort
            0
            • T Offline
              T Offline
              tscheerio
              schrieb am zuletzt editiert von
              #6

              Also ich habe jetzt auch mal ein Update erstellt und ich bin mir nicht sicher warum es nicht funktioniert (einschalten klappt wunderbar).

              Ich habe irgendwie noch Logikfehler weil ich nicht weiß wie Blockly genau funktioniert.

              Also meiner Meinung funktioniert das jetzt so:

              Falls "Flurlicht An" springt er in die Ausschaltbedingung (unten) und da geht es eigentlich schon los, wann wird diese Bedingung abgerufen, die ganze Zeit? bei einer Änderung?

              Naja auf jeden Fall geht es dann weiter, falls der Bewegungsmelder "false" ist wird der timeout getriggert, ist dieser abgelaufen wird überprüft ob das Flurlicht "true" ist, falls das zutrifft wird es ausgeschaltet.

              Wenn der Bewegungsmelder "true" ist, wird überprüft ob das Licht "aus" ist, trifft dieses zu wird das Licht angeschaltet.

              Wo liegt der fehler?

              Oder was habe ich nicht verstanden?
              5045_221321.jpg

              1 Antwort Letzte Antwort
              0
              • J Offline
                J Offline
                Jan1
                schrieb am zuletzt editiert von
                #7

                Der zweite Block ist etwas unlogisch. Der Trigger wird bei wahr aktiv und alls Bedingungen hast den selben DP intern noch mal auf wahr geprüft. Ändere mal den Trigger auf "wurde geändert" oder aktualisiert, denn so mach die weitere Abfrage wieder Sinn. Ob's dann läuft ist was anderes :D

                1 Antwort Letzte Antwort
                0
                • T Offline
                  T Offline
                  tscheerio
                  schrieb am zuletzt editiert von
                  #8

                  Ja das hatte ich schon geändert auf "wurde geändert" macht aber keinen unterschied

                  1 Antwort Letzte Antwort
                  0
                  • J Offline
                    J Offline
                    Jan1
                    schrieb am zuletzt editiert von
                    #9

                    Weil Dein Trigger Power ist und nur wenn sich da was ändert, dann wird der Inhalt dessen auch ausgeführt. Da Dein Bewegungsmelder im Trigger drin ist, kann der machen was er will ohne dass was passiert ;)

                    Du musst da schon auf den Bewegungsmelder triggern.

                    1 Antwort Letzte Antwort
                    0
                    • J Offline
                      J Offline
                      J Riemann
                      schrieb am zuletzt editiert von
                      #10

                      6696_bildschirmfoto_2018-11-17_um_09.27.20.png

                      ****Viele Grüße!

                      Jörg****

                      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

                      895

                      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